The AgileX LIMO robot's mobile chassis can be navigated through a program, currently available only in its C++ version. The driver files for LIMO's chassis are organized within the limo_base package, located at ~/agilex_ws/src/limo_ros2/limo_base. These files include source code, launch configurations, and scripts necessary for controlling the robot's motion. Additionally, custom message types used by the driver are defined in the limo_msgs package, situated at ~/agilex_ws/src/limo_ros2/limo_msgs, facilitating communication between nodes. Through these files, users can access functionalities like publishing status information, executing services, and defining action types, enabling comprehensive control and navigation of the LIMO robot within the ROS 2 framework.

Table of Contents

The mobile chassis needs to be driven by a program to achieve the navigation of Limo. The chassis driver of Limo only has the C++ version at the moment.

Driver file structure

The folder where the chassis driver is located is ~/agilex_ws/src/limo_ros2/limo_base. Enter this folder through the following command.

cd ~/agilex_ws/src/limo_ros2/limo_base

The following is the file list of the limo_base package:

├── CMakeLists.txt
├── include
│	└── limo_base
├── launch
│	├── limo_base.launch.py
│	├── open_ydlidar_launch.py
│	└── start_limo.launch.py
├── package.xml
├── scripts
│	└── tf_pub.py
└── src
├── limo_base_node.cpp
├── limo_driver.cpp
├── serial_port.cpp
└── tf_pub.cpp

The message file used by the chassis driver is located in the folder ~/agilex_ws/src/limo_ros2/limo_msgs. Enter this folder through the following command.

cd ~/agilex_ws/src/limo_ros2/limo_msgs

The following is the file list of the limo_msgs function package.

├── action
│	└── LimoAction.action
├── CMakeLists.txt
├── msg
│	└── LimoStatus.msg
├── package.xml
└── srv
└── LimoSrv.srv

There are include, launch, src, scripts, action, srv, and msg folders under the two function packages. The library files called by the driver are stored in the include folder; the driver startup files are stored in the launch folder; the Python code is stored in the scripts folder; the action message files are stored in the action folder; and the srv folder stored the server message files; the msg message file is stored in the msg folder; the driver C++ source code is stored in the src folder.

Folder Stored files
include Library files called by the driver
launch Startup files of the driver
msg Message files needed by the driver
src Driver source code
scripts Python code
action action message files
srv server message files

1. Msg files

In ROS 2, Msg files (Message files) are used to define custom message types in ROS 2. The Msg file describes the structure and fields of the message, and multiple fields and data types can be

defined as needed.

The following is the customized Msg file in Limo called LimoStatus.msg:

std_msgs/Header header

uint8 vehicle_state 
uint8 control_mode 
float64 battery_voltage 
uint16 error_code
uint8 motion_mode

The message file about Limo status is customized here. The meaning of each field is as follows:

  1. std_msgs/Header header: This is a standard message type std_msgs/Header, which contains timestamp and message source information.