Sign in to our website and become an InMoov member. It will allow you to post message, pictures, and share with others InMoov builders. It's just one click away!
Username or Email Address
Alan Timm posted an update 4 years, 1 month ago
Proof-of-concept for adding force control/feedback to Servos using the InMoov Finger Starter.
Modified the kit to accept an FSR. The servo is modified and mounted that it can slide a bit in the direction of force. As the finger tightens, it forces the servo case against the FSR, which is then read. Basic force control written in Arduino as proof of concept.
Unfortunately FSRs are only capable of sensing up to around 20 newtons (4 lbs) of force, but they should be sufficient for InMoov finger control.
Heavily influenced by Joel Hackett’s work (Thanks!)
Hi !! Great news. I was working on something like this , maybe you use the same components ( hall effect ) : https://www.youtube.com/watch?v=vNmCTcmA-JQ&feature=youtu.be . But I never find time to impletent it
Hey Anthony, I think Joel did it will hall effect sensors, he’s already integrated it with the hand. https://www.youtube.com/watch?v=50necbOJpME . It shouldn’t be too hard to modify the servo bed model to apply it to the entire hand. A friend of mine is also experimenting with velostat as a pressure sensor. Might be an even cheaper way to get the same results. The only bummer with these FSRs is that they max out at 20 newtons, which limits the grip force. But it does open up new options for force-based compliant gripping.
simply fantastic! Looks very responsive. Will you share more details about it and the code to run it? As you say it’s controlled by the arduino some more cables to route to the hand or are you thinking about a separate nano controlling each hand?
Great project Alan!!
As mentionned Joel had done a great research on the hall effect sensors. The FSR are not very responsive unless pressure is applied. How did you manage to fix the two kapton copper wiring? Won’t they brake/tear after long term running?
Hey Gael, Thanks!
These FSRs are the exact same ones that many people are using for autolevelling 3d printers, I haven’t heard of them breaking under similar use. Here’s the exact ones that I’m using. https://www.sparkfun.com/products/9375
Because of their placement next to the servo housing they end up being very sensitive relative to the friction in the fingers during normal operation. The demo posted has the values tuned to “feather-touch”. Depending on what you read, the FSRs have a max sensing force of 4lbs to 22lbs
Here’s a few more shots showing how it goes together. This solution doesn’t require servo holders. I’ve stuck a rubber cabinet bumper onto the FSR, and modified the finger starter frame with a recess to hold the fsr+bumper. The servo case screw holes are modified so that the servo can slide slightly along the direction of force. The servo is only attached with two screws, and those screws allow the servo to slide back and forth a bit.
View post on imgur.com
The reason this works is because the servo itself applies varying amounts of force depending on how far off the command position is from the current position. The proof of concept code then just periodically nudges the command position forward or backward based on a minimum and maximum force value.
It looks like I can apply this to your existing servobed model with minimal changes.
Thanks for the extra pictures, it gives a good idea about the process!
What is nice with this setup, is that it avoids having cables running within the fingers. (Which is not easy to work with);
The servo bed would need a bit of modfication, but all together, it’s not so much work and it could even be applied to forarms that have already been assembled. Another place where the sensors could be mounted is in the tensioner…
right, big thing, no need to take too much apart.
My question however is unanswered – I assume the finger tester code reads back the status of the FSR and repositions the finger? This will need 5 more cables from the forearm to the arduino and a modified finger service to take this into account? Or am I (once more) wrong again? Tell me I am wrong, I can survive it.
The Nervo board can handle the sensors. In my tutorial I explain how to set an extra ribbon dedicated to the sensors. Inded the service will need to be adapted which I have been waiting for ever since I have added the sensors in the fingers. 🙂
Time to take that in a serious matter!
Right, your finger sensor has been in place for a long time but it just looked too fragile to me to build it into the hand. And as you say it never got respected in the servo service?
I hadn’t seen this, but there’s a guy out there by the name of Clement Vella who has also worked out a solution using FSRs, not sure if they’re hand made or not, but he a sensor for each direction of force and integrated it into the pulley.
His video also confirms one of my questions, that maybe applying PID to the control code may work better than hand tuned theshhold values.