ros-navigation / navigation2

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

Migrate to Ignition / TB4 simulation #2997

Closed SteveMacenski closed 5 months ago

SteveMacenski commented 2 years ago

We want to use the time in Humble to migrate to Ignition for Nav2 moving forward.

padhupradheep commented 2 years ago

Additionally there are some more suggestions:

SteveMacenski commented 2 years ago

Those are not in the roadmap for just a migration, there are tickets already open for ackermann vehicle examples but we do not plan to support multiple robot platforms in the default bringup -- people can always modify the launch files for their own navigation system based on other robot systems.

vinnnyr commented 1 year ago

I found a robot model that has a public (Ignition) Gazebo sim: https://github.com/iRobotEducation/create3_sim Isn't Create3 what TB4 is based off of?

SteveMacenski commented 1 year ago

A bit too is having the binaries released in rolling and such so that we can use it in CI without an underlay space (and so users can have a nice out-of-the-box experience). I think there were things before, but not quite ready and binaries not released yet.

borongyuan commented 1 year ago

Hi, I have migrated AWS Warehouse World to Ignition Gazebo. https://github.com/borongyuan/aws-robomaker-small-warehouse-world Currently it's just an empty world and lacks testing. Currently Ignition Gazebo already supports ros2_control, so there should be no problem integrating TB4 simulation. But there is still a lot of work to be done.

SteveMacenski commented 1 year ago

Thanks! That's a great step forward though! We were just talking about this at the working group meeting yesterday.

ahcorde commented 1 year ago

Hi,

I'm planning to contribute with the new Gazebo simulation. But it's not clear for me where I should start and I have some questions:

If you can clarify these questions and maybe some others related to these topics that may have raised in the nav2 meeting , I'm happy to open PRs and contribute.

SteveMacenski commented 1 year ago

Awesome! I'd love the help!

Do you want to get rid of Gazebo-classic ?

Long term, yes, because its not supported anymore and I want Nav2 to be an example of best practices for ROS 2 and dogfood all the same stuff others are using.

Are you thinking about living with both simulator at the same time in the repository ?

For a distribution or two, yes, so that we can have the option to fallback if there are issues and to show side-by-side launch options for each. Just having 2 launch files for bringing up one versus the other.

is there any roadmap or issue for this ?

That is this.

which ROS 2 version should I target? humble, iron or rolling?

Rolling, I'll plan to backport launch files for the new simulator to Humble/Iron if the matching Gazebo versions allow for it (but as an option, not a replacement)

I'm not sure what you mean about the migration to a personal github, it still appears to be released under the parent: https://github.com/ros/rosdistro/blob/master/rolling/distribution.yaml#LL500C19-L500C19

ahcorde commented 1 year ago
  • [ ] Create tested and working launch files to use new-Gazebo. Probably just with the default TB3 sandbox to get started

I started with this bullet point. Here it's the PR https://github.com/ros-planning/navigation2/pull/3634

I added some new dependencies, let me know how does it sounds

xkaraman commented 1 year ago

Hey, I can see that a check is on tb4_simulation launch file. I followed through #3634 but I can't seem to find a commit about it. Is this work done or maybe I can check the turtlebot4 package and its launch files on how to integrate this?

ahcorde commented 1 year ago

You can run the turtlebot4 simulation using nav2 from the official repository. You can follow these steps.