btMultiBodyJointMotor interaction and control problem.

Post Reply
Dox
Posts: 24
Joined: Thu Oct 18, 2018 5:16 pm

btMultiBodyJointMotor interaction and control problem.

Post by Dox »

Hello,

I'm playing around MultiBody in order to overcome a constraint stability problem for a robotic arm chain in my framework.

I wrote a simple urdf file (at the end of this message) loaded by the standard urdf multibody example. There are 3 links. The blue link is the fixed base, then we have a white link connected to the base via a revolute joint and then the red one connected to the white link with another revolute joint.

I apply a velocity on motorized revolute joint in order to move the white link, but at the end of its superior and inferior limit the red link move itself. Conversely, I've applied a velocity on motorized revolute joint in order to move the red link and, at end of its inferior limit, the white link start to move itself as side effect.

In general this is an unwanted behavior: if I move a motor I don't want to move another motor in any condition, unless applying an explicit velocity on that motor.

You can look at the behavior in the video attached:

https://drive.google.com/open?id=1aMHtX ... cRoP11DRlI

Can I control this behavior?

Thanks, bye

<?xml version="1.0"?>
<robot name="physics">
<link name="DOF_ArmRotate">
<visual>
<geometry>
<box size="0.42 0.11 0.22"/>
</geometry>
<origin rpy="0 0 0" xyz="0.21 0 0"/>
<material name="blue">
<color rgba="0 0 0.8 1"/>
</material>
</visual>
<collision>
<geometry>
<box size="0.42 0.11 0.22"/>
</geometry>
<origin rpy="0 0 0" xyz="0.21 0 0"/>
</collision>
<inertial>
<mass value="0"/>
<origin rpy="0 0 0" xyz="0.21 0 0 "/>
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
</inertial>
</link>

<link name="DOF_Snodo1">
<visual>
<geometry>
<box size="0.68 0.23 0.64"/>
</geometry>
<origin rpy="0 0 0" xyz="0.34 0 0.32"/>
<material name="white">
<color rgba="1 1 1 1"/>
</material>
</visual>
<collision>
<geometry>
<box size="0.68 0.23 0.64"/>
</geometry>
<origin rpy="0 0 0" xyz="0.34 0 0.32"/>
</collision>
<inertial>
<mass value="2"/>
<origin rpy="0 0 0" xyz="0.34 0 0.32"/>
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
</inertial>
</link>

<joint name="Rotate_White_Joint" type="revolute">
<axis xyz="0 1 0"/>
<limit effort="1000.0" lower="-0.785" upper="0.785" velocity="0.5"/>
<origin rpy="0 0 0" xyz="0.42 0.0 0.0"/>
<parent link="DOF_ArmRotate"/>
<child link="DOF_Snodo1"/>
</joint>

<link name="DOF_Snodo2">
<visual>
<geometry>
<box size="0.42 0.12 0.20"/>
</geometry>
<origin rpy="0 0 0" xyz="0.21 0 0.10"/>
<material name="red">
<color rgba="1 0 0 1"/>
</material>
</visual>
<collision>
<geometry>
<box size="0.42 0.12 0.20"/>
</geometry>
<origin rpy="0 0 0" xyz="0.21 0 0.10"/>
</collision>
<inertial>
<mass value="1"/>
<origin rpy="0 0 0" xyz="0.21 0 0.10"/>
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
</inertial>
</link>

<joint name="Rotate_Red_Joint" type="revolute">
<axis xyz="0 1 0"/>
<limit effort="1000.0" lower="-0.785" upper="0.785" velocity="0.5"/>
<origin rpy="0 0 0" xyz="0.68 0.0 0.64"/>
<parent link="DOF_Snodo1"/>
<child link="DOF_Snodo2"/>
</joint>
</robot>
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: btMultiBodyJointMotor interaction and control problem.

Post by Erwin Coumans »

Can you please file an issue in the tracker, with a C++ reproduction case and/or PyBullet reproduction case (PyBullet is preferable).

https://github.com/bulletphysics/bullet3/issues

Thanks!
Erwin
Dox
Posts: 24
Joined: Thu Oct 18, 2018 5:16 pm

Re: btMultiBodyJointMotor interaction and control problem.

Post by Dox »

Hello Erwin,

ok. So, do you think this is a bug and not a parameters tweaks?

I would kindly request if you can suggest to me some ideas about joint stabilization described here:

viewtopic.php?f=9&t=12610

As son as possible I'll open the bugtrack on multibody.

Many thanks,

Bye
Dox
Posts: 24
Joined: Thu Oct 18, 2018 5:16 pm

Re: btMultiBodyJointMotor interaction and control problem.

Post by Dox »

Post Reply