Skip to content

Commit

Permalink
Introduce a RMF transportation workcell (#42)
Browse files Browse the repository at this point in the history
* Migrate to ros2dds bridge

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Bump ros2dds bridge version to fix warning spam

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Add source to transporter API

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* WIP first draft of RMF integration

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Change signals to contain task ids

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Move signaling from workcell to system orchestrator

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Change RMF transporter to be a workcell instead

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Fix cancellation, feedback

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Add TransportAmr capability and RMF workcell

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Revert transporter changes

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Add missing dependency

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Reintroduce signal queueing, cleanup debugs

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Go back to task signaling

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove backup files

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Add visualization package

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Add demo package based on rmf_demos

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove printout

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Move to nexus_integration_tests instead

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Fix integration test

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Fix repos file, reintroduce comprehensive test

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Make sure AMRs are up before sending task

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Fix copyrights for new files

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Add dependency to yaml-cpp-vendor to nexus_capabilities

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove ament_target_dependencies

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Rename capability and add rmf namespace

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* AmrDestination -> Destination

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Split main / rmf main and create new integration test

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Move RMF orchestator to RMF launch file

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Vendor RMF launch files, remove building_map_tools

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Namespace, file renaming, copyright

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Reuse nexus_msgs structs, event based publication

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove nexus_visualization dependency

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove nexus_visualization

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Fix plugin path

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Cleanup

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove signaling at the system orchestrator level

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove duplicated behavior trees and use remapping

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Remove unnecessary variable

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>

* Update copyrights

Signed-off-by: Yadunund <yadunund@gmail.com>

* Fix launch

Signed-off-by: Yadunund <yadunund@gmail.com>

* Fix potential UB with comments, updated README to build with rmf.repos

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Removed comments

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Sim demo with models from fuel using template sdf (#62)

* Working with the same commands

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic demo works with models

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Moving enclosures, removing in-between, using nested models, moving camera

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use new released rmf_building_map_tools args, clean up, moved waypoints, added dispenser/ingestor

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Clean up duplicated and unused files, use rmf_transporter

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Remove duplicated depot

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use new DeliveryRobotWithConveyor model from fuel

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Make remap_task_types and rviz_config launch args

Signed-off-by: Yadunund <yadunund@gmail.com>

* Move maps into config/rmf

Signed-off-by: Yadunund <yadunund@gmail.com>

* Also make bt_path and max_jobs launch args

Signed-off-by: Yadunund <yadunund@gmail.com>

* rmf_demos_fleet_adapter available via rosdep

Signed-off-by: Yadunund <yadunund@gmail.com>

* Set nested models as static as well

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Rename dispatch_transporter to assign_transporter_workcell

Signed-off-by: Yadunund <yadunund@gmail.com>

---------

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
Signed-off-by: Yadunund <yadunund@gmail.com>
Signed-off-by: Aaron Chong <aaronchongth@gmail.com>
Co-authored-by: Yadunund <yadunund@gmail.com>
Co-authored-by: Aaron Chong <aaronchongth@gmail.com>
  • Loading branch information
3 people authored Jan 25, 2025
1 parent 7c6ebf7 commit 7479795
Show file tree
Hide file tree
Showing 30 changed files with 2,417 additions and 60 deletions.
12 changes: 11 additions & 1 deletion nexus_capabilities/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ set(dep_pkgs
nexus_common
nexus_endpoints
nexus_orchestrator_msgs
nlohmann_json
rclcpp
rclcpp_lifecycle
rmf_dispenser_msgs
rmf_task_msgs
yaml_cpp_vendor
yaml-cpp
)
foreach(pkg ${dep_pkgs})
Expand Down Expand Up @@ -80,7 +84,7 @@ target_link_libraries(${PROJECT_NAME}
BT::behaviortree_cpp_v3
rclcpp::rclcpp
rclcpp_lifecycle::rclcpp_lifecycle
yaml-cpp
yaml-cpp::yaml-cpp
)

target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
Expand Down Expand Up @@ -126,6 +130,8 @@ add_library(nexus_builtin_capabilities SHARED
src/capabilities/gripper_control.cpp
src/capabilities/plan_motion_capability.cpp
src/capabilities/plan_motion.cpp
src/capabilities/rmf_request.cpp
src/capabilities/rmf_request_capability.cpp
)

target_compile_options(nexus_builtin_capabilities PUBLIC INTERFACE cxx_std_17)
Expand All @@ -135,9 +141,13 @@ target_link_libraries(nexus_builtin_capabilities
${PROJECT_NAME}
nexus_common::nexus_common
nexus_endpoints::nexus_endpoints
nlohmann_json::nlohmann_json
pluginlib::pluginlib
tf2::tf2
tf2_ros::tf2_ros
${rmf_dispenser_msgs_TARGETS}
${rmf_task_msgs_TARGETS}
yaml-cpp
)

install(
Expand Down
4 changes: 4 additions & 0 deletions nexus_capabilities/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,17 @@
<depend>nexus_common</depend>
<depend>nexus_endpoints</depend>
<depend>nexus_orchestrator_msgs</depend>
<depend>nlohmann-json-dev</depend>
<depend>pluginlib</depend>
<depend>rclcpp</depend>
<depend>rclcpp_lifecycle</depend>
<depend>rmf_dispenser_msgs</depend>
<depend>rmf_task_msgs</depend>
<depend>rmf_utils</depend>
<depend>tf2</depend>
<depend>tf2_ros</depend>
<depend>yaml-cpp</depend>
<depend>yaml_cpp_vendor</depend>

<export>
<build_type>ament_cmake</build_type>
Expand Down
4 changes: 4 additions & 0 deletions nexus_capabilities/src/capabilities/plugins.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@
<class type="nexus::capabilities::PlanMotionCapability" base_class_type="nexus::Capability">
<description>PlanMotion capability.</description>
</class>

<class type="nexus::capabilities::RMFRequestCapability" base_class_type="nexus::Capability">
<description>RMFRequest capability.</description>
</class>
</library>
Loading

0 comments on commit 7479795

Please sign in to comment.