how to make a differential drive mobile robot follow a curved path
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?
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 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.
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
@smac I am already using the base local planner package(dwa) in the navigation stack
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 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)
What you're asking for is the standard default configuration of the navigation stack. I don't think you have any issues here.