Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nexus_demos package #49

Draft
wants to merge 13 commits into
base: luca/rmf_transporter
Choose a base branch
from
Draft

nexus_demos package #49

wants to merge 13 commits into from

Conversation

aaronchongth
Copy link
Collaborator

@aaronchongth aaronchongth commented Jan 6, 2025

  • splitting off what @luca-della-vedova set up within nexus_integration_tests previously, into a new package, including all the bts and config files under the config directory
  • use depot world now, https://app.gazebosim.org/OpenRobotics/fuel/models/Depot
  • depot scan is from https://github.com/ros-navigation/navigation2/blob/main/nav2_bringup/maps/depot.pgm
  • removed office world
  • added custom cyclonedds config and some instructions to use it if the participant ID can't be created
  • commits the generated .world file and navigation graphs directly into the package, with instructions in README on how to regenerate them. Building the nexus_demos package will however still need the model downloading step, since the models are still added into .building.yaml from traffic-editor (unless we want to eyeball and add assets into the template world file instead)

Screenshot_20250109_150356

Testing

# build
colcon build --packages-up-to nexus_demos

# launch
ros2 launch nexus_demos depot.launch.xml headless:=0

# submit work order
cd ~/ws_nexus/src/nexus_demos
ros2 action send_goal /system_orchestrator/execute_order nexus_orchestrator_msgs/action/ExecuteWorkOrder "{order: {id: '23', work_order: '$(cat config/pick_and_place_rmf.json)'}}"

Things to consider (with subsequent PRs)

  • perhaps migrating most of the launch files, rviz files, out of nexus_integration_tests and into nexus_demos to be made more reusable, so that the integration tests are dependent on the demos, not the other way around

@luca-della-vedova luca-della-vedova self-requested a review January 6, 2025 04:11
@aaronchongth aaronchongth changed the title Ac/demo map Depo world for integration tests Jan 6, 2025
@luca-della-vedova
Copy link
Member

luca-della-vedova commented Jan 6, 2025

Requires open-rmf/rmf_traffic_editor#523, to ensure simulation world camera initializes inside the factory. For testing now, before it gets merged, remember to checkout rmf_traffic_editor to ac/skip-camera-pose-flag

Currently this branch uses jazzy binaries, this means that we will need to change to either:

  • Build RMF from source from now on.
  • Build from source, backport the "minor" feature to jazzy and re-release then move back to binaries.

I'm a bit hesitant to build from source since it would add a good chunk of time to our CI.
We could probably get a way with only building one package from source but that is a very dangerous route to go in, so we would most likely need to build the whole RMF stack.
The rmf_demos CI can be a good benchmark of the additional build time since it builds up to rmf_demos, which seems to be ~30 mins, so that would likely bring the CI from 20 min to 50 min (!).
A last possible alternative is to keep relying on binaries for CI but source builds for local, but this is also not very great.
What do you think? I wonder if it can be "sidestepped" by some (sigh) careful traffic editor map design that would make the builtin camera pose estimation do something sensible? Maybe adding a floor element to the level?

Edit: Note that this is not a blocker to the original PR so I will get to it regardless of what we decide here

@aaronchongth
Copy link
Collaborator Author

I was planning to set up docker images for underlay workspaces (RMF and zenoh bridge), and rely on nightly builds to set up the images. Then in our CI we just use those images to continue nexus builds and tests, that should speed things up

I prefer to stick to the current approach of using binaries as much as possible, and only use source builds if necessary. I'll open another PR targeting #42, when I'm done. Let me know what you think.

@luca-della-vedova
Copy link
Member

Apart from merge conflicts / new configurations there was a floating table and robots that still bumped into the table once in a while, addressed that in b014493

@luca-della-vedova
Copy link
Member

Upstream PR open-rmf/rmf_traffic_editor#523 merged. I'm still a bit on the fence on whether to hack it on traffic editor or introduce an RMF partial source build, I'll defer it to the result of the docker experimentation

@aaronchongth aaronchongth changed the title Depo world for integration tests nexus_demo package Jan 9, 2025
@aaronchongth aaronchongth requested a review from Yadunund January 9, 2025 07:35
@aaronchongth aaronchongth changed the title nexus_demo package nexus_demos package Jan 9, 2025
@aaronchongth aaronchongth marked this pull request as draft January 10, 2025 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants