Skip to content

Describe the robot

ROSMASTER X3 PLUS

ROSMASTER X3 PLUS is an omnidirectional movement robot developed based on the ROS robot operating system. It supports four controllers: Jetson NANO 4GB/ORIN NX/ORIN NANO and Raspberry Pi 5. It is equipped with high-performance hardware configurations such as lidar, depth camera, 6DOF robotic arm, 520 high-power motor, voice recognition interactive module, and HD 7-inch display screen. It can realize applications such as APP mapping and navigation, automatic driving, human feature recognition, moveIt robotic arm simulation control and multi-machine synchronous control. It supports mobile phones, handles, computer keyboards remote control. 124 video tutorials with Chinese and English subtitles and codes are provided for free.

Reasonable design, unique shape

  • X3PLUS supports four development boards: Jetson NANO 4GB/ORIN NX/ORIN NANO/RaspberryPi 5, suitable for different users.
  • The whole robot is made of green aluminum alloy material, which is safe and non-toxic, beautiful and durable.
  • Mecanum wheel and pendulum suspension chassis can make the robot adapt to uneven ground.

Rosmaster

Vision for a variant

The goal is to modify the original design to a simpler structure. Lets replace the arm with a pan tilt unit to have a flexible visualization unit.

X3Plus-Explorer

Logical Structure

The robot has a logical structure, which we should plan for.

x3plus_structure

Describe the Rosmaster 3 robot

Copy the original files

Adapting the model shall keep the structure and naming content while preparing the model description for simulation and extended description.

URDF or XMACRO

Note: Due to the fact, that the source provides an urdf file and a xacro file which are not consistent, the decision is to use the xacro files as the definition source. These needs adaption to integrate into the simulation.

  • Copy the files into local package master3_description
  • Using the urdf file from the urdf folder
  • Using the STL files from the meshes folder
  • Adjust all internal references to the assets of the original package, especially for the meshes
  • Skip the xacro files

Build iterativly

Iterating the description package is easier when only that package and dependencies are build.

colcon build --packages-up-to x3plus_description

New Launch file

Setup a new launch file display_Xacro.launch.py for displaying the xacro description

Adjust the robot description generation with xacro application for the master xacro definition file considering the arguments.

  robot_description_config = xacro.process_file(xacro_file, 
            mappings={  
                }).toxml()

Checking the Visual Model

There is a launch file which is starting the RViz2 application to view the urdf model.

ros2 launch x3plus_description display_Xacro.launch.py

RViz2 Visual Check

Checking the structure

ROS provides a tool which can check the urdf.

But first it is required to generate the urdf file from the xacro definition with the variant options you want to use.

xacro check_urdf yahboomcar_X3plus.urdf.xacro > yahboomcar_X3plus.urdf mecanum:=False

Try to parse the model specified by the program argument to validate it.

check_urdf yahboomcar_X3plus.urdf

The output will display the structure of the robot.

robot name is: yahboomcar_X3plus
---------- Successfully Parsed XML ---------------
root Link: base_footprint has 1 child(ren)
    child(1):  base_link
        child(1):  back_left_wheel
        child(2):  back_right_wheel
        child(3):  imu_link
        child(4):  camera_link
        child(5):  front_left_wheel
        child(6):  front_right_wheel
        child(7):  laser_link

There is also a more graphical representation be the following tool

urdf_to_graphviz yahboomcar_X3plus.urdf yahboomcar_X3plus

This will generate a gv (graphviz) and PDF file with the graph.

urdf_to_graphviz

References

ROSMASTER X3 PLUS on Github

Building a Pan-Tilt Mechanism