-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce Planner Coordinate Frame #418
Comments
However, in many existing SRDFs we packaged in the ROS Docker file (which is managed here: https://github.com/gramaziokohler/ros_docker) the planning group have variations that either plan towards the flange or the tool0 link. According to (REP 199 Coordinate Frames for Serial Industrial Manipulators) the two frames have different meaning and in some cases are not identical (e.g. the case of UR robots). This variation causes an rather confusing behavior when trying to understand how tools are oriented when attached to the robot and how targets are defined. Famously this causes the problem where users experience tools that are flipped when attached or planning to targets that are upside down. The source of this confusion lies in the fact that different robot manufacturer have different convention when defining their base frames and flange frames. For example, in general:
REP199 proposed a robot link definition scheme to improve the consistency from a robot programmer's perspective. It uses two virtual frames (base_link and flange) to maintain consistent behavior while two physical frames (base and tool0) are matched with the brand-dependent robot controller. A typical robot link relationship under such scheme appear as follows:
|
At the moment, custom user specified tools are managed by compas_fab. The rationale is that users can easily define and change tools without editing the URDF / SRDF and the docker files. The current behavior is that compas_fab will attach the tool to the last link of the planning group. In many of the SRDF we have seen, the main planning group is defined to from base_link to tool_0 (the brand-dependent definition of the end-effector frame).
This explains why a tool that is modeled for one specific robot maybe flipped when attaching to another robot vendor. Which also makes the preparation of generic toolmodels for demonstration purpose impossible. In an ideal case, another planning group with Solutions we have considered to address this problem include:
|
While I personally prefer the last solution, @gonzalocasas prefers the second option. Anyhow, all of these require substantial development effort that we cannot afford at the moment. Therefore, we decided not to address this problem now and opt for defining a Planner Coordinate Frame (PCF). The definition of this frame is determined by the SRDF, hence determined by which robot the user loads and which planning group the user select to use. The PCF is formally defined to be identical to the frame of the This frame will be used as the base frame for which tools are attached and planning targets are defined. This is also the frame that forward and inverse kinematics use. |
Now the associated PR is mostly a change of terminology in all the relevant places as there are no code change. A new section will be added to docs dedicated to explaining this complication. For example FrameTarget will explicitly mention:
|
While explaining the new coordinate frame in the documentation, it will be good to explain also the difference between base and base link. |
Feature Request
To introduce a Planner Coordinate Frame. This reduced ambiguity when defining planning targets, specifying planning group, and how tools are attached to robots.
Details
After multiple sessions of brainstorm with @gonzalocasas, we realized there is an ambiguity in compas_fab regarding the behavior of how planning groups are handled. Planning groups, as an essential concept for robot motion planning, defines which joints can be moved by emotion planner.
Typically the planning groups are defined and extracted as a read-only attribute from an SRDF file. At the moment, compas_fab do not provide support for users to edit SRDF or the definition of planning groups. The rationale of this is because in the current workflow of using the ROS Planning backend, the SRDF is already embedded in the Docker image file. Many of the embedded SRDF are provided by open repos (such as by ROS-Industrial) are not maintained by us.
more coming...
The text was updated successfully, but these errors were encountered: