Home

Awesome

mobile_robot_description

ROS Package with a modular structure to create mobile robots with differential drive configuration. The purpose of this package is to provide xacro modules to make it easier to build the URDF description file of your differential robot. To active this purpose, this package has some modules that are inside the file common_macro.urdf.xacro that can be parametrized using YAML files, making it easier, fast, and more flexible to create your robot model. There is, also, common_sensors.xacro file with some commonly used sensors in mobile robots.

base_config
wheel_config

Package Organization

This project has the following folder structure.

Installation

To install this package, just clone it inside your ROS workspace, running:

$ git clone https://github.com/ros-mobile-robots/mobile_robot_description.git

This command will clone the master branch which is compatible with "ROS 1". If you intend to use ROS 2 (Foxy), use this command:

$ git clone -b ros2-foxy https://github.com/ros-mobile-robots/mobile_robot_description.git

Check the ros2-foxy branch documentation to know some differences.

Usage

The basic modules of this package are inside the file common_macro.urdf.xacro that is at urdf/include folder as described above. This file work as a library and you can add it to your robot description like this:

<xacro:include filename="$(find ${package_name})/urdf/include/common_macros.urdf.xacro" />

⚠️ Note that in the command above, the package_name is set as a variable so to use this command you must have been set the package_name variable with the name of your project.

⚠️ IMPORTANT! Before using the modules of the common_macro files, you MUST set a xacro property package_name with the name of your project and the xacro property robot_name with the name that you choose for your robot. This name should be the same as the folder where you organize the config and mesh files. It can be seen in the mobile_robot, quimera_robot and diffbot. In case of change the name of the package, as it is a template repository, the value of this variable MUST be updated with the name that you choose. Setting this property globally on the robot file makes the path for the config and mesh files correct, because it is made relatively.

In the common_macro.urdf.xacro, there is the xacro modules:

For more detailed information about the xacro modules or about the usage, see the Wiki

Contributing

If you have any comments, doubts, or suggestions, I'll be more than happy to know them, so, feel free to open an issue or a Pull Request with your collaboration.