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_joints
has been removed, withnum_moveable_joints
being its replacement. - The constructor argument
tool_joint_name
has been removed and is replaced withtool_link_name
to 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
int
representing a body UID, a tuple(body_uid, link_uid)
, or a tuple(body_uid, link_name)
. This also means the verboseNamedCollisionObject
dataclass is no longer with us. - The
CollisionDetector
no longer takes a dictionary mapping body names to indices anymore; this was cumbersome. - The
CollisionDetector
no 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
Robot
class now has the convenience methodsget_link_index
andget_joint_index
for convenient look-up by name. - The
Robot
class now has the propertylink_names
, a list of all its link names. - Added the
as_rotation_matrix
parameter toBulletBody.get_pose
. - Some additional tests and typo fixes.