UbiquityRobotics / move_basic

A minimal navigation node
BSD 3-Clause "New" or "Revised" License
69 stars 21 forks source link

Smooth cornering without slipping or tipping over #67

Closed dorkamotorka closed 3 years ago

dorkamotorka commented 3 years ago

This branch was created from the branch navigation_tests, because it rely on most of the stuff I did there. The code in branch (navigation_tests) implemented some features to the achieving the reference pose and abort checks, which are also added in this new branch move-advanced. The code in this branch(move-advanced) implements smooth cornering and if the linear velocity in a turn is to high, it reduces it to prevent the robot slipping or even tipping over. Depending upon which algorithm smooth-cornering or combination of rotate+moveLinear we choose, the corresponding PR will be removed.

dorkamotorka commented 3 years ago

Currently stopping at the last goal is precise but not so smooth and also some other features needs to be added and will be added in the future. But before doing that, we should test the algorithm on the real robot(before doing that let me know, because I should make some variable more precautious) to determine:

  1. maximum linear speed(the maximum speed of the robot going from one reference pose to another)
  2. maximum rotational speed
  3. maximum linear acceleration
  4. maximum rotational acceleration
  5. minimum corridor width the robot will be driving in or will have to drive-in
  6. maximum incline(sideways!) robot could be driving on, without slipping or tipping over

Current code is tested in Gazebo and Rviz without any obstacles.

dorkamotorka commented 3 years ago

This was decided to be merged in ground_fiducials/move_smooth package.