OpenRAVE Changelog

What's new in OpenRAVE 0.9.0

Oct 28, 2016
  • Core:
  • Added KinBody.LinkInfo and KinBody.JointInfo classes in order to programatically build robots by calling KinBody.Init().
  • Fixed bugs in RobotBase-CalculateActiveJacobian (thanks to John Schulman)
  • SetUserData now supports a key to allow different modules to store their own uninterrupted user data. KinBody.SetCollisionData, KinBody.SetPhysicsData, KinBody.SetViewerData are deprecated. It can also be called through const pointers.
  • Added KinBody.Link.ComputeLocalAABB() to get local AABB of the link.
  • Added RaveGetAffineDOFValuesFromVelocity() and RaveGetVelocityFromAffineDOFVelocity() for velocity conversion of affine values.
  • Added ConfigurationSpecification.GetSetFn() and ConfigurationSpecification.GetGetFn() for general setting/getting functions of a configuration.
  • KinBody.SetDOFVelocities() now accepts indices
  • Fixed stale group names in KinBody _spec, Robot _activespec, and IdealController groups; ConfigurationSpecification.FindCompatibleGroup() now more strict.
  • Many methods in InterfaceBase have not become multi-thread safe.
  • Added SpaceSample.SampleSequenceOneReal() and SpaceSample.SampleSequenceOneUINT32() for easier retrieval of samples.
  • Added getting and settings custom parameters to links and joints via KinBody.Link.GetFloatParameters(), KinBody.Link.SetFloatParameters(), KinBody.Joint.GetFloatParameters(), KinBody.Joint.SetFloatParameters().
  • Added .KinBody.Link.GetInfo, .KinBody.Joint.GetInfo, and .KinBody.Geometry.GetInfo for getting all properties.
  • Added .Robot.Manipulator.CheckEndEffectorSelfCollision and .Robot.CheckLinkSelfCollision for self-collision checking.
  • C Bindings:
  • Added pure C bindings in the includeopenrave_c folder with libopenrave_c and libopenrave-core_c libraries.
  • Inverse Kinematics:
  • IkFast can detect aligned axes and give infinite solutions.
  • Fixed bug in ikfastsolver.cpp that prioritizes solutions based on configuration distance.
  • database.inversekinematics does a better job of automatically choosing a free joint for redundant kinematics.
  • Fixed major bug in IkFilterOptions.IgnoreEndEffectorCollisions implementation.
  • Added IkFilterOptions.IgnoreEndEffectorSelfCollisions for ignoring self-collision with end effector.
  • Planning:
  • Added planningparameters.ConstraintTrajectoryTimingParameters
  • Path retiming now treats PlannerParameters-_fStepLength as the robot controller control time
  • Added options parameter to Planner.PlannerParameters.serialize()
  • Speed up of smoothing algorithms by early rejecting bad candidates.
  • Added much faster linear smoother linear smoothing which can also do per-DOF smoothing.
  • planningutils smoothing and retiming functions like planningutils.SmoothActiveDOFTrajectory() now return planning failure rather than to throw exceptions.
  • Removed fallback on linear smoother in PlannerBase._ProcessPostPlanners()
  • Added several helper classes that cache parameters values so they are faster to bulk execute - planningutils.AffineTrajectoryRetimer, planningutils.ActiveDOFTrajectoryRetimer, planningutils.ActiveDOFTrajectorySmoother
  • Python:
  • Added __hash__ to most classes like KinBody.Link, Robot.Manipulator, etc so they can be used in dictionaries.
  • Register RaveDestroy() function call on sys exit (John Schulman).
  • Misc:
  • Fixed planningutils.JitterTransform() and added openravepy wrapper
  • Fixed opening DirectX files as environment files
  • Fixed destruction order bug in qt/coin viewer.
  • Add OPT_IKFAST_FLOAT32 cmake option to control whether 32bit float ikfast shared objects can be loaded.
  • Switched collada writing to write all geometries regardless if they are similar (default was to reuse data)
  • qtcoin video size recording can be changed with the Resize command. (Robert Ellenberg)
  • Simulation thread timing tweaked and more accurate to real time. (Robert Ellenberg)
  • collada-dom DAE is now globally managed so that it doesn’t release its resources everytime a collada object is loaded. This also solves many random crashes.
  • Can open binary DirectX files
  • Added many helpers in xmlreaders.h to parse and write XML.