how to make a differential drive mobile robot follow a curved path

asked 2018-09-04 01:01:47 -0600

eric_cartman gravatar image

My current setup is a mobile base and i'm using aruco mapping to localize it. I got the basic ros navigation package to work but it only does rotate and move forward motion. I need the bot to follow a set of way points on a curved path.

Anyone know how to do this?

edit retag flag offensive close merge delete


There is nothing in "differential drive" kinematics that makes them unable to follow curved paths, but your driver implementation must be correct (ie: set the correct wheel velocities based on incoming twists). If you teleop your robot, can it make turns?

gvdhoorn gravatar image gvdhoorn  ( 2018-09-04 04:20:35 -0600 )edit

@gvdhoorn Yes. I can give the correct linear velocity and angular velocity and it would go in a circle or any curved path i want. But what i need is a path follower(or a controller?(not sure what it is called)) which calculates and publishes the right command velocities needed, given a curved path.

eric_cartman gravatar image eric_cartman  ( 2018-09-04 14:03:16 -0600 )edit

I think what you're looking for then is any of a number of local planner options in the ROS navigation echosystem. I'd start with DWA/DWB, TEB, base local planner, etc

stevemacenski gravatar image stevemacenski  ( 2018-09-04 14:47:40 -0600 )edit

@smac I am already using the base local planner package(dwa) in the navigation stack

eric_cartman gravatar image eric_cartman  ( 2018-09-04 14:53:03 -0600 )edit

Just to clarify the problem. You know where the robot is in the world. You have a path that is defined by a set of way points. You want a way to determine the correct motor commands given a desired goal pose? What does the mobile base do when you input a goal position?

KothariA gravatar image KothariA  ( 2018-09-04 15:36:45 -0600 )edit

@KothariA Yes.I need a way to determine command velocities given a set of waypoints. i realize that to give a curved path i have to publish the global path planner as a plugin(like the tutorial).I am not sure if i have to make any changes to the rest of the system(aka base_local_planner/costmap etc)

eric_cartman gravatar image eric_cartman  ( 2018-09-04 15:49:48 -0600 )edit

What you're asking for is the standard default configuration of the navigation stack. I don't think you have any issues here.

stevemacenski gravatar image stevemacenski  ( 2018-09-04 18:26:39 -0600 )edit