Energid is pleased to present Actin 5.3.
Added End-Effector Control and Velocity Calculation Requests
An end-effector can now be configured to move relative to the system frame or relative to another link. Previously only calculating end-effector velocity in the system frame was supported.
- The API has been added to EcBaseControlSystemModifier.
- Supports move pose relative (move_pose_relative).
- Similarly, we now support retrieving the current end-effector pose (get_ee_pose).
- Added control transfer for retrieving actual end-effector pose, velocity in system, and velocity in relation.
QML UI Additions
- QML based render component for EcXmlRealVectorVector. This supports debugging and rendering output of EcOsgDepthCameraQtQml as a 2D texture or 3D terrain.
- Added new commonly used properties to osg::CameraQtQml and osg::TransformQtQml.
Added the following new QML types:
- Type RenderingStats is used to capture and display QML rendering statistics.
- Type DepthCamera is a RenderToTexture Camera for capturing depth map in an OSG scene.
- Type XmlRealVectorVectorViewer to render QML type XmlRealVectorVector (a type returned by DepthCamera) as a grayscale image.
- Type EcRenderPathQtQml to render paths.
- Data Store interfaces for XML Objects have been updated to improve support for writing to the data store. We have added the EcXmlObjectQWrapperBase::objectPtrChanged() signal as well as methods that allow comparisons of values before overwriting them.
- Changed type of the size property in QML type RenderAxesOrientationHUD from Qt.vector2d to Qt.size.
Collision Detection Enhancements
- We have developed a new GUI interface for collision detection.
- We have introduced a new EcScript 'check-collision' command. This command returns a boolean value, and follows the syntax:
check_collision [<manip_id:u32>] <tolerance:real> <results:u32_vec>
This script checks collision of the world, or check collision of a specific manipulator with the world, if the <manip_id> is provided. If a collision (which is not excluded) is detected, this script will return TRUE, and a pair of links that are detected in collision will be stored in the <results>. In such cases, the <results> will be in format: (manip_index1 link_index1 manip_index2 link_index2). If no collision is detected, the script will return FALSE, and the results will be empty.
- Broadphase will only perform collision detection on bounding boxes that are within set limits. Previously, Actin performed collision detection over the entire system. Although collision exclusions could be defined to prevent specific shapes from interacting, the bounding boxes for these shapes would still be processed by the broadphase collision detection. Broadphase bounds allow the user to set up a region of interest that collision detection will occur. Any bounding boxes that are outside of this region will not be processed by broadphase, decreasing the overall computational burden of collision detection.
Manipulation Director Enhancements
The Manipulation Director UI now provides a detailed "script view" which displays the script while playing it. Previously, when a script failed the user was not provided feedback concerning where the error occurred. Users can now leverage this debugging facility to quickly diagnose and solve Manipulation Director script failures.
Updates to Third Party Libraries
- The following bug fixes and improvements were added to our third party libraries.
QtPropertyEditor now fully supports debug builds.
- Actin now has library support for the Prometheus metrics monitoring framework and we have included an example application to ease adoption.
- Tomcrypt and tommath bundles have been extended to all desktop platforms as well as the embedded platforms RTOS32 and RTX64.
Removal of the Camera Offset Calibration Plugin
With no active users and expanding maintenance costs we decided to remove the camera offset calibration plugin from the SDK.
Over the course of this release we have resolved a large number of issues. We are including an overview of the highest profile issues that have been fixed for Actin 5.3.
- If find_solution fails to converge on a solution set within a Manipulation Director script, the solution_symbol will be cleared rather than resulting in a script failure.
- If one chose to show the End Effector Dragger dialog to position the dragger numerically, the inputs were formerly disabled (for the distance and degrees on the thee axes). These inputs are now correctly enabled.
- If one used the "Simulation -> Reset State to Home" after a manipulator was added or deleted, no response occurred and no warning was given. The corrected behavior now ensures that the home state is reset when a manipulator is added or deleted.
- The EndEffectorPathPlanning direction was only working with poses and would crash in other instances. This limitation has been removed.