# How do I build something to see URDF model with RVIZ?

I am working up a URDF file and hoping to put together a new robot model along with a tutorial describing the ROS development process. I am using ROS-Groovy.

Right now I have a URDF that compiles and a state_publisher that fails to link. The message reads: "… undefined reference to 'tf::TransformBroadcaster::sendTransform(geometry_msgs::TransformStamped_<std::allocator<void> > const&)' "

I expect that I will also need a launch file, but have no clue what it will need to contain.

First question is how do I fix this build error?

Next question is do I have the correct directory layout? Current file organization is:

• …_ws/src/rbot_description/urdf/rbot.urdf
• …_ws/src/rbot_description/src/state_publisher.cpp

The state publisher is just a simulation stub at the moment, so knowing how to have a simulator sometimes and real control other times would be nice to know.

Finally I need to know where to put the launch file and what to put into it to get RVIZ running?

Again my assumption is that I really only need the 3 files: URDF, state_publisher and launch; is this correct?

edit retag close merge delete

Sort by » oldest newest most voted

The easiest way would be to use the urdf_tutorial launch file:

roslaunch urdf_tutorial display.launch model:=/path/to/robot.urdf

...launch rviz while loading the robot specified by the model argument. You can open the file to see what is necessary and yes you need one file (the robot URDF model), the robot_state_publisher node, the joint_state_publisher node and rviz for the visualization.

This linking error should never happen for state_publisher. You should detail your build process in another question to solve this matter.

more

Thank you Thomas for the response. I will do as you say regarding the state publisher build problem. However, there is a problem with the launch relative to the tutorial. The error message references the .../urdf_tutorial/urdf.vcg file being the wrong format because Groovy requires a .rviz file format and Groovy does not yet have an "automated conversion program". I can only guess what that file is good for and have no clue how to build a replacement. I am also wondering your statement about needing a robot_state_publisher and a joint_state_publisher. I am assuming that I need a node that publishes both pieces and it is okay to do both from within my state_publisher.cpp file?

( 2013-11-29 04:33:21 -0500 )edit