Submitted by: Abhijit Makhal, Idaho State University
For the Google Summer of Code Project (GSoC) 2016, with coordination with Open Source Robotics Foundation (OSRF) and ROS-I Consortium, a toolkit Reuleaux, has been developed for the purpose of workspace analysis and base placement for a specified task. The workspace analysis is highly beneficial for any robotic system as it provides information about the reachability of the manipulator. The base placement system uses the workspace analysis tool and provides optimal base position for a specified task providing predefined end-effector positions.
The first project goal was to develop a tool that can define reachability of any manipulator with existing robot definition such as URDF (Unified Robot Description Format). With an URDF of the robot and resolution based on user needs, the tool can provide multiple maps representing the information about the workspace such as a reachability map, capability map and inverse reachability map. Several new ROS messages have been generated for workspace analysis which represents the coordinates of the workspace spheres, poses in the spheres and reachability of that spheres.
The reachability map describes the reachability of a given robot model by discretizing its environment, creating poses in the environment and calculating valid IK solutions for the poses. The poses which are reachable by robot are associated with discretized spheres. The reachability of each sphere in the environment are parameterized by a reachability index. The output is saved as an hdf5 file.
Reachability map colored by reachability index (left), and solid colors (right).
Reachable positions for a robot (left), and 6 DOF poses superimposed on reachable positions (right).
The capability map is an extension of reachability where the outer spheres of the reachability map, is set as cones. So the reachability limit of the robot is well visualized. All the outer spheres are decided for a principal axes and iterates over different values for opening angles for cones.
Inverse Reachability Map
The purpose of the inverse reachability map is to find suitable base positions for a robot with given task poses. The inverse reachability map is a general inverse transformation of all the reachable poses of the reachability map of the robot. The inverse Reachability map is dependent on generated reachability map.
With a visualization toolbox for Reuleaux, the workspace can be visualized in RViz. The visualization tool also provides scope of representing the workspace with different structures (spheres, cones, cylinder and box), colors (based on reachability or solid colors) and reachability index (spheres with high/low reachability)
Spheres with low Reachability (left), and high reachability (right)
Dense cross-section of the workspace (left), and sparse Cross-Section (right)
The second goal of the project was to develop a user interface by which the user can provide task poses needed for a specified task and the system will try to find optimal base position/ positions for that task from where the robot can reach all the positions. The system tries to create a combined inverse reachability map of all the task poses and finds optimal base location by one of the following methods.
- Principal Component Analysis (PCA)
- Grasp reachability score
- Ik solution score
Magenta arrows represent the task positions and green arrows are possible base placement positions (left, center). Combined inverse reachability map for three task poses (right).
At this time, the Reuleaux toolkit is far away from completion. There are various scopes of improvement for the tool in terms of visualization, algorithm and computation. I would like to encourage the Robotics Community to contribute to this project by providing suggestions and improvements. Detailed information and instructions for running the tool can be found at: http://wiki.ros.org/reuleaux
Please let me know if there is any issue in running the codes or if you have any suggestions: email@example.com
I would like to share my gratitude for the ROS-I community members and my mentor Alex K. Goins and Shaun Edwards, who shared their valuable suggestions during the project development and guided me in the right direction. I hope that this project can be very useful for robotics community.
Some useful links for Reuleaux: