ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

While we can give you guidance, this question is really something for you to answer yourself. This strongly depends on what kind of robot you have and what you're trying to make it do. 'serious commercial project' isn't very helpful here. There are plenty of commercial robots that have varying levels of accuracy on the URDF depending on their type and purpose.

A URDF is typically used for visualization, collision detection and avoidance, and ROS control. For visualization, it doesn't have to be all that accurate in most cases. For collision detection, it strongly depends on your application. Can you afford to have the pose be off by a few centimeter? Typically companies will just start off with the poses through the CAD model (e.g. solidworks converter) and then possibly improve it through calibration, which may be manual adjustment. Similar with the level of detail. Do you need all nuts and bolts and holes modeled in your URDF? Probably not, as it makes it slower to do collision detection and to visualize. URDF also allows you to specify collision shapes/meshes which are typically conservative and convex shapes larger than the actual links so that any errors are offset. For ROS control, it helps to think about the extreme case: if my URDF is off by some large value, then how does that affect control? If it's joint control, it doesn't matter, but if you're trying to control the end-effector or a mobile base and it's off by a lot, it'll make odometry less accurate.