yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RDK X3 Robot📖
01. About RDK-X3-Robot
1. Instructions
  • 1. Introduction
  • 2. FAQ
  • 3. Battery and charger use precautions
  • 4.TF card expand capacity
2. Common problem analysis
02. Assembly video
  • Part1-Install Motor
  • Part2-Install Battert Fixing Column
  • Part3-Install Motor Coupling
  • Part4-Install Mecanum wheel
  • Part5-Install Expansion Board
  • Part6-Wiring Show
  • Part7-Install Main Control Board
  • Part8-Install Car Top Plate and Antenna
  • Part9-Install OLED Screen
  • Part10-Install Depth Camera(Optional)
  • Part11-Install OLED Screen
  • Part12-Install HD Camera
  • Part13-Install Top Plate
  • Part14-Install Right Side Plate
  • Part15-Motor Wiring Show
  • Part16-lnstall Car Body
  • Part17-Install Battery
  • Part18-Install Lidar
03. Remote control tutorial
  • 1. The phone APP remote tutorial
  • 2. USB wireless controller remote tutorial
04. ROS functional tutorial
  • 1. Introduction of extension board
  • 2. Set up STM32 development environment
  • 3. Key control buzzer sound
  • 4. FreeRTOS application
  • 5. Serial communication
  • 6. SBUS model remote control
  • 7. CAN bus communication
  • 8. RGB color light strip
  • 9. Timer interrupt control PWM servo
  • 10. Control serial steering gear
  • 11. Nine-axis attitude sensor to obtain data
  • 12. Control motor forward and reverse
  • 13. The timer captures encoder data
  • 14. Theory of robot kinematics analysis
  • 15. PID control robot motion
05. Basic control tutorial
  • 1. Update the firmware of the expansion module
  • 2. Install the Python driver library
  • 3. Set the type of bottom car
  • 4. Open and close the APP program control
  • 5. Turn hotspot mode on and off
  • 6. The buzzer blows
  • 7. Control the motor forward and reverse
  • 8. Control robot movement
  • 9. OLED display
  • 10. Control fan and lamp effect
06. Development environment setup
  • 1. Virtual Machine
  • 2. Linux Basics
  • 3. Remote connection
  • 4. Multi-computer communication configuration
  • 5. Bind the device ID
  • 6. Image installation and backup
07. ROS2 Basic Course
  • 1. Introduction to ROS2
  • 2. ROS2 install Humble
  • 3. ROS2 development environment
  • 4. ROS2 workspace
  • 5. ROS2 function package
  • 6. ROS2 node
  • 7. ROS2 topic communication
  • 8. ROS2 service communication
  • 9. ROS2 action communication
  • 10. ROS2 custom interface message
  • 11. ROS2 parameter service case
  • 12. ROS2 meta-function package
  • 13. ROS2 distributed communication
  • 14. ROS2 DDS
  • 15. ROS2 time related API
  • 16. ROS2 common command tools
  • 17. ROS2 rviz2 use
  • 18. ROS2 rqt toolbox
  • 19. ROS2 Launch startup file configuration
  • 20. ROS2 recording and playback tool
  • 21. ROS2 URDF model
  • 22. ROS2 Gazebo simulation platform
  • 23. ROS2 TF2 coordinate transformation
08. Robot chassis control
  • 1. PID algorithm theory
  • 2. Robot information release
  • 3. Robot control
  • 4. Robot state estimation
  • 5. Robot calibration
  • 6. Robot trajectory tracking
  • 7. URDF model
09. Lidar courses
  • 1. Introduction and use of lidar
  • 2. Lidar obstacle avoidance
  • 3. Lidar following
  • 4. Lidar guard
  • 5. Patrol
  • 6. gmapping algorithm
  • 7. cartographer algorithm
  • 8. Navigation and obstacle avoidance
  • 9. App mapping and navigation
10. OpenCV courses
  • 1. Introduction to OpenCV
  • 2. OpenCV geometric transformation
  • 3. OpenCV image processing
  • 4. OpenCV image beautification
  • 5. Qr code creation and identification
11. MIPI camera course
  • 1. Camera driver
  • 2. Adjust the color HSV value
  • 3. Color recognition
  • 4. Color tracking
  • 5. Color follow
  • 6. Qr code command
  • 7. Face detection
  • 8. Object detection
  • 9. Visual Inspection -OpenCV
  • 10. Visual inspection - Deep learning
  • 11. Human tracking
  • 12. Gesture control
12. Depth Camera courses
  • 1. Use depth camera
  • 2. Calibration of camera internal reference
  • 3. ROS+OpenCV Foundation
  • 4. AR vision
  • 5. Color tracking
  • 6. Object tracking
13. Multi vehicle control
  • 1. Multi-vehicle synchronous control
  • 2. Multi-vehicle navigation
Remote login control
  • 1. VNC and SSH remote login
  • 2. Jupyter lab login and case code running
Download
  • RemoteCtrl_APP(iOS/Android))
  • Mapping_APP(iOS_Android)
  • Code
  • System File
  • VM_File
  • Manual
  • Software_File
  • Hardware_File
  • ROS2_Basic_VM
Download ZIP

Welcome to RDK X3 Robot repository

7. URDF model

7. URDF model

7. URDF model7.1 Program function description7.2 Program code reference path7.3. Program Startup7.4 Introduction to URDF7.4.1. link7.4.2. joints

 

7.1 Program function description

After running the relevant program on the virtual machine side, the URDF model file of the car can be displayed in rviz. The car end also contains relevant programs, but because there is no visual interface, rviz will not be started when running, but the tf transformation of chassis and sensor coordinate systems will still be released for subsequent functions.

7.2 Program code reference path

Virtual machine The location of the function source code is located in,

xxxxxxxxxx
/home/yahboom/dev_ws/src/yahboomcar_rviz/launch/yahboomcar_urdf_launch.py

Where, the path of URDF model file is,

xxxxxxxxxx
/home/yahboom/dev_ws/src/yahboomcar_rviz/urdf/yahboomcar.urdf

After SSH connection to car , the location of the relevant source code is located,

xxxxxxxxxx
/userdata/yahboomcar_ws/src/yahboomcar_description/launch/description_launch.py

The path of the URDF model file is,,

xxxxxxxxxx
/userdata/yahboomcar_ws/src/yahboomcar_description/urdf/yahboomcar.urdf

7.3. Program Startup

In the VM terminal, enter,

xxxxxxxxxx
ros2 launch yahboomcar_description display_launch.py

1684739076086

You can view TF tree, virtual machine terminal input,

xxxxxxxxxx
ros2 run tf2_tools view_frames.py

A frame.pdf file will be generated in the terminal directory, and then we can open it with the following command,

xxxxxxxxxx
evince frames.pdf

1684490747367

7.4 Introduction to URDF

URDF, full name Unified Robot Description Format, translated into Chinese as Unified Robot description format, is a robot model file described in xml format, similar to D-H parameters.

xxxxxxxxxx
<?xml version="1.0" encoding="utf-8"?>
<robot name="yahboomcar">
</robot>

The first xml mandatory field describes the version information of the xml.

The second line describes the current robot name; All information about the current robot is contained in the [Robot] TAB.

Components:

  • link, the link, you can think of it as a human arm
  • joint, think of it as a human elbow joint

link and joint relationship: Two links are connected by joints, imagine an arm with a lower arm (link) and a larger arm (link) connected by an elbow joint.

7.4.1. link

1) Introduction

In the URDF descriptive language, link is used to describe physical properties,

  • Describes visual displays, tags.
  • Describes collision properties, tag.
  • Describes physical inertia. The tag is not commonly used.

Links can also describe the link size, color, shape, inertial matrix, collision properties, each Link becomes a coordinate system.

2) Sample code (yahboomcar.urdf)

xxxxxxxxxx
<link
    name="base_link">
    <inertial>
      <origin
        xyz="0.00747327885898614 -0.000703137401396085 0.00844632750789007"
        rpy="0 0 0" />
      <mass
        value="0.472828691870721" />
      <inertia
        ixx="0.00023735992797554"
        ixy="1.96687462104139E-07"
        ixz="4.09403791310172E-05"
        iyy="0.000480258948998206"
        iyz="2.77544074265144E-07"
        izz="0.000585619745886075" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://yahboomcar_rviz/meshes/base_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://yahboomcar_rviz/meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>

3) Label introduction

  • origin

Describes pose information; The xyz attribute describes its coordinate position in the larger environment, and the rpy attribute describes its attitude.

  • mess

It describes the quality of the link.

  • inertia

The inertial reference frame, due to the symmetry of the rotational inertia matrix, requires only six upper triangular elements ixx, ixy, ixz, iyy, iyz, izz as properties.

  • geometry

The label describes the shape; The main function of mesh properties is to load texture files, filename attribute texture path file address.

xxxxxxxxxx
<box size="1 2 3"/> #box箱体,通过size属性描述盒装的长宽高。#box, using the size attribute to describe the length, width and height of the box.
<cylinder length="1.6" radius="0.5"/> #cylinder圆状,通过`length`属性描述圆柱的高度,`radius`属性描述圆柱的的半径。#cylinder cylindrical, the height of the cylinder is described through the 'length' attribute, and the 'radius' attribute describes the radius of the cylinder.
<sphere radius="1"/> #sphere球状,通过`radius`属性描述球的半径。#sphere The radius of the sphere is described by the 'radius' attribute.
  • material

    The label describes the material; The name attribute is mandatory field , can be empty, can be repeated. Red, green, blue, and transparency are described by the rgba attribute in the [color] tag, separated by a space. The color range is [0-1].

7.4.2. joints

1) Introduction

Describe the relationship between two joints, motion position and speed limits, kinematic and dynamic properties.

Joint type:

  • fixed: fixed the joint. No movement allowed. It acts as a connection.
  • continuous: rotates the joint. Can continue to rotate, there is no rotation Angle limit.
  • revolute: Rotates the joint. Similar to continuous, there is a restriction on rotation Angle.
  • prismatic: sliding joint. Move along an axis, with a position limitation.
  • floating: Floating joints. Six degrees of freedom, 3T3R.
  • planar: planar joint. Allow translations or rotations above plane orthogonality.

2) Sample code (yahboomcar.urdf)

xxxxxxxxxx
<joint
    name="left_front_joint"
    type="continuous">
    <origin
      xyz="0.06 0.08361 -0.03295"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="left_front_wheel" />
    <axis
      xyz="0 1 0" />
    <limit
      lower="0"
      upper="0"
      effort="0"
      velocity="0" />
  </joint>

The name attribute in the [joint] tag is required , describes the name of the joint, and is unique. In the [joint]tag, the type attribute corresponds to six types of joints. 3) Label introduction

  • origin

The child label refers to the relative position of the rotary joint in the coordinate system of the parent.

  • parent, child

parent, child Indicates the two links to be connected. The parent is the reference, and the child rotates around the praent.

  • axis

The child label indicates which axis (xyz) the child's corresponding link rotates around and the amount of rotation about the fixed axis.

  • limit

child tags are primarily restricted to children. The lower and upper attributes limit the range of rotation radians, and the effort attribute limits the range of forces in the rotation process. The velocity property limits the speed of rotation in meters per second or m/s (plus or minus value, in cows or N).

  • mimic

Describe the relationship between the joint and existing joints.

  • safety_controller

Describes security controller parameters. Protect the movement of the robot joints.

 

Robot trajectory tracking
Introduction and use of lidar

COMPANY

  • About us
  • Team Style
  • Blog

LEARNING & EXPLORATION

  • Tutorials
  • Edge AI hardware
  • Educational robots
  • Embedded intelligent hardware

WHERE TO BUY

  • Yahboom Online Store
  • Amazon
  • Alibaba
  • AliExpress
  • Mercado

TECHNOLOGY SUPPORT

  • Email: support@yahboom.com

BE A DISTRIBUTOR

  • Email: sales@yahboom.com
QR Code

Copyright © 2017-2026 Yahboom. All Rights Reserved.

EN/中文