Backlash

Typically: "How do I... ", "How can I... " questions
Post Reply
RobotAttack
Posts: 7
Joined: 13 Sep 2013, 14:40

Backlash

Post by RobotAttack »

Hello,

I am trying to model a robot arm which (unfortunately) has significant backlash at each joint.

What would be the best way of introducing this into my model?

My end goal is to work out a custom control loop that gives the arm smooth motion.

Thanks!

coppelia
Site Admin
Posts: 10336
Joined: 14 Dec 2012, 00:25

Re: Backlash

Post by coppelia »

Hello,

What you can do is, from the initial situation:

jointWithoutBackslash

to

jointWithoutBackslash --> dummyMass --> jointWithBackslash

Where dummyMass is non-static and non-respondable, and jointWithBackslash is a joint with motor disabled and joint limits set to the desired backslash.

Cheers

ssj
Posts: 32
Joined: 27 Feb 2017, 15:40

Re: Backlash

Post by ssj »

hi
I am also trying to induce some backlash in my robot wheel joints but from the above reply I am unable to realize how to implement this. my robot in vrep has two wheels with joints. how should I modify my robot so that there is some backlash?
Is there any way by which I can add or remove backlash whenever i want? I mean what if my robot wheels does not have any backlash and is moving smooth. At some instance I want to induce error in its motion in terms of backlash to check response or may be i can develop a function that keeps monitoring and can detect by some variation in data if there is any backlash..
Thank you!

coppelia
Site Admin
Posts: 10336
Joined: 14 Dec 2012, 00:25

Re: Backlash

Post by coppelia »

Hello,

you can do this in the exact same way. For each wheel, create following:

Code: Select all

VehicleFrame --> joint1 --> auxMass --> joint2 --> wheel
with:
  • auxMass should be non-respondable
  • joint1 and joint2 should be parallel
  • joint1 is the motor, and that joint should be in force/torque mode, with the motor enabled (but controller disabled). This will be used to regulate the rotational speed
  • joint2 is the backlash motor.
For the backlash motor, you have two options:
  • a fixed backlash. In that case, set you joint into force/torque mode, and disable its motor. Make sure its position is not cyclic. Then adjust the position range.
  • an adjustable backlash. This is a bit more complicated since you can't directly adjust the position range once simulation has started (unless you dynamically reset the joint and wheel, adjust the range of the joint and reposition the joint and the wheel). I would put that joint into force/torque mode, motor enabled, and controller enabled too. Then write a joint control callback function that allows you to gradually adjust its controller.
Cheers

Post Reply