ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Best nav2 controller/planner for a near zero-turn differential-ackermann steer mixed rover

asked 2021-11-29 09:19:31 -0600

charlie92 gravatar image

updated 2021-11-29 17:05:09 -0600

Hi folks! I have a rover that has 4 wheels with differential drive, but the front wheels can also steer like an ackermann steering car, thus the rover can turn 180 almost with zero turn radius. For reference it is very similar to zero-turn mowers, just in my case I also have differential drive in front wheels.

If am willing to use navigation2 stack in ROS2 for navigation and control what would you recommend as the best suitable controller and planner for this type of robot?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-11-29 14:48:32 -0600

You will probably need to write your own local trajectory planner if you have unusual kinematics like that, but you may be able to get away with DWB, TEB, or RPP if you have a custom low level controller that can convert Twists to wheel motion. However you're going to have additional motion constraints so to make the "best" use of your drivetrain, you'd need to come up with a custom plugin or custom sub-plugins to DWB for trajectory generation based on your physical constraints.

I'd be happy to chat more about this, though I won't be able to implement something for you, if you'd be open to open-sourcing the output so that there's support for more unusual vehicles like what you've proposed.

In terms of planners, the most "complete" solution would be the new State Lattice planner, but again since you have a unique non-standard setup, you'd have to provide your own minimum control set to make full use of the drivetrain's capabilities. However, you can pretty reasonably approximate it as well and make use of pregenerated files or use the generator with your custom parameterizations to generate one.

But short of wanting to use the full drivetrain and implement your own control set, Hybrid-A* in the Smac Planner Framework would probably suit you fine.

Since you have a unique set up the state lattice is probably your best algorithm choice anyway, so the actual planner is provided to you for free in Nav2, but you'd have to implement your own control set regardless if you used Nav2 or not. We provide planners specifically knowing that people have their own custom solutions that don't always fall into the usual bins of Omni, Diff, Legged, and Ackermann, but since you're using something unusual, there's some leg work you need to do.

edit flag offensive delete link more

Question Tools

4 followers

Stats

Asked: 2021-11-29 09:19:31 -0600

Seen: 792 times

Last updated: Nov 29 '21