Releases: adamheins/pyb_utils
v2.4.1
v2.4.0
v2.4.0
This release adds a simple command line tool for easily viewing URDF files with PyBullet, called pybview, which also prints out information about the links and joints of the robot.
This tool is expected to be useful for rapid development and debugging of URDF files.
v2.3.1
v2.3.1
This minor release simplifies the dependency versions required for pyb_utils (notably for numpy and scipy, but now also any Python >= 3.8 is supported).
The main other (non-user facing) change is that uv is now used to manage, build, and publish the project.
v2.3.0
v2.2.1
v2.2.0
Additions
- Add a dedicated
GhostObject.boxconstructor (thanks to @ags-dy). - Add
client_idargument to GhostObject. - Add
FrameRecorderclass, which is an alternative way to record videos of the simulation as a sequence of frames (images). - Add principal rotation matrix functions
rotx,roty,rotz, as well asrot2dfor 2D rotation matrices. This was added because scipy is now used internally for rotations, and it does not provide these functions directly.
Changes
- Internal: use
scipyfor rotation math instead ofspatialmath.
v2.1.0
This release adds contact wrench and more quaternion utility functions.
Contact wrench utilities
- The functions
get_point_contact_wrench,get_points_contact_wrench, andget_total_contact_wrenchhave been added for computing the contact wrench exerted on one object through contact with another.
Quaternion utilities
- The functions
quatx,quaty, andquatzhave been added to construct quaternions representing rotations about the major axes. - Under the hood, the quaternion functions have all been rewritten to use
spatialmath.UnitQuaternion.
Future
- The field
localInerialPosof theDynamicsInfonamed tuple is misspelled; this will be fixed in a future major release.
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.
v1.3.1
v1.3.0
This release primarily focuses on improving the Robot class:
- Only parse the non-fixed joints of the robot by default.
- Allow manually specifying which joints are actuated.
- Add the
set_joint_friction_forcemethod to enable free-moving joints. - Add the
command_effortmethod for torque joint. - Add the
as_rotation_matrixargument to theget_link_posemethods to automatically convert the quaternion to a rotation matrix before returning it.
Two new examples have also been added: an under-actuated 2-link planar pendulum and a task-space robot arm control demo.
Finally, the function get_urdf_path has also been added to obtain URDFs packaged with pyb_utils (currently only the two-link pendulum mentioned above).