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.