How I can fix a revolute joint to prevent movements around other axes?

asked 2019-10-15 07:39:30 -0600

updated 2019-10-17 05:16:37 -0600

Hello everyone! I'm working with Gazebo trying to simulate the behavior of a manipulator made by using one or more aerial platforms (drones with only two propellers). This manipulator consists of:

  • a base, which is rigidly attached to the ground (the world) through a fixed joint;
  • a bar, connected to the base by a revolute joint:
  • a drone, located at the of the chain and connected to the bar by another revolute joint.

To better understand how the platform should move and how it was designed, take a look at this reference paper.

About the problem, when I start the simulation (to understand and reproduce the problem I have, you can rotate the object turning the pitch angle) I'm observing a strange behavior of the revolute joint in the base. Indeed, although it should be fixed and should not move around the other axes, it changes orientation making the system unstable. Here the video which shows what it happens (take a look at the strange behavior of the joint in the base).

Here you find the link to the code (SDF files used in Gazebo), while below the main part where you can see immediately how the joints are connected to the world and with other items.

image description

EDIT I think I have found the solution to my problem, but other viewpoints are always welcome. For this reason, I leave the question open for longer. However, here my solution. To make it, I started from the Gazebo online model available in the Bitbucket repository. In particular, I used the "simple_arm" Gazebo model.

edit retag flag offensive close merge delete


Could it be related to collisions and/or inertial values? I had the same thing happen to my RR robot and when I used collide bitmasks and standardized inertia/mass among differents parts, the simulation ran smoothly.

mxch_18 gravatar imagemxch_18 ( 2019-10-30 06:41:46 -0600 )edit