-
Notifications
You must be signed in to change notification settings - Fork 116
Kinematic Skeleton
Links and joints are handled as Blender armatures and bones in Phobos, as
explained here. It
is possible to position the 3D cursor at a specific location (LMB or 3D
Cursor values displayed in the transform panel to the right of the 3D view),
create a Blender armature and set the phobostype to link. It's however
easier to use Phobos' Create Link(s)
operator for that.
Adding a link at the 3D cursor position
The operator can either place a link at the 3D cursor or place multiple links
at the origins of selected visual objects (choose selected objects
as
Location in the operator menu). This will place links in the position and
with the orientation of the selected visuals:
Adding a link with selected objects enables other options to choose from.
The problem here is that not all links are placed sensibly. As they not only
represent the reference frames for links, but also the positions of joints
between the links (see
here), it is not
always helpful to directly parent the objects to the newly created links using
the parent object(s)
.
If we have arranged our visual objects in a tree already, we could additionally
choose parenting
to also parent the newly created bones to one another.
The same problem as above applies: If the visual objects are not arranged properly, this will result in wrongly placed joints, as can be seen in the example picture, where the leg joints reside in the middle of the limb segments.
Thus this parenting method is best used only if the origins of visuals are located in "link space".
It is possible to configure the name segments and prefix to be used for naming the newly created links. Finish the operator by hitting A. As you will notice, all our newly-created bones are already set to phobostype link.
Joints are defined implicitly via the orientation of the links: most joints rotate around (or slide along) the long axis of the associated bone. If you select a bone, switch to Pose Mode and hit R twice to enter local rotating mode around Y, you can turn your joint around its axis:
Note that the long axis of pose bones is always their local Y axis. Using the
Define Joint(s)
operator, it is possible to specify the constraints defined
in URDF, which are then assigned to the joint. These constraint settings can
also be edited manually in the Bone Constraints tab of Blender.
This will restrict the way the pose bone can be rotated in Blender to the same degree as on the actual robot.
Finally, after all armatures are placed correctly and all edit bones are oriented to match the joint axes, we have completed the kinematic model of the robot.
Back to Modeling Walkthrough.
Back to top.