Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.

Repository Summary

Checkout URI https://github.com/s2015-turtle/robstride_ros2.git
VCS Type git
VCS Version main
Last Updated 2026-08-29
Dev Status MAINTAINED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

README

robstride_ros2

An unofficial, community-maintained ROS 2 ros2_control hardware component for RobStride actuators using the RobStride private CAN protocol. CAN frames are exchanged through can_msgs/msg/Frame topics. The core packages depend on can_msgs and do not require a specific SocketCAN bridge.

This project is not affiliated with or endorsed by RobStride. The protocol and model profiles were checked against the English manuals in RobStride’s official Product_Information repository. A Japanese README is available as doc/README.ja.md.

Features

  • One ros2_control SystemInterface for multiple actuators on one CAN bus
  • Position, velocity, and effort command interfaces for every joint
  • Different command modes for different motors at the same time
  • Model profiles for RS00, RS01, RS02, RS03, RS04, RS05, RS06, and EL05
  • Motor feedback for position, velocity, torque, temperature, and faults
  • Startup parameter readback and motor-enable confirmation
  • Feedback timeout handling and repeated stop commands during shutdown
  • A nonzero motor-side CAN watchdog configured on every activation

Package structure

The repository contains four ROS 2 packages:

Package Responsibility
robstride_driver Private protocol and can_msgs topic transport
robstride_ros2_control ros2_control Hardware Component
robstride_examples Motor-profile Xacro, controller configuration, and example launch
robstride_ros2 Installs the complete set of packages

The plugin identifier robstride_ros2/RobStrideSystem remains compatible with existing robot descriptions.

CAN bridge compatibility

robstride_driver and robstride_ros2_control communicate only through can_msgs/msg/Frame topics. They can be used with any CAN bridge that provides compatible transmit and receive topics.

robstride_examples is the only package that directly depends on ros2_socketcan, because its example launch starts that bridge. The aggregate robstride_ros2 package installs the examples as well. To install only the bridge-independent Hardware Component and driver, build through robstride_ros2_control:

colcon build --packages-up-to robstride_ros2_control --symlink-install

Supported ROS 2 distributions

The same source branch targets all currently supported ROS 2 distributions. CI is configured to build and test every row independently with its Tier 1 Ubuntu platform.

ROS 2 distribution Ubuntu
Humble 22.04 (Jammy)
Jazzy 24.04 (Noble)
Kilted 24.04 (Noble)
Lyrical 26.04 (Resolute)
Rolling 26.04 (Resolute)

No distribution-specific source branch is required.

Rolling follows current upstream development and can introduce incompatible API changes before the next stable ROS 2 release. The Rolling CI job is the compatibility signal for the exact source revision being tested.

Protocol and firmware assumptions

This package uses the 29-bit extended-frame private protocol documented in the official RobStride manuals. The motor must therefore be configured for the private protocol, not CANopen or the separate 11-bit MIT protocol. The listed EL05 and RS-series profiles use the common command and feedback formats defined in those manuals.

The profile limits below are the ranges used to encode and decode CAN values, not recommended mechanical operating limits. Apply tighter joint, velocity, and effort limits in your robot description when required.

Model Position Velocity Torque Kp Kd
RS00 +/-4 pi rad +/-33 rad/s +/-14 Nm 0..500 0..5
RS01 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS02 +/-4 pi rad +/-44 rad/s +/-17 Nm 0..500 0..5
RS03 +/-4 pi rad +/-20 rad/s +/-60 Nm 0..5000 0..100
RS04 +/-4 pi rad +/-15 rad/s +/-120 Nm 0..5000 0..100
RS05 +/-4 pi rad +/-50 rad/s +/-5.5 Nm 0..500 0..5
RS06 +/-4 pi rad +/-50 rad/s +/-36 Nm 0..5000 0..100
EL05 +/-4 pi rad +/-50 rad/s +/-6 Nm 0..500 0..5

Installation

Install the package in the src directory of a workspace for one of the

File truncated at 100 lines see the full file