|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged so_arm_100_hardware at Robotics Stack Exchange
|
so_arm_100_hardware package from so_arm_100_hardware reposo_arm_100_hardware |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | a ROS 2 Control hardware interface plugin for the SO100-arm low-cost 5DoF robotic manipulator. This interface supports both direct serial communication with the physical robot and simulation via ROS topics. |
| 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 |
| Released | RELEASED |
| Tags | No category tags. |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bruk Gebregziabher
Authors
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
rclcpphardware_interfacepluginlibrclcpp_lifecyclesensor_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
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_auto | |
| ament_lint_common | |
| hardware_interface | |
| pluginlib | |
| rclcpp | |
| std_msgs | |
| rclcpp_lifecycle | |
| std_srvs |
System Dependencies
| Name |
|---|
| yaml-cpp |