Modeling Tensegrity

Discussion in 'Modeling' started by Riley Edmunds, Oct 22, 2017.

  1. I'm working on modeling a 6-bar tensegrity robot, as pictured below. upload_2017-10-22_16-33-43.png
    I noticed that in your original paper ("mujoco a physics engine for model-based control"), you mention that tendons would work well as models of the strings and springs holding together the tensegrity structure. We need to a model a string between the endpoints of two rods (r_1 and r_2) that is fixed to r_1, and connected to an actuator at r_2. The string should be able to change lengths as it is contracted. As far as we can understand from the documentation, fixed tendons have lengths defined as linear combinations of joint positions, and are virtual. We're thus going to model the strings (with springs) as spatial tendons instead. We plan to define (for each string): an actuator at r_2; sites s_1 and s_2 at r_1 and r_2; spatial tendon between sites s_1 and s_2.

    Do you think we should use the spatial tendon in place of the fixed tendon? We want to make sure we fully understand the spatial tendon before using it as a string/spring combination.

    How does the tendon attribute of the actuator work? Does it actuate both ends, or just one? We would like to simulate pulling only one end of the "string."

    Thanks!
     
  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    You should use spatial tendons in this case. If you attach an actuator to a tendon, it generates force along the tendon (usually in the shortening direction) and this force is felt at both attachment points.

    From your picture though, it looks like the strings/tendons are passive elements while the solid rods have actuators in the middle. If so, you could model each rod as a pair of capsules with a sliding joint between them, and actuate the joint. Then connect the capsule outer ends to each other with tendons, and define length limits so they don't stretch (actually they will stretch a bit because the constraints are always soft, but you can adjust the parameters to make them pretty hard).
     
  3. Thank you! Appreciate the help :)
     
  4. Hi Professor,

    Following up on the post above. We want to have the ability to contract/extend the tendon connecting the ends of adjacent rods. Does the attached XML model seem correct?

    A couple questions:

    1. We would like to access positions and velocities of the rod-ends (defined by site in our xml) at each step.

    We noticed that model.qpos and model.qvel only return pos/vel for joints. Within the python wrapper mujoco_py, do you happen to know if self.model.data.site_xpos.flat changes on the fly? In other words, can we call it directly to get what we need? Or would you recommend creating dummy joints on the ends of the rods to query their qpos and qvel?


    2. We would like to actuate the tendons.

    How should we send controls to the tendon? By sending commands directly to the actuator on the tendon?


    3. When we actuate the tendons, we want them to pull the rods.

    Should we add joints in between the tendons and the rods (there is nothing connecting the two, as far as we can tell)?
     

    Attached Files:

    • TT.xml
      File size:
      8.4 KB
      Views:
      147

  5. Hi Professor, this is just to make sure replying in your thread that you can get notified.... please see the message from Riley above..