space-ros / demos

Various Space ROS demos.
Apache License 2.0
28 stars 43 forks source link

NASA_Challenge_[@xfiderek]_[Improving fidelity of SSRMS demo with Trick] #41

Open xfiderek opened 2 months ago

xfiderek commented 2 months ago

Improving fidelity of SSRMS demo with Trick

Team lead freelance username: xfiderek
Submission title: Improving fidelity of SSRMS demo with Trick

Resolves: #42

This PR features an end-to-end demo of canadarm2 (SSRMS) modelled using Trick and connected to moveit2 via authored ROS2<>Trick bridge. The demo includes the following:

  1. ros_trick_bridge - A ROS2 package allowing spawning & controlling trick simulations from ROS2 launch. It also sends /clock messages from trick to ROS2.
  2. trick_ros2_control - A ROS2 Control plugin that enables communication between ros2_control-enabled robots and trick simulations.
  3. SIM_trick_canadarm - A trick simulation of canadarm demo running at 100Hz. The simulation calculates forward dynamics with Articulated Body Algorithm, with friction model that takes into account Stribeck effect.
  4. Demo-related packages with moveit configurations, visualization, launch files and additional utils.
  5. Dockerfiles and compose file launching an end to end canadarm demo

Both ros_trick_bridge and trick_ros2_control can be easily imported into any project that wants to leverage connection between trick and ROS2. Any type of data can be exchanged between two systems in the provided framework.

Please check README.md for further details

Architecture of the bridge: image Screenshot from RVIZ: image Screenshot from Trick View GUI: image

xfiderek commented 2 months ago

Info for reviewers: I have an alternative version where instead of cloning space_robots demo as a dependency I have a long dockerfile which includes almost a 100% copy-paste of space robots demo. However, I would personally prefer to keep it as-is if that is ok with you since 1) this avoid unneccessary code duplicationm 2) you already fired the CI :) and. 3) that code will become obstolete as soon as we start pushing moveit2 stack to the registry. When we introduce standalone moveit2 image pushed to the registry, then I can certainly rework this demo if needed.

xfiderek commented 2 months ago

Hi, i think CI failed because I was building images with docker compose build, which seems not to work under certain circumstances (e.g. here https://github.com/danny-avila/LibreChat/discussions/2754#discussioncomment-9461347) . I switched to docker build... now in build.sh. Please try the CI again.

Edit: looking into CI workflow definition it seems that you are running build.sh file from the root folder of the repo, which I think is the reason why my build and build of PR#45 fail. Would not it make sense to first cd to the subfolder containing build.sh and execute it from there?

mkhansenbot commented 2 months ago

@xfiderek - I just changed the build workflow to cd into the folder first, then rebased your branch