2025-02-16 08:00:07 +00:00
# ROS2 packages for OpenArm robots
2025-02-07 09:22:54 +00:00
2025-05-07 00:44:46 +00:00
< p >
< a href = "https://build.ros2.org/job/Hdev__openarm__ubuntu_jammy_amd64/" alt = "alt=" ROS2 build status " >
< img src = "https://build.ros2.org/buildStatus/icon?job=Hdev__openarm__ubuntu_jammy_amd64" / >
< / a >
2025-07-11 05:25:13 +00:00
< a href = "https://github.com/enactic/openarm_ros2/tree/main/LICENSE" alt = "Apache License 2.0" >
< img src = "https://img.shields.io/github/license/enactic/openarm_ros2" / >
2025-05-07 00:44:46 +00:00
< / a >
< / p >
2025-04-25 08:57:10 +00:00
[Quickstart ](#installation )
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
2025-03-28 09:05:38 +00:00
- openarm_hardware: hardware interface for ros2_control
2025-03-28 09:06:57 +00:00
- openarm_moveit_config: motion planning with [moveit2 ](https://github.com/moveit/moveit2 )
2025-02-07 09:22:54 +00:00
2025-03-28 10:09:46 +00:00
### Description Packages
2025-03-11 05:22:47 +00:00
Each link has a visual mesh and a collision mesh, as shown in the figures below:
< img width = "412" alt = "visual meshes of openarm_bimanual_description urdf in rviz2" src = "https://github.com/user-attachments/assets/9020efc3-69bc-420d-93a1-305885925638" / >
< img width = "383" alt = "collision meshes of openarm_bimanual_description urdf in rviz2" src = "https://github.com/user-attachments/assets/6f62184e-ccea-4859-9364-7c7d1b8def86" / >
2025-03-28 10:09:46 +00:00
### MoveIt2 Support
2025-03-11 05:22:47 +00:00
2025-02-07 09:43:27 +00:00
https://github.com/user-attachments/assets/a0f962e5-6150-49ce-b18e-9914bcb322ef
2025-06-24 08:37:05 +00:00
---
2025-03-28 10:09:46 +00:00
## Installation
2025-04-25 08:57:10 +00:00
1. [Install ROS2 and ros-dev-tools ](https://docs.ros.org/en/humble/Installation.html ) (tested on Humble with Ubuntu 22.04)
2. [Create a ROS2 workspace and source the overlay ](https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Creating-A-Workspace/Creating-A-Workspace.html )
2025-03-28 10:09:46 +00:00
```sh
2025-06-24 08:37:05 +00:00
source /opt/ros/humble/setup.bash # Change "humble" to your ROS 2 distro, ie:
# source /opt/ros/jazzy/setup.bash
2025-03-28 10:09:46 +00:00
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
2025-07-11 05:25:13 +00:00
git clone https://github.com/enactic/openarm_ros2.git
2025-03-28 10:09:46 +00:00
```
3. [Install dependencies with rosdep ](https://docs.ros.org/en/humble/Tutorials/Intermediate/Rosdep.html ) and [build the packages with colcon ](https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html )
```sh
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
2025-06-24 08:37:05 +00:00
#⚠️ If you're using ROS2 Iron or Jazzy, apply the patch below before building:
2025-03-28 10:09:46 +00:00
colcon build
```
2025-03-11 05:22:47 +00:00
2025-03-28 10:09:46 +00:00
4. *In a new terminal* , source the workspace setup script
2025-02-07 09:43:27 +00:00
2025-03-28 10:09:46 +00:00
```sh
cd ~/ros2_ws
2025-04-25 08:57:10 +00:00
source install/setup.bash
2025-03-28 10:09:46 +00:00
```
2025-03-10 02:25:28 +00:00
2025-04-25 08:57:10 +00:00
5. Test the installation by launching a demo. It may be necessary to restart your computer once.
```sh
ros2 launch openarm_bimanual_moveit_config demo.launch.py
```
2025-06-24 08:37:05 +00:00
## ROS2 Jazzy patch
Edit the test source file:
```sh
nano ~/ros2_ws/src/openarm_ros2/openarm_hardware/test/test_openarm_hardware.cpp
```
2025-06-24 08:41:42 +00:00
Find the line near the bottom:
2025-06-24 08:37:05 +00:00
```sh
2025-06-24 08:41:42 +00:00
ASSERT_NO_THROW(hardware_interface::ResourceManager rm(urdf));
2025-06-24 08:37:05 +00:00
```
Replace it with:
```sh
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.
---
2025-07-23 03:05:22 +00:00
## Related links
- 📚 Read the [documentation ](https://docs.openarm.dev/software/ros2/install )
- 💬 Join the community on [Discord ](https://discord.gg/FsZaZ4z3We )
- 📬 Contact us through < openarm @ enactic . ai >
2025-02-07 09:22:54 +00:00
## License
2025-05-22 07:22:55 +00:00
All packages of `openarm_ros2` are licensed under the [Apache License 2.0 ](https://www.apache.org/licenses/LICENSE-2.0 ).
2025-05-28 02:59:34 +00:00
## Code of Conduct
All participation in the ROS2 packages for OpenArm project is governed by our
[Code of Conduct ](CODE_OF_CONDUCT.md ).