yahboom
HomeLearn
Solution
Blog
Online Store
About Us
EN/中文
RDK X5 Robot📖
01. RDK-X5-Robot Introduction
  • 1.Introduction
  • 2.Common Problem Analysis
  • 3.Battery and charger usage precautions
  • 4.TF card expand capacity
02. Assembly Tutorial
  • Assembly Tutorial
  • Assembly Video-1
  • Assembly Video-2
  • Assembly Video-3
  • Assembly Video-4
03. Remote Control Course
  • 1.Mobile APP remote control
  • 2.USB Wireless Controller Remote Control
04. ROS Driver Board Course
  • 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 Course
  • 1.Update expansion board firmware
  • 2.Install Python driver library
  • 3.Set the car type
  • 4.Open and close APP program control
  • 5.Turn hotspot mode on and off
  • 6.Buzzer sound
  • 7.Control the motor to rotate forward and reverse
  • 8.Controlling robot movement
  • 9.OLED display
  • 10.Control fans and lighting effects
06. Development Environment
  • 1. Virtual machine installation and use
  • 2. Linux Basics
  • 3. Remote connection
  • 4. Multi-machine communication configuration
  • 5. Bind 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 Course
  • 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 Course
  • 1. Introduction and use of lidar
  • 2. Lidar obstacle avoidance
  • 3. Lidar tracking
  • 4. Lidar guard
  • 5. Lidar patrol
  • 6. gmapping mapping algorithm
  • 7. Cartographer mapping algorithm
  • 8. Navigation and obstacle avoidance
  • 9. App Mapping and Navigation
10. OpenCV Course
  • 1. Getting started with OpenCV
  • 2. OpenCV geometric transformation
  • 3. OpenCV Image Processing
  • 4. OpenCV image beautification
  • 5. QR code creation and recognition
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 instructions
  • 7. Face Detection
  • 8. Object Detection
  • 9. Visual line patrol-OpenCV
  • 10. Visual line patrol-deep learning
  • 11. Human body tracking
  • 12. Gesture control
12. Depth Camera Course
  • 1. Use of Depth Camera
  • 2. Camera intrinsic calibration
  • 3. ROS+OpenCV Basics
  • 4. AR Vision
  • 5. Color Tracking
  • 6. Object Tracking
  • 7. RTAB-Map 3D Mapping Navigation
13. Multi-robot Synchronous Control
  • Multi-vehicle synchronous control
Remote login control
  • 1. VNC and SSH remote login
  • 2. Jupyter lab login and case code running
Download
  • System_File
  • Code
  • VM_File
  • Software_Tools
  • Hardware_Info
  • Firmware
  • Instruction_Manual
  • ROS2_Basic_VM
Download ZIP

Welcome to RDK X5 Robot repository

7. URDF Model

7. URDF model

7. URDF model7.1. Program function description7.2. Program code reference path7.3, Program startup7.4, URDF introduction7.4.1, link7.4.2, joints

7.1. Program function description

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

7.2. Program code reference path

The virtual machine The source code of this function is located at,

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

Among them, the path of the URDF model file is,

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

S After SH connects to the car, the location of the relevant source code is,

xxxxxxxxxx
/home/sunrise/yahboomcar_ws/src/yahboomcar_description/launch/description_launch.py

Among them, the path of the URDF model file is,

xxxxxxxxxx
/home/sunrise/yahboomcar_ws/src/yahboomcar_description/urdf/yahboomcar.urdf

7.3, Program startup

In the virtual machine terminal, enter,

xxxxxxxxxx
ros2 launch yahboomcar_rviz yahboomcar_urdf_launch.py

1684739076086

You can view the TF tree, virtual machine terminal input,

xxxxxxxxxx
ros2 run tf2_tools view_frames

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

xxxxxxxxxx
evince frames.pdf

1684490747367

7.4, URDF introduction

URDF, the full name is 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 line is a required XML field, describing the XML version information.

The second line describes the current robot name; all information about the current robot is contained in the [robot] tag.

Components:

  • Link, connecting rod, can be imagined as a human arm

  • Joint, joint, can be imagined as a human elbow joint

Relationship between link and joint: two links are connected by joints, imagine that the arm has a small arm (link) and a large arm (link) connected by an elbow joint (joint).

7.4.1, link

1), Introduction

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

  • Describe visual display, tag.

  • Describe collision properties, tag.

  • Describes physical inertia, the tag is not commonly used.

Links can also describe the link size (size)\color (color)\shape (shape)\inertial matrix (inertial matrix)\collision parameters (collision

properties), etc. Each Link will become a coordinate system.

  1. 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>
  1. Tag introduction

  • origin

Describes the pose information; the xyz attribute describes the coordinate position in the environment, and the rpy attribute describes its own posture.

  • mess

Describes the quality of the link.

  • inertia

Inertial reference system, due to the symmetry of the rotational inertia matrix, only 6 upper triangular elements ixx, ixy, ixz, iyy, iyz, izz are required as attributes.

  • geometry

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

xxxxxxxxxx
<box size="1 2 3"/> #box box, the length, width and height of the box are described by the size attribute.
<cylinder length="1.6" radius="0.5"/> #cylinder is cylindrical, the `length` attribute is used to describe the height of the cylinder, and the `radius` attribute is used to describe the radius of the cylinder.
<sphere radius="1"/> #sphere is spherical, and the `radius` attribute is used to describe the radius of the sphere.
  • material

The tag describes the material; the name attribute is a required item, can be empty, and can be repeated. The rgba attribute in the [color] tag is used to describe red, green, blue, and transparency, separated by spaces. The color range is [0-1].

7.4.2, joints

1), Introduction

Describes the relationship between two joints, movement position and speed restrictions, kinematic and dynamic properties.

Joint types:

  • fixed: fixed joint. No movement is allowed, it acts as a connection.

  • continuous: revolute joint. It can rotate continuously, without rotation angle restrictions.

  • revolute: revolute joint. Similar to continuous, with rotation angle restrictions.

  • prismatic: sliding joint. Moves along a certain axis with position restrictions.

  • floating: floating joint. Has six degrees of freedom, 3T3R.

  • planar: planar joint. Allows translation or rotation above the plane orthogonal to the plane.

2), Sample code (yahboomcar.urdf)

​x
<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>

In the [joint] tag, the name attribute is a required item, describing the name of the joint and is unique.

In the [joint] tag, fill in the type attribute for the six major joint types.

  1. Tag introduction

  • origin

Subtag, refers to the relative position of the rotation joint in the parent coordinate system.

  • parent, child

The parent and child subtags represent two links to be connected; parent is a reference object, and child rotates around the parent.

  • axis

The subtag indicates which axis (xyz) the link corresponding to the child rotates around and the amount of rotation around the fixed axis.

  • limit

The subtag is mainly used to limit the child. The lower and upper attributes limit the range of rotation, the effort attribute limits the force range during the rotation process. (positive and negative value, in Newton or N), the velocity attribute limits the speed of rotation, in meters/second or m/s.

  • mimic

Describes the relationship between this joint and the existing joints.

  • safety_controller

Describes the safety controller parameters. Protects 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/中文