[ros-users] Closed kinematic chains in ros/gazebo

David Lu!! davidvlu at gmail.com
Fri Oct 8 19:17:08 UTC 2010


For the applications I've come across with 4-bar-like structures, I
republished the jointstate with the constrained angles set
appropriately (thus the constrained_joints parameter in
joint_state_publisher). However, I only used this for examining the
model in rviz. Probably wouldn't work in Gazebo.

-David!!

On Fri, Oct 8, 2010 at 1:39 PM, John Hsu <johnhsu at willowgarage.com> wrote:
> Hi Andrew,
>
> Can you provide some more detail about the robot you're simulating and your
> application?
>
> To model the closed loop chain in the PR2 gripper, I hid an additional joint
> constraint in <gazebo> extension for each gripper so we are effectively
> solving the dynamics of a closed 4-bar linkage in ODE.  The implementation
> is far from pretty but that's what I had to do to get around the urdf
> tree-structure requirement.  For urdf-2.0, we plan on adding graph support,
> but that's in the discussion stage.
>
> As for joint mimic, ODE internally does not support dynamic joint mimicking
> right now, it's something on my todo list, but may take a while, pending
> priority of the functionality.
>
> Without a specific context for your simulation, I might suggest trying the
> same trick I did for the PR2 gripper first by hiding the additional
> "loop-closing" joint in gazebo extensions, and the physics engine can take
> care of the implicit joint mimicking behavior due to closed loop
> constraints.
>
> Note that using the set_link_state service call for partial robot will most
> likely disrupt dynamics of the entire of the system.
>
> I cc'd the list in case someone else has more experiences with similar
> problems.
> John
>
> On Fri, Oct 8, 2010 at 8:24 AM, Andrew Mor <abm760 at gmail.com> wrote:
>>
>> John,
>>
>> I was wondering if there was a straightforward way of constraining the
>> orientation of a joint within the urdf framework?  I looked through the
>> archives of the mailing list and the pr2_gripper code, and nothing is really
>> popping out at me.  We have a simple 4 bar mechanism where the side bars are
>> both the same size and the top is the same as the bottom, so the side links
>> are always parallel as is the top to the bottom.  I was hoping to use the
>> mimic tag from within my controller to set the joint_state_ position to be
>> equal to the other joint, but position_ is read-only.  Is there another way
>> to get around this without constructing a custom transmission?
>>
>> I had thought about calling the /gazebo/set_link_state service and that is
>> still my backup plan before writing a transmission.
>>
>> Would this be better to send to the ros-users list?
>>
>> Thanks
>>
>> Andrew Mor
>
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>



More information about the ros-users mailing list