|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |
Launch files
Messages
Services
Plugins
Recent questions tagged irc_ros_description at Robotics Stack Exchange
|
irc_ros_description package from irc_ros repoirc_ros_bringup irc_ros_controllers irc_ros_dashboard irc_ros_description irc_ros_examples irc_ros_hardware irc_ros_moveit_config irc_ros_msgs irc_ros_navigation2 |
ROS Distro
|
Package Summary
| Tags | No category tags. |
| Version | 0.1.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | ROS2 packages for the igus Robot Control |
| Checkout URI | https://github.com/commonplacerobotics/irc_ros.git |
| VCS Type | git |
| VCS Version | humble |
| Last Updated | 2025-05-21 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | robotics ros ros2 |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Felix Reuter
Authors
- Felix Reuter
iRC ROS Description
This folder contains launch file for rviz visualisation
-
meshesCAD files for the different robots, see below for possible formats -
rvizconfig files for rviz -
urdfrobot description files-
.urdf.xacrois the top level file to use from.launch.pyfiles - In the respective subfolders:
-
.macro.xacrocontains the macro used to generate an instance -
.description.xacrocontains the geometric description -
.ros2_control.xacrolinks to the rightirc_ros_hardwaresettings
-
-

Install
If you want to use the visualize launch file to check the correct settings of you axes joint_state_publisher_gui is required. Installing it over apt requires adding the right location to the path. Alternatively you can also add the sources to your workspaces src/ folder and build it with colcon.
About the urdf/ folder
As explained above instead of a single static urdf file all kinematics use xacro files. Xacro enables preprocessing the documents and combining different files into a single robot description. For cleaner robot descriptions the geometric information and the control parameters are split into two files.
Kinematic chain
The package aims to be as modular as possible. As such you can combine a mobile platform, robot arm and gripper into a single kinematic. For this start with the highest level kinematic and select the child-kinematics with xacro parameters (via launch parameters). Currently this causes issues with duplicate link names and root links, but this issue should be resolved once this repository is set to public.
Xacro arguments
prefixgripper-
continuous_last_joint(only for robots, not platforms) -
rebel_version(igus ReBeL only)
All of these are set via launch arguments from the respective launch files.
Use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information about the available arguments for a launch file.
Hardware protocol/mock hardware selection
This is done over launch arguments, use ros2 launch irc_ros_[...] [...].launch.py --show-args for more information. If not hardware protocol is specified cprcanv2 is used by default.
Specific settings are set in the respective ros2_control files:
CAN settings
-
can_socketcan interface (defaults tocan0) - Per axis/module:
-
can_idAt which can_id the module can be found -
gear_scaleOnly for motor modules. -
controller_typeDefines if the motor module is a closed-loop or open-loop board -
referencing_requiredif set to true the joint will be referenced on startup. -
referencing_priorityThe order in which joints are referenced. Same numbers should be referenced simultaniously. If no number is given, the joint will be referenced last.
-
CRI settings
-
ipIP address of the EmbeddedControl/TinyCtrl device (defaults to “192.168.3.11”) - Per axis/module:
-
cri_joint_offsetOffset between the joints (CPRCAN) zero position and the zero position in CRI
-
How to add new robots/grippers/…
- Start with a basic urdf file for robot. The joint and link values can be obtained e.g. from Datasheets
- Split the urdf into the different files described at the top of the readme
- Add meshes.
.objfiles can be obtained e.g. from the iRC or CPRogData/Robots/folder and converted to either.mesh,.daeor.stl. The robots in the folder where converted with ctmconv which lost the colouring in the process. - Test with the
visualize.launch.pyfile. If your urdf/xacro file is in the irc_ros_description packagesurdf/folder you can select it via the robot name, e.g.ros2 launch irc_ros_description visualize.launch.py robot_name:='igus_rebel_4dof'or thexacro_fileparameter. If your file resides somewhere else you can use thexacro_pathparameter. - Add ros2_control configuration files
- .ros2_control.xacro in the
irc_ros_description/urdf/[type]/folder and controller inirc_ros_bringup/config/ - Look at iRC robot and project files for the parameters:
-
gear_scale, joint limits (both robot config) and referencing order (project config) are self-explaining - The can id in the robot config is in decimal, while the
can_idparameter in the ros2_control config is given as hexadecimal number. - The
cri_joint_offsetis calculated by dividingGearZerobyGearScale(both in the robot config)
-
- .ros2_control.xacro in the
- Add/adapt launch file in the bringup folder for the application

Joint limits
While the position limits are rather self-explanatory, set them so the robot does not crash into itself and avoids unwanted configurations, the velocity and acceleration limits are less straight-forward. Note that the urdf only offers a velocity limit setting, the moveit package also has settings for joint limits in the aptly named file, where also acceleration limits can be set.
Be sure to check the igus robot control software’s configuration files if you are using an existing kinematic and take a look at the limits for a good starting point.
For the rebel this means a velocity limit of 45°/s and an acceleration limit of 300°/s^2. Make sure to convert the degrees to radians when changing the settings.
These settings are tested in the field and should work without issues. In case you are not satisfied with the speed of your hardware you may still increase the limits. For the ReBeL joints the previously tested velocity limit was 2.6 instead of roughly 0.7. This caused issues for some ReBeLs and as such has been lowered to the new settings. (See #95)
Rebel versions
In case you bought an igus ReBeL and are unsure which version you own, here are the main differences:
-
preis the prerelease version. The DIOs in the arm are not available and the robot base looks different. -
00is the first sold version, joints 2 and 3 have an offset of 30° compared topre- Different urdf, .ros2_control.xacro contains DIO entries
-
01is the upcoming version with different gear ratios- Same urdf as 00 but different .ros2_control.xacro values for gear ratios
- difference is only the gear scale for the bigger motor modules
- 4DOF: Axis 1-3
- 6DOF: Axis 1-4
Package Dependencies
| Deps | Name |
|---|---|
| rviz2 | |
| urdf | |
| xacro | |
| ament_lint_auto | |
| ament_lint_common | |
| ament_cmake_gtest | |
| joint_state_publisher_gui |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| irc_ros_bringup | |
| irc_ros_moveit_config |