openarm_ros2/README.md
2025-07-10 22:25:13 -07:00

3.6 KiB

ROS2 packages for OpenArm robots

Quickstart

https://github.com/user-attachments/assets/90b44ef4-5cdc-4bf5-b56f-be2a5ff264b4

  • openarm_bimanual_description: dual arm urdf with torso and realsense head camera
  • openarm_bimanual_moveit_config: bimanual motion planning with OctoMap occupancy grid mapping
  • openarm_bimanual_bringup: setup scripts for bimanual openarm
  • openarm_bringup: setup scripts for single physical openarm
  • openarm_description: single arm urdf
  • openarm_hardware: hardware interface for ros2_control
  • openarm_moveit_config: motion planning with moveit2

Description Packages

Each link has a visual mesh and a collision mesh, as shown in the figures below:

visual meshes of openarm_bimanual_description urdf in rviz2 collision meshes of openarm_bimanual_description urdf in rviz2

MoveIt2 Support

https://github.com/user-attachments/assets/a0f962e5-6150-49ce-b18e-9914bcb322ef


Installation

  1. Install ROS2 and ros-dev-tools (tested on Humble with Ubuntu 22.04)
  2. Create a ROS2 workspace and source the overlay
source /opt/ros/humble/setup.bash # Change "humble" to your ROS 2 distro, ie:
                                  # source /opt/ros/jazzy/setup.bash 
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/enactic/openarm_ros2.git
  1. Install dependencies with rosdep and build the packages with colcon
cd ~/ros2_ws
sudo rosdep init
rosdep update
rosdep install --from-paths src -y --ignore-src -r

sudo apt install -y python3-colcon-common-extensions

#⚠️ If you're using ROS2 Iron or Jazzy, apply the patch below before building:

colcon build
  1. In a new terminal, source the workspace setup script
cd ~/ros2_ws
source install/setup.bash
  1. Test the installation by launching a demo. It may be necessary to restart your computer once.
ros2 launch openarm_bimanual_moveit_config demo.launch.py

ROS2 Jazzy patch

Edit the test source file:

nano ~/ros2_ws/src/openarm_ros2/openarm_hardware/test/test_openarm_hardware.cpp

Find the line near the bottom:

  ASSERT_NO_THROW(hardware_interface::ResourceManager rm(urdf));

Replace it with:

  ASSERT_NO_THROW({
    auto logger = rclcpp::get_logger("test_logger");
    auto clock = std::make_shared<rclcpp::Clock>(RCL_ROS_TIME);
    hardware_interface::ResourceManager rm(urdf, clock, logger, true, 0);
  });

Continue with the build.


License

All packages of openarm_ros2 are licensed under the Apache License 2.0.

Code of Conduct

All participation in the ROS2 packages for OpenArm project is governed by our Code of Conduct.