Repository navigation
v2.0
A new major release! (which means breaking changes!)
Breaking Changes
Robot
- The robot class now distinguishes between three sets of joints: all joints (including all fixed joints), moveable joints (excludes fixed joints), and actuated joints (the ones that the user actually wants to control). There are corresponding properties
num_total_joints,num_moveable_joints, andnum_actuated_joints, as well asall_joint_names,moveable_joint_names, andactuated_joint_names. The previous attributenum_jointshas been removed, withnum_moveable_jointsbeing its replacement. - The constructor argument
tool_joint_namehas been removed and is replaced withtool_link_nameto be more intuitive: the end effector/tool is a link.
Collision Detector
The collision detector API has been revised to be simpler and less verbose, which also means that every method of the CollisionDetector class now has a slightly different signature.
- Collision pairs are now specified as plain tuples, each a pair of collision objects. A collision object is either a single
intrepresenting a body UID, a tuple(body_uid, link_uid), or a tuple(body_uid, link_name). This also means the verboseNamedCollisionObjectdataclass is no longer with us. - The
CollisionDetectorno longer takes a dictionary mapping body names to indices anymore; this was cumbersome. - The
CollisionDetectorno longer knows anything about commanding robots. This should be handled by the user outside of the detector (see the updated example script).
Other Changes
- The
Robotclass now has the convenience methodsget_link_indexandget_joint_indexfor convenient look-up by name. - The
Robotclass now has the propertylink_names, a list of all its link names. - Added the
as_rotation_matrixparameter toBulletBody.get_pose. - Some additional tests and typo fixes.