![]() |
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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
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) |
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
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
Wiki Tutorials
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 |