Hanging load using spherical joints and urdf

Official Python bindings with a focus on reinforcement learning and robotics.
Post Reply
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!
Attachments
load_transportation.zip
(2.46 KiB) Downloaded 1178 times
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

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
Post Reply