The URDF Description Package Generator is a command tool that simplifies the process of creating ROS2/ROS description packages for robots designed using SW2URDF (SolidWorks to URDF). It automatically generates a complete ROS2 package with launch files, configuration files, and organized URDF files, saving you time and effort.
Download from the latest release version .deb
and install
wget https://github.com/MOShka78/Robot_Description_Generator/releases/download/0.1.0/ros-humble-robot-description-generator_0.0.2-0jammy_amd64.deb
sudo dpkg -i ros-humble-robot-description-generator_0.0.2-0jammy_amd64.deb
- The main branch of this repository requires a C++17-compatible compiler.
- Create a package in the directory where the file is located
urdf
ros2 run robot_description_generator robot_description_generator file_urdf.urdf
- Create a package with a path
ros2 run robot_description_generator robot_description_generator file_urdf.urdf /workspace/packages
The program automatically generates a descriprion
package under ros2/ros
using your urdf
obtained from SW2URDF
.
The generated package has the following structure:
.
│your_name_description/
├── config/
│ ├── joint_limits.yaml
│ └── link_mass.yaml
├── launch/
│ ├── your_name_description.launch // for ros
│ └── your_name_description.launch.py // for ros2
├── meshes/
│ ├── visual/
│ │ └── mesh.STL // Same in two folders (just copied from SW2URDF)
│ └── collision/
│ │ └── mesh.STL
├── urdf/
│ ├── inc/
│ │ └── your_name_property.xacro
│ ├── your_name_macro.xacro
│ └── your_name.urdf.xacro
├── CMakeLists.txt
└── package.xml
If an error occurs after generation, check the correctness of the exported
urdf
. You can check it using the following command.
check_urdf file.urdf
It is also worth checking that all
joint
whose type is notfixed
haveaxis
specified.
This package was automatically generated by SW2URDF
.
ros2 run robot_description_generator robot_description_generator example/BU015X/urdf/BU015X.urdf /home/eliseev/workspace/urdf_expansion_ws/src/URDF_Expansion/example
---
[INFO] [1726574309.725712326] [robot_description_generator]: Copied file: "link2.STL"
[INFO] [1726574309.726468370] [robot_description_generator]: Copied file: "link1.STL"
[INFO] [1726574309.726822569] [robot_description_generator]: Copied file: "link5.STL"
[INFO] [1726574309.727257414] [robot_description_generator]: Copied file: "link7.STL"
[INFO] [1726574309.727984222] [robot_description_generator]: Copied file: "base_link.STL"
[INFO] [1726574309.728626507] [robot_description_generator]: Copied file: "link3.STL"
[INFO] [1726574309.728936279] [robot_description_generator]: Copied file: "link4.STL"
[INFO] [1726574309.729082162] [robot_description_generator]: Copied file: "link6.STL"
[INFO] [1726574309.729504520] [robot_description_generator]: Create package: /home/eliseev/workspace/urdf_expansion_ws/src/URDF_Expansion/example/BU015X_description/
After entering the command, the BU015X_description
package is automatically generated, which we transfer to our project.