Possible to create a spatial tendon between two pulleys? #3149
Unanswered
dnmiller
asked this question in
Asking for Help
Replies: 1 comment
-
|
Hello, Here's an example layout that works without the dummy bodies: <mujoco>
<compiler autolimits="true"/>
<default>
<site type="sphere" rgba="1 0 0 1" size="0.005"/>
<tendon rgba="0 1 0 1"/>
</default>
<visual>
<headlight diffuse=".7 .7 .7"/>
</visual>
<worldbody>
<body name="arm">
<joint name="arm" axis="0 1 0" damping=".04"/>
<geom name="shoulder" type="cylinder" size=".05 .01" zaxis="0 1 0"/>
<geom name="arm" type="box" size=".01" fromto="0 0 0 0 0 0.3"/>
<site name="arm" pos="0 0 .051"/>
</body>
<site name="right_hi" pos=".1 0 0.04"/>
<site name="right_lo" pos=".1 0 -.44"/>
<site name="left_hi" pos="-.1 0 0.04"/>
<site name="left_lo" pos="-.1 0 -.44"/>
<site name="right_mid" pos=".05 0 -.2"/>
<site name="left_mid" pos="-.05 0 -.2"/>
<body name="pulley" pos="0 0 -0.4">
<geom name="pulley/pulley" type="cylinder" size=".05 .01" zaxis="0 1 0"/>
<geom name="pulley/arm" type="box" size=".01" fromto="0 0 0 .3 0 0"/>
<site name="pulley/site" pos="0 0 -.051"/>
<joint name="pulley/joint" axis="0 1 0" damping=".04"/>
</body>
</worldbody>
<tendon>
<spatial name="rope_r0" range="0 .535">
<site site="arm"/>
<geom geom="shoulder" sidesite="right_hi"/>
<site site="right_mid"/>
<geom geom="pulley/pulley" sidesite="right_lo"/>
<site site="pulley/site"/>
</spatial>
<spatial name="rope_l0" range="0 .535">
<site site="arm"/>
<geom geom="shoulder" sidesite="left_hi"/>
<site site="left_mid"/>
<geom geom="pulley/pulley" sidesite="left_lo"/>
<site site="pulley/site"/>
</spatial>
</tendon>
<actuator>
<position name="pulley" joint="pulley/joint" ctrlrange="-1 1" kp="1"/>
</actuator>
</mujoco>It suffers from the fact that the fixed point on the tendon with the pulleys can not go past the wrapping point (I think this issue is also present in the original model), however if you don't expect the rotation to get there this could work for you. As you mentioned, in well defined cases an equality constraint or a fixed tendon will be more robust. Could you tell a bit more about what you are aiming to achieve? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Intro
Hi!
I'm looking into cable-driven robots and had a general question about spatial tendons between two pulleys.
My setup
Using Mujoco 3.5.0 viewer on Mac (Apple Silicon) to model a simple robot.
My question
I'm trying to get a spatial tendon to drive a system of pulleys. My motivation for going with spatial over fixed is the dependency of the tendon on the geometry. I can get it to work if I add sliders in between the pulleys, but they need to have a significant nonzero mass for the simulation to behave. Is it possible to get a site element on a joint without a body or to have two geometries without a site in between? Would mocap elements work for this? Am I thinking of this all wrong and should just use fixed tendons? Any feedback is appreciated.
Minimal model and/or code that explain my question
I modified one of the tendon examples to demonstrate the idea. If the mass of the sliders is set too low, the simulation misbehaves.
Confirmations
Beta Was this translation helpful? Give feedback.
All reactions