ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org |
![]() | 1 | initial version |
Hi @muttidrhummer!
I have created a video that answer exactly this question.
Summarizing, this can be accomplished by loading a URDF file, parsing it and calling the getName() method of the C++ Urdf model.
To see how to load and parse a URDF file, you can follow the Parse a urdf file tutorial.
After you create your parser.cpp
, before the return 0;
you should add
ROS_INFO("The robot name is: %s", model.getName().c_str());
to print the name of the robot on the URDF file, as we can see on the code below:
#include <urdf/model.h>
#include "ros/ros.h"
int main(int argc, char** argv){
ros::init(argc, argv, "my_parser");
if (argc != 2){
ROS_ERROR("Need a urdf file as argument");
return -1;
}
std::string urdf_file = argv[1];
urdf::Model model;
if (!model.initFile(urdf_file)){
ROS_ERROR("Failed to parse urdf file");
return -1;
}
ROS_INFO("Successfully parsed urdf file");
ROS_INFO("The robot name is: %s", model.getName().c_str());
return 0;
}
After compile the code and generate the executable called parser
following the Parse a urdf file tutorial, you can call it with the path of the URDF file as argument.
Something like:
rosrun your_package_name parser /path/to/your/file.urdf
If you still have any doubt, just check the video.