roboticslibrary / rl

The Robotics Library (RL) is a self-contained C++ library for rigid body kinematics and dynamics, motion planning, and control.
https://www.roboticslibrary.org/
BSD 2-Clause "Simplified" License
928 stars 215 forks source link

Gantry / CNC definition #63

Open francoislauzon opened 1 year ago

francoislauzon commented 1 year ago

Hello, I am new to RL and was wondering if it is possible to define a 3 axis gantry with the library, or an elevated turn table.

Thanks, Francois

rickertm commented 1 year ago

The classes in rl::mdl can be used to model tree-like structures with revolute, prismatic, cylindrical, helical, spherical, and 6-DOF joint types. We had a use case with a 3-axis gantry with a 3-DOF rotational end-effector in a previous project. A 3-axis gantry can be modeled with 3 prismatic joints. How does the structure of your elevated turn table look like?

francoislauzon commented 1 year ago

Thanks for the reply. Can you share a simple xml of the 3-axis with 3 DOF that you have in your use case? The turn table structure is straight forward, a simple up/down axis that move a turntable up/down.
Thanks, Francois

rickertm commented 1 year ago

I am not able to share the files from the project, but I've create a basic set of geometric and kinematic models that should help you get started: gantry.zip

If understood you correctly, then the turn table requires a prismatic joint for the up/down axis, and a revolute joint for the rotation axis of the table. If the table has additional rotations, then you have to add one or two additional revolute joints or you can directly use a spherical joint for all three.

francoislauzon commented 1 year ago

Thank you Markus, I load the example you gave me in rlCoachMdl and this is exactly the kind of help I was looking for. I will analyze this, but this is an excellent starting point.

Thanks, Francois