-
Notifications
You must be signed in to change notification settings - Fork 114
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 (3D
Cursor values displayed in the view 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 can directly create
the links with the tree structure by using Create Link
. The links will be
placed at the origins of the visuals.
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 (Ctrl + Tab) and hit R Y Y to enter local rotating mode along Y, you can turn your joint around its 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 are
also applied to the Bone Constraints of Blender. You should always use Define Joint(s)
instead of defining the constraints via 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 should check that the kinematic chain is represented correctly in the parent child relations of the armatures. So, we should have one armature representing the URDF's root link and the different kinematic chains are represented by its children and children of children. Additionally, all objects (visuals, collisions, etc.) belonging to a link should become children of it. When selecting a link as parent of an object, it is important to use the bone relative parenting. Finally, we have completed the kinematic model of the robot.
Back to Modeling Walkthrough.
Back to top.