0
$\begingroup$

Rosanswers logo

At the moment i'm involved in a project where we are trying to built a Delta Robot. So i start reading the docs and tutorials and i've a few questions.

The kinematic model for the Delta Robot has already been developed; a inverse and forward model is available to me.

I'm trying to find out if i'm heading the right way. I've found a page on the ROS wiki named 'Running arm navigation on non-PR2 arm' [http://www.ros.org/wiki/arm_navigation/Tutorials/Running%20arm%20navigation%20on%20non-PR2%20arm]

Is it right to say that if i implement the functions mentioned in the article above that i can have a working Delta Robot (kinematic model, that is)? Is there perhaps a better way?

We are probably going with the Trio Whistle from ElmoMC for controlling the motors. I think it's best to start with developing the kinematic model and then implement packages for communication with the controller. Any tips or ideas on this? I've already found a package with CANopen support for the Elmo Harmonica [http://www.ros.org/wiki/cob_canopen_motor] (basically the same as a whistler)...


Originally posted by Tully on ROS Answers with karma: 1145 on 2011-02-14

Post score: 7

$\endgroup$

7 Answers 7

0
$\begingroup$

Rosanswers logo

Yes, the URDF does not support parallel robots.

There are two options for you here:

(a) add URDF support for parallel robots and give us a patch we can then integrate. This is going to be a little complicated though.

(b) Abstract your robot in a clever way so you can workaround these limitations. e.g. for motion planning, it seems like you could essentially plan in the space of your end-effector platform and use inverse kinematics to project that down into the joint space of the individual arms that connect the base to the platform. I found a document online that details the IK for a Delta robot - https://docs.google.com/View?id=dfpxhpz9_92hm8h7chc

Once you have a working IK, I/our group can help you more with getting motion planning working on this.

BTW, just looking at some videos online of what this robot can do, it's a very cool robot :-)


Originally posted by Sachin Chitta with karma: 1304 on 2011-02-16

This answer was ACCEPTED on the original site

Post score: 6

$\endgroup$
0
$\begingroup$

Rosanswers logo

If you implement the functions mentioned in the article you will have a working version of the higher level functionality for motion planning and kinematics. You still have to implement your own lower-level controllers to talk to your robot motors, etc before you can actually get this working on the robot. You might want to look at simulating your robot in Gazebo and trying out the higher-level functionality there while developing the lower level controllers for the robot in parallel.


Originally posted by Sachin Chitta with karma: 1304 on 2011-02-15

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$
0
$\begingroup$

Rosanswers logo

Hello,

Thanks for your answer. we did discover a new problem, however. After reading a bit more i found the following text:

'The Unified Robot Description Format (URDF) is an XML specification to describe a robot. We attempt to keep this specification as general as possible, but obviously the specification cannot describe all robots. The main limitation at this point is that only tree structures can be represented, ruling out all parallel robots.'

And a Delta Robot is a parallel robot. Now we are wondering on what to do. We could rewrite arm_kinematics and rename it to parallel_kinematics or something like that, but perhaps some of you have other/better ideas than we have :-)


Originally posted by Wouter van Teijlingen with karma: 63 on 2011-02-16

This answer was NOT ACCEPTED on the original site

Post score: 2


Original comments

Comment by Tully on 2011-02-16:
Delta robots are by nature parallel. However the model does not need to reflect their exact physical properties. I believe you can add constraints in transmissions such that only one link is in the kinematic tree. And fake the visualization of the others.

$\endgroup$
0
$\begingroup$

Rosanswers logo

While URDF does not support non-tree kinematic structures at this point, gazebo can handle closed chain loop dynamics. Maybe as a first order hack for simulating the Delta Robot, you can leave some joints out of the URDF, keeping the URDF representation in a tree structure, but in addition implement the loop closing joints in gazebo only. As an example, I did this for the PR2 gripper, where some of the joints in simulation are not modeled in the corresponding URDF. Is this is a feasible approach for your model?


Originally posted by hsu with karma: 5780 on 2011-02-16

This answer was NOT ACCEPTED on the original site

Post score: 4

$\endgroup$
0
$\begingroup$

Rosanswers logo

Thanks for your help :)

You wrote:

(a) add URDF support for parallel robots and give us a patch we can then integrate. This is going to be a little complicated though.

We think this is the best way. Could you elaborate on the complications?

We don't know for sure if we choose this path, because option b) or our own option c) (creating a new package) seem plausible as well.

// edit

We probably first try option b, because it seems easier than creating a new package or adding support for a parallel robot ROS wide. I come back when i have any more questions :-) Thanks!

Thanks


Originally posted by Wouter van Teijlingen with karma: 63 on 2011-02-28

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$
0
$\begingroup$

Rosanswers logo

My solution for implementing a closed kinematic chain manipulator (in my case a five bar mechanism) was to write the URDF as two serial manipulators. I "close" them myself with my own fwd/inv kinematics equations. In other words, there are four joints, but only two DOFs, and so while the left manipulator has j1 & j3, and the right manipulator has j2 & j4, we can write two of the four joints in terms of the other two, and only really care about two of the joints for control. You publish the joint angles of all four joints, and rviz, etc, are all happy.

Steve.


Originally posted by ssafarik with karma: 306 on 2012-01-30

This answer was NOT ACCEPTED on the original site

Post score: 3


Original comments

Comment by lucasrebra on 2020-10-29:
I understand your suggestion and I am trying to implement the same in my 6dof robot. Could you tell me how did you close the loop? what methods have you implemented to send the joint angles to the robot? I have been searching information of that for two weeks and i didn't find nothing

$\endgroup$
0
$\begingroup$

Rosanswers logo

Hi,

This is question for Steve: I'll be in a near future interested in simulating delta robots in Gazebo and control it with ROS.

We have analytical direct and inverse kinematics and dynamics. We actually already build and control our real prototypes, but we're doing that based on matlab, and I want to port this on ROS...

I understand from your post that you already implemented such solutions for delta robots.

Could you explain further how you did it and maybe share some code?

Thanks in advance!

Damien


Originally posted by Damien with karma: 203 on 2012-05-09

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.