Skip to content

v2.0

Compare
Choose a tag to compare
@adamheins adamheins released this 20 Oct 20:54
· 36 commits to main since this release

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, and num_actuated_joints, as well as all_joint_names, moveable_joint_names, and actuated_joint_names. The previous attribute num_joints has been removed, with num_moveable_joints being its replacement.
  • The constructor argument tool_joint_name has been removed and is replaced with tool_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 verbose NamedCollisionObject 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 methods get_link_index and get_joint_index for convenient look-up by name.
  • The Robot class now has the property link_names, a list of all its link names.
  • Added the as_rotation_matrix parameter to BulletBody.get_pose.
  • Some additional tests and typo fixes.