roboticslibrary / rl-examples

Kinematics, dynamics, geometry, and path planning definitions for the Robotics Library (RL).
https://www.roboticslibrary.org/
40 stars 14 forks source link

Example of dual-arm kinematics / planning #3

Closed BeardedVagabond closed 4 years ago

BeardedVagabond commented 4 years ago

Just want to start by saying this library is looking really great!

Would it be possible to have a demo of dual-arm path planning? I noticed there is a comau-rml-dual-arm.wrl, however there are no accompanying rlsg, rlkin, or rlmdl descriptions. I would love to try out some dual-arm applications within rl, but I am finding it difficult to do so as I'm still just starting out working with the library.

Under the assumption that only one arm will be used at a time, is it possible to treat the two arms with separate rlkin descriptions and planners?

rickertm commented 4 years ago

The geometry model for the Comau RML dual arm reuses the geometries of the SMART-5 SiX 10-1.57 manipulators (rlsg/comau-smart5-six-10-157/comau-smart5-six-10-157.wrl). The corresponding XML scene description and kinematic models for the combined dual arm system are missing however, I'll try to add those as soon as possible.

You can use the individual rl::mdl kinematic models for the manipulators (rlmdl/comau-smart5-six-10-157.xml) with a matching world frame to update the geometries in the scene. A path planner currently requires a combined kinematic and geometric model.

The Meka Robotics system is another dual arm example, either only the torso and arms or also including the hands:

BeardedVagabond commented 4 years ago

Thank you for your reply, I'll look forward to the kinematics descriptions.

I looked at the mekabot wrl files, however, they appear to be incomplete as all the models are loaded at the origin with no translation or rotation (see attached). I've checked all variants of the mekabot and they all have the same issue. Annotation 2020-04-30 103006

rickertm commented 4 years ago

The Meka Robotics files are complete, as the entries of the body transforms in the scene VRML file are overwritten by the kinematic calculation, e.g., when using rlCoachMdl or rlPlanDemo. Please verify this by combining this with the respective rl::mdl model. If this is important to you, I can also update the VRML scene files to the default home position frames.

$ rlCoachMdl rlsg/mekabot-torso-rightarm-leftarm.xml rlmdl/mekabot-torso-rightarm-leftarm.xml

mekabot-torso-rightarm-leftarm

I've just uploaded the scene description files and kinematic models for the Comau RML Dual Arm, see commit 8d04ec74c650669a44454d8cddb58fca12b25aeb. You can choose between a combined model with a tree-like structure that can be used in path planning (rlsg/comau-rml-dual-arm-combined.xml and rlmdl/comau-rml-dual-arm.xml) or one with separated base, left and right arm (rlsg/comau-rml-dual-arm.xml).

For the combined one, there is also a very basic path planning definition, see commit 0abb91d753000f4b3c19c8b368816295e9c5d6c0.

For the other one, you can use the existing rlmdl/comau-smart5-six-10-157.xml models with a suitable world frame (see the scene file for the transformations). rlCoachMdl can use a scene file with separate kinematic models for each geometry model.

BeardedVagabond commented 4 years ago

Sorry for the misunderstanding, I've now verified the geometry of mekabot through rlCochMdl.

I really appreciate the fast response with the dual arm examples! I've been really enjoying having a robotics solution that exists completely outside of ROS 👍