5.4 KiB
Instructions for Adding a New Robot to the Robossembler ROS 2 Framework
First, you need to download the robot package containing xacro
or urdf
files, as well as geometry files in formats such as .stl
, .dae
, .obj
, etc.
Before starting, it is important to understand the basics of the xacro format. This format allows you to reuse existing fragments of a robot's URDF description, making it easier to create and modify descriptions.
Steps for Adding a New Robot:
-
Install the Robot Package
After installing the robot package, create a file namedxacro_args.yaml
in the{description_package}/config/
directory. This file should specify the arguments needed to convert thexacro
file into aurdf
. -
Configure the Launch File
Edit the filerbs_bringup.launch.py
to define the parameters required to launch the robot.Example of a standard implementation:
main_script = IncludeLaunchDescription( PythonLaunchDescriptionSource( [ PathJoinSubstitution( [FindPackageShare("rbs_runtime"), "launch", "runtime.launch.py"] ) ] ), launch_arguments={ "with_gripper": "true", "gripper_name": "rbs_gripper", "robot_type": "rbs_arm", "description_package": "rbs_arm", "description_file": "rbs_arm_modular.xacro", "robot_name": "rbs_arm", "use_moveit": "false", "moveit_config_package": "rbs_arm", "moveit_config_file": "rbs_arm.srdf.xacro", "use_sim_time": "true", "hardware": "gazebo", "use_controllers": "true", "scene_config_file": "", "base_link_name": "base_link", "ee_link_name": "gripper_grasp_point", }.items(), )
This configuration launches another file with specific arguments. Below is a description of each argument to help you decide whether it is needed.
Parameter Descriptions:
-
with_gripper
Indicates whether the robot has a gripper. If set totrue
, thegripper_controller
will be configured and launched. -
gripper_name
Used as a keyword to identify links and joints related to the gripper. It is also applied inxacro
arguments. -
robot_type
Specifies a group of robots of the same type, allowing you to semantically group robots with different names but similar designs. -
description_package
The package containing the robot's URDF description. This parameter is mandatory and is used to locate the URDF file and controller configuration files. -
description_file
The name of the description file, which should be located in{description_package}/urdf/
. -
robot_name
A unique name for the robot to distinguish it from others in the scene. -
use_moveit
Indicates whether MoveIt 2 should be used. While it is not required for basic movements, it is recommended when working with obstacles. -
moveit_config_package
The name of the MoveIt 2 configuration package generated based on the{description_package}
. This parameter is required if you plan to use MoveIt 2. -
moveit_config_file
The MoveIt 2 launch file located in{moveit_config_package}/launch/
. -
use_sim_time
A mandatory parameter for simulation. It ensures that time is synchronized with the simulator. -
hardware
Specifies the interface to be used for controlling the robot. For example,gazebo
. This parameter is primarily used inxacro
files. -
use_controllers
Indicates whether to use standard controllers. If set tofalse
, the robot will not be able to move. This parameter controls the execution of the control.launch.py file. You can write a custom implementation instead of using this flag. -
scene_config_file
A YAML file that defines the scene configuration. A default example is available here. Ensure that the degrees of freedom of your robot match the configuration file. -
base_link_name
The name of the robot's base link, which defines where the robot begins. This parameter is important for skill configuration. Review your robot's URDF to set this correctly. -
ee_link_name
The name of the end-effector link, which defines where the robot ends. This parameter is also important for skill configuration and should be set based on the URDF. -
control_space
Specifies the space in which the robot will be controlled.
Possible values:task
— control in task space (e.g., using positions and orientations in the workspace).joint
— control in joint space (e.g., using angular values for each robot joint).
Default value:task
.
-
control_strategy
Specifies the control strategy for the robot.
Possible values:position
— position control, where desired positions are set for joints or the workspace target point.velocity
— velocity control, where desired movement speeds are set.effort
— effort control, where torques or forces applied to the joints are specified.
Default value:position
.
-
interactive
Specifies whether to run themotion_control_handle
controller.
Default value:true
.