No version for distro humble. Known supported distros are highlighted in the buttons above.
Repository Summary
Checkout URI | https://github.com/brukg/so_arm_100_hardware.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-24 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
so_arm_100_hardware | 0.1.1 |
README
SO-ARM100 Hardware Interface
Overview
The so_arm_100_hardware
package provides a ROS 2 Control hardware interface plugin for the SO-ARM100 low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics.
Features
- ROS 2 Control hardware interface implementation
- Configurable communication modes:
- Direct serial communication with the robot
- ROS topic-based communication for simulation
- Position control interface for all joints
- Thread-safe feedback handling
- Lifecycle-managed node implementation
Package Details
- Name: so_arm_100_hardware
- Version: 0.0.0
- Description: ROS2 Control Hardware Interface for SO-ARM100 low-cost 5DoF robotic manipulator
- Maintainer: Bruk Gebregziabher (bruk@signalbotics.com)
- License: Apache-2.0
Dependencies
rclcpp
hardware_interface
pluginlib
rclcpp_lifecycle
sensor_msgs
Communication Interface
The hardware interface communicates using the following ROS topics:
-
Command Topic:
command
(sensor_msgs/msg/JointState)- Publishes joint position commands to the robot
-
Feedback Topic:
feedback
(sensor_msgs/msg/JointState)- Subscribes to joint state feedback from the robot
Hardware Interface Details
The SOARM100Interface
class implements:
- State and command interfaces for position control
- Lifecycle management (init, activate, deactivate)
- Read and write methods for communication
- Thread-safe feedback handling using mutex
- Asynchronous ROS communication using a dedicated executor thread
Installation
- Clone the package into your ROS 2 workspace:
cd ~/ros2_ws/src
git clone git@github.com:brukg/so_arm_100_hardware.git
- Install dependencies:
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
- Build the package:
colcon build --packages-select so_arm_100_hardware
- Source the workspace:
source install/setup.bash
Usage
Configuration
Create a ROS 2 Control configuration file (YAML) that includes the hardware interface:
so_arm_100:
hardware_interface:
use_serial: true # Set to true for real robot, false for simulation
serial_port: "/dev/ttyUSB0" # Serial port for real robot
serial_baudrate: 1000000 # Serial baudrate
Serial Communication Mode
When using serial communication (use_serial: true
):
- Ensure the robot is connected to the specified serial port
- Grant serial port access permissions:
sudo usermod -a -G dialout $USER # Log out and back in after this
- Verify the serial port and baudrate settings match your robot’s configuration
Topic Communication Mode
When using topic communication (use_serial: false
):
- Commands are published to the “command” topic
- Feedback is received from the “feedback” topic
File truncated at 100 lines see the full file
CONTRIBUTING
No version for distro kilted. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.