One of, if not the main purpose, of the ROS 2 stack is to create and experiment with robots and robotic applications. Using the following instructions, you are going to create the physical and visual description of your robot, create joints to manipulate movement, add physical properties, and visualize your robot in a simulation environment.

Table of Contents

<aside> 💡 It is important to follow these instructions IN ORDER and ensure that each layer consistently works before moving on to the next step*.* Building a ROS 2 robot is a lot like building a house. Ensuring that you have a strong foundation before moving on is essential. Learning that there is an error in your low-level description will create exponentially more problems on the higher levels of robot descriptions to be corrected.

</aside>

Background

Before beginning to create your robot, it is important to understand how ROS 2 works around robot descriptions, the file formats that are used in different applications, and understanding what type of robot you have. Information on important robot topics is included below.

TF2

URDF

XACRO

Robot State Publisher

Gazebo Plugins

ros2_control

Controller Manager

Differential Drive Robot


Building your own Differential Drive Robot

Create description package

Create robot XACRO

Gazebo spawn

Differential Drive Plugin

Ackermann Drive Robot


Building your own Ackermann Drive Robot

Create description package

Create robot XACRO

Gazebo spawn

gazebo_ros2_control