Robot Arm with Depedent Links - Dynamics Limits

asked 2020-07-24 06:37:37 -0500

makemelive gravatar image


I think this is a common problem on some robotic arms without a real solution yet implemented in ROS

The robot i try to simulate is comau aura, which happens to have a closed loop kinematic chain between the shoulder and elbow in order to be able to lift heavier objects, this causes those links to be dependent on each other!!

Since we cant define close loop chains in URDF we simulate it with a pseudo MIMIC joint

Here is a viual representation of the connection MOVING ONLY JOINT 1

The idea is to use a costum script that calculates the dynamic's limit based on the position of joint 1

Is there a way that MoveIt can subscribe to a topic or something so that can use this Dynamic Limits in real time????

Any possible solution will be much helpfull!!


image description image description

edit retag flag offensive close merge delete


Hi @makemelive,

I'm having the same problem with my robotic arm. I have the inverse and forward kinematic of my robot and now I'm trying to use it, but I don't find any information. I don't know which is the topic I have to use for implementing that information and this is giving me lots of problems. I think that if we find a solution could be so interesting for future developers, working with this type of robots now is difficult. If you want to exchange opinions and to colaborate with me I think that would be profitable for both.

lucasrebra gravatar image lucasrebra  ( 2020-12-22 10:50:46 -0500 )edit

Hi @lucasrebra , we ended up considering the links indepedented in the urdf and gazebo, this resolved the issue of the "dynamic" joint limits. Then for the real robot on the driver we made a transformation from the indepedent urdf to the depedented real robot like so on the read() joint_position[2] += joint_position[1] on the write() joint_positon[2] -= joint_position[1] This was on top whatever values we were reading on the robot for correct visualization in RViz

Not an elegant solution but it worked

makemelive gravatar image makemelive  ( 2020-12-24 09:46:04 -0500 )edit

Hi @makemelive , I'm searching a similar solution for my robot but I'm having some problems in the implementation. I understand in your response that in rviz you represent a tree kinematic chain for the representation with no type if dependence between elbow and shoulder of the robot. Then you change them for the simulation making them dependent programatically no? How are you implementing that? Because that is the point where I'm having the problem.I'm sorry because I'm still learning ROS and probably what I say isn't so precise. If you can describe a little bit the way you did It I would be really thankful. This os giving me more problems than i thought when I started the project.

lucasrebra gravatar image lucasrebra  ( 2020-12-24 10:16:47 -0500 )edit

Hi @lucasrebra If you have diy robotic arm with servos which has dependent links you might be interested in my project and more specifically on this node which subscribes to the indepedented joint states and transforms them into appropiate servo commands (with the transform to decouple the depedented joints (see the helper + servo 2) .

Basically the logic is that you consider in the urdf that you have a normal arm without any depedented links. Then most likely if you move the shoulder and elbow servos together you will notice that it is like moving only the shoulder servo in an indepedent joint robot. That is to say that when you move the two servos together the angle between shoulder and elbow remains constant. So urdf and gazebo indepedented, then on the real arm you must add to the elbow joint ...(more)

makemelive gravatar image makemelive  ( 2020-12-24 10:32:09 -0500 )edit

Thank you so much @makemelive, I think that the GitHub project is what I was searching for. If I continue having doubts I will ask you some things about it, I'm watching that you have experience working with DIY robots.

lucasrebra gravatar image lucasrebra  ( 2020-12-24 10:49:05 -0500 )edit