ros-navigation / navigation2

ROS 2 Navigation Framework and System
https://nav2.org/
Other
2.63k stars 1.31k forks source link

Add Ackermann drive robot with RPP to examples and system tests #2873

Open Aposhian opened 2 years ago

Aposhian commented 2 years ago

Feature request

Feature description

Add ackermann-drive robot to bringup and system tests, using the regulated pure pursuit controller.

Implementation considerations

Unlike turtlebot, I'm not sure if there is a good, open-source, reference ackermann robot in the real world. But even an idealized ackermann vehicle would be helpful for testing and development.

SteveMacenski commented 2 years ago

I totally agree, I do not know of an Ackermann simulation setup in Gazebo that we could migrate to a Nav2 world for use and testing. I know of some car models but those are far too large for environments we have to work with as a matter of practicality. I suppose having a car demo would be cool, but we'd need an appropriate world model / sensor stack for Nav2 to compliment.

I think this might be good to post on Discourse about and see if anyone knows of one that we could potentially use. I can say that we at Samsung probably aren't going to get to something like this for the foreseeable future, but doesn't mean another engineer wouldn't find this an interesting project to work on or another model exists already that we can leverage potentially.

Aposhian commented 2 years ago

https://discourse.ros.org/t/nav2-reference-ackermann-robot-simulation/24901

ljaniec commented 2 years ago

Maybe linorobot? There was a port to ROS2 Galactic a few days ago: https://github.com/linorobot/linorobot2. Seems promising:

Linorobot is a suite of Open Source ROS compatible robots that aims to provide students, developers, and researchers a low-cost platform in creating new exciting applications on top of ROS (Robot Operating System). Linorobot supports different robot bases you can build from the ground up.

Supports: 2WD, 4WD, Mecanum Drive, and Ackermann Steering.

Aposhian commented 2 years ago

Thanks for the suggestion! I will check it out.

SteveMacenski commented 2 years ago

@Aposhian do you guys have one you'd be potentially open to open sourcing for this purpose? I'm trying to figure out the path forward for this ticket -- is this something you would have interest in contributing a new system test using an ackermann vehicle?

Aposhian commented 2 years ago

I don't think we are ready to open source our robot simulation at this time, but when I get some time, I am planning on looking more into linorobot2: it looks promising.

berickson commented 2 years ago

I wrote an Ackermann simulation that you could use: https://github.com/berickson/sim_car
Video demonstration here: https://youtu.be/xpBTbQ7BjN4 It would probably need mods to be useful for automated system testing, for example, it has shock absorbers and you probably don't want that. I'd be happy to help if I can get my nav2 build / test environment working.