Hanging load using spherical joints and urdf

Official Python bindings with a focus on reinforcement learning and robotics.
NSziszi
Posts: 1
Joined: Mon Feb 28, 2022 8:34 pm

Hanging load using spherical joints and urdf

Post by NSziszi »

Hi!



I want to build a model of 4 drones transporting a load using a rigid cable. The cables are attached to the center of mass of the four drones on one side and to the four corners of the box-shaped load on the other side. The joints need to be “spherical”.

As a test, I have created a single URDF file, combining a load (modeld as a box with the same mass and inertia as a Crazyflie drone), a cable (massless cylinder) and a SINGLE drone for simplicity (model of a Crazyflie drone, attached to one of the edge of the load).

If I load the model using pybullet.loadURDF(…) and do pybullet.applyExternalForce(0,6, forceObj=[0, 0, force], posObj=[0, 0, 0], flags=pybullet.WORLD_FRAME) (—> index 6 lets us apply force to the center of mass of the drone), the model starts to go up and it starts to rotate.

This is not what I have expected. What I expected was the load swinging underneath the drone, while the drone is experiencing a force pulling it upwards. To me, for some reason the spherical joints seem rigid, not allowing this swinging motion. It is like the whole model is behaving like a single, rigid body.

I will attach the URDF file, hoping that it is possible to create such a model and that someone is able to spot my mistake.

Thank you in advance!
You do not have the required permissions to view the files attached to this post.
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Hanging load using spherical joints and urdf

Post by Erwin Coumans »

Did you unlock the joint motors, setting the force to zero for POSITION control:

See https://github.com/bulletphysics/bullet ... re.py#L179