I have been trying to figure out why shapes in ROS are called links, ie <link> tags in urdf and gazebo? Why not objects or shapes as names? Why are these objects linked to?


Shapes are called links because they're not joints. Keep in mind that these are for robotics and robotic simulations, so the primary concern is going to be expressing the robot's physical structure in such a way that it can be readily used/evaluated by conventional kinematic and dynamic techniques.

Notably, Gazebo and the URDF formats are not drafting tools and are not intended for "decorating" robots. There are joints, and then there are the physical structures that connect the joints ("links"). From a simulation perspective, the link needs to define the physical distance between joints and should have a mass, a center of mass, and a moment of inertia tensor.

These tools don't care about a front grille on a car, or body panels/trim on a robotic arm, flags, pennants, attached payloads, etc., beyond their effects on the previously mentioned terms - mass, CoM, and moments of inertia.

The term you're referring to - shape - can be part of a link, but again the shape of the link is irrelevant - it's the physical parameters that matter. You can refer to elements of links from the URDF format and note that "visual" attributes are entirely optional. However, if you choose to implement a visual attribute for a link, notice that geometry is mandatory.

The geometry sub-attribute is what you're referring to as "shape" in the question. But again, to re-iterate the points above, Gazebo and URDF formats are intended for use with robotic simulations, so they prioritize the information that is most important kinematic and dynamic simulation. Visual appearance is irrelevant.

| improve this answer | |
  • $\begingroup$ what do you mean by kinematic and dynamic simulation? The way I understand the two terms: dynamics and kinematics, is from studiouslyyours.com/kinetics-and-kinematics, which says that kinematics is a branch of dynamics. Do you mean kinematic and kinetic simulation? $\endgroup$ – heretoinfinity Apr 15 at 23:55
  • 1
    $\begingroup$ @heretoinfinity - Kinematics is concerned with the physical arrangement of a system. If you were going to have a robotic arm pick up a can, could the arm reach the can? What angle would the joints have to make to position the arm correctly? Etc. Dynamics is concerned with the physical motion of the system. How much torque do you have to apply to each joint to move the arm into position, how much torque do you need to add to offset gravity, the weight of the can, etc. Kinematics (typically, inverse kinematics) are used for path planning and dynamics are used for model-based control. $\endgroup$ – Chuck Apr 16 at 13:00
  • $\begingroup$ And what do you mean by model-based control? I can only tell that it's designed based on knowledge of the system/model. Is it in any way connected to acceleration, force or is the link incorrect? $\endgroup$ – heretoinfinity Apr 16 at 23:49
  • 1
    $\begingroup$ You can use feed-forward and PID control together; the feed-forward term could account for varying slope, and maybe there are some fancy vehicle weight sensors in the wheels, but wind loading is still significant, so the vehicle model isn't perfect. In this case, a model-based controller would provide the "coarse" adjustment on throttle position, such that speed would be correct during dry, windless days, and then a PID controller could also be used for the "fine" adjustment, to make up for errors introduced by harder-to-measure forces like wind load, tire pressure, surface conditions, etc. $\endgroup$ – Chuck Apr 17 at 12:44
  • 1
    $\begingroup$ Model-based control is anything that you do to control a system that exploits your knowledge of the system. It lets you be proactive instead of reactive, and allows you a means to control systems that are hard or impossible to control with PID controllers, like harmonic systems. So, to your question, Is it in any way connected to acceleration, force, yes, you can use model-based control to determine, for example, how much torque is required to hold a joint steady given arm center of mass and payload and then, given a motor model, how much current is required to achieve that torque. $\endgroup$ – Chuck Apr 17 at 12:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.