Package: rigid-body-motion
rigid-body-motionPython utilities for estimating and transforming rigid body motion.Documentation:https://rigid-body-motion.readthedocs.ioOverviewThis package provides a high-level interface for transforming arrays
describing motion of rigid bodies between different coordinate systems and
reference frames. The core of the reference frame handling is a fast
re-implementation of ROS’stf2library usingnumpyandnumpy-quaternion. The package also provides first-class support forxarraydata types.Installationrigid-body-motion can be installed viapip:$pipinstallrigid-body-motionor viaconda:$condainstall-cphausamann-cconda-forgerigid-body-motionHighlightsrigid-body-motion makes it possible to:Construct trees of static and moving reference framesLookup transforms and velocities across the treeSeamlessly transform positions, orientations and velocities across the treeEstimate transforms from motion dataTransform data into different coordinate representationsImport data from common motion tracking systemsVisualize reference frames and motion data with matplotlib or RViz… and more!CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.9.1 (January 13th, 2022)Bug fixes & improvementsFixed package installation through pip (version 0.9.0 is no longer available).0.9.0 (December 29th, 2021)Breaking changesDropped support for Python 3.6.Bug fixes & improvementsFixed issue with matplotlib versions >= 3.5.0.8.0 (May 27th, 2021)New featuresNewros.init_nodemethod to initialize a ROS node and optionally start
a ROS master.Bug fixes & improvementsAll ROS dependencies are now lazily imported.0.7.0 (May 19th, 2021)New featuresNewfrom_euler_anglesutility method.Bug fixes & improvementsImporting ROS interface classes will not fail silently anymore and instead
show the traceback of the import error.0.6.0 (May 17th, 2021)Breaking changesExample data is now fetched via thepoochlibrary and no longer a part
of the package itself.New featuresNewiomodule for import/export methods.Newros.RosbagWriterclass for writing rosbag files.0.5.0 (March 16th, 2021)Breaking changesTop-level reference frame transform and lookup methods now all accept areturn_timestampsargument that isFalseby default. Previously,
methods would return timestamps only if the result of the transformation was
timestamped. This does not affect the xarray interface.lookup_transformnow returns the correct transformation from the base
frame to the target frame (instead of the other way around).ReferenceFrame.get_transformationis deprecated and replaced byReferenceFrame.lookup_transform.New featuresNewplotmodule with plotting methods for static reference frames and
arrays of points, quaternions and vectors.Newlookup_posemethod that calculates the pose of a frame wrt another.Bug fixes & improvementsFixed"reference_frame"attribute incorrectly set bytransform_vectors.0.4.1 (February 18th, 2021)Bug fixes & improvementsFixedtransform_coordinatesfailing when spatial dimension is first
axis of array.Fixedtransform_linear_velocityandtransform_angular_velocityfailing when reference frame or moving frame is transformed across only
static transforms.Addedallow_staticparameter tolookup_twist,lookup_angular_velocityandlookup_linear_velocityto return zero
velocity and no timestamps across only static transforms.0.4.0 (February 11th, 2021)New featuresNewlookup_linear_velocityandlookup_angular_velocitytop-level
methods.Newrender_treetop-level method for printing out a graphical
representation of a reference frame tree.lookup_twistnow accepts amodeparameter to specify the mode for
angular velocity calculation.Bug fixes & improvementsFixed a bug where estimated angular velocity was all NaN when orientation
contained NaNs.0.3.0 (December 8th, 2020)New featuresReference frames with timestamps now accept thediscreteparameter,
allowing for transformations to be fixed from their timestamp into the
future.rbmaccessor for DataArrays implementingqinterpandqinvmethods.Newbest_fit_rotationandqinterptop-level methods.Bug fixes & improvementsRefactor of internal timestamp matching mechanism defining a clear priority
for target timestamps. This can result in slight changes of timestamps
and arrays returned by transformations but will generally produce more
accurate results.Addedmodeandoutlier_thresharguments toestimate_angular_velocity.Fixed issues withiterative_closest_point.0.2.0 (October 22nd, 2020)New featuresNewestimate_linear_velocityandestimate_angular_velocitytop-level
methods.Newqmultop-level method for multiplying quaternions.0.1.2 (October 7th, 2020)ImprovementsUse SQUAD instead of linear interpolation for quaternions.0.1.1 (September 17th, 2020)Bug fixesFix transformations failing for DataArrays with non-numeric coords.0.1.0 (September 17th, 2020)First release