Impedance control and Haptics

Quite a lot of people have individually told me they are working on or are interested in impedance control or haptics. So I thought I’d make this thread for the people with this interest to come forward and introduce themselves; to open up the discourse about the subject, connect and share ideas.

What are you working on? What are your requirements for your application? What kind of features would you like to see on ODrive to help you with this?

Btw, you guys are awesome and doing some really cool stuff. Thanks for choosing ODrive for your research ;D
Cheers!

1 Like

Ok I’ll start. I have a project (for which I have yet to buy an ODrive) that I will use a cable robot to provide g force feedback to the helmet of a racer in a motion sim. The o drive will get commands from sim tools (xsimulator.net) and apply a force (via torque mode) to a ball joint on the helmet in surge, sway, and heave(x,y,z translation). Its going to be the worlds simplest cable robot because the sim racer will handle all position requirements.

picture this

plus this

3 Likes

result?

2 Likes

Would impedance control effectively just be a control loop where
current = K * acceleration ? Plus maybe some damping?

This is analogous to F = ma, so you’re just creating a virtual mass.

Seems like for the racecar helmet sim, you wouldn’t need this type of control. I would think it would just be applying forces, so just directly applying currents.

1 Like

Hi all,

I’m thinking of building the opentorque project from Gabrael Levine, since I allready have most of the components…

I would like to replicate what he showed in that movie, where he moves a stick attached to the motor and it seems to behave like a spring, and where he can set the spring rate to different values.

So, looking at the control structure of the odrive, I think all that would be required is to give pos_gain and vel_gain a value different from zero, and to set vel_integrator_gain equal to zero? In this way the current is proportional to the position error?

Is this approach too simple, am I missing something? I guess the only thing that would not make sense here is that pos_gain and vel_gain are allready defined to achieve a properly tuned system? So then messing with these values to achieve a different spring force is not an option? Is there a better way?

Is the THK RA8008 cross roller bearing available now at some reasonable price?
Last I heard, since this project and all of the various copies of it, this component became out of stock everywhere and then the price went to silly money. :frowning:

That is indeed a bit of a problem. I found it on ali express for 138 euro. I was also surprised by the price…

I will see if I can modify the design the fit a slightly smaller or larger bearing…

Hi all,

I have redesigned the opentorque actuator from Gabrael Levine to make it more cheap and thus accessible for more people. Printing it out as we speak. I will share the design once I have verified it works… I started my version from the design from Skyentific, because he allready did some nice work to remove the play from the gears.

The new design uses very cheap bearings, 2 large ones and 6 small ones for the planets. (I think all 8 bearings combined are as low as 30 dollars on amazon). They might have a little more play compared to the expensive cross roller bearing, but if necessary I should be able to remove any play by installing a shim plate…


new on left, old design on right.

Once this works I will try out impedance control with this actuator.

2 Likes