Force Feedback control - Capstone project

Click For Summary
SUMMARY

The discussion centers on designing a force feedback control system for a capstone project, utilizing a single lever that mimics a force profile between 4 and 10 N. Key components include a DC motor, Arduino for control, and a potentiometer for feedback. Participants emphasize the importance of selecting the appropriate motor technology, recommending brushed vs. brushless DC motors and exploring rotary encoders for position feedback. Concerns about motor damage due to torque exceedance and heat generation are addressed, along with suggestions for alternative mechanisms like springs and Prony brakes for resistance control.

PREREQUISITES
  • Understanding of DC motor operation and control
  • Familiarity with Arduino programming and interfacing
  • Knowledge of gear ratios and mechanical design principles
  • Experience with feedback systems, particularly potentiometers and rotary encoders
NEXT STEPS
  • Research brushed vs. brushless DC motor technologies for force feedback applications
  • Explore rotary encoders and their integration with Arduino for position feedback
  • Investigate gear ratio calculations for back-driving mechanisms in gear trains
  • Examine the design and implementation of Prony brakes as resistance mechanisms
USEFUL FOR

Engineering students, hobbyists in robotics and control systems, and anyone involved in designing force feedback mechanisms for interactive devices.

MacLaddy
Gold Member
Messages
290
Reaction score
11
I'm attempting to design a force feedback system for my senior capstone project. It will consist of a single lever that is free to move along a single axis. Imagine a video game joystick, but one that only moves forward and back.
I need to mimic a given force profile along the stroke of the lever. It will always be somewhere between 4 and 10 N. The idea to accomplish this is by using simple gearing, a DC motor, an arduino for control, and a potentiometer for feedback.
My question is this. How does this type of control work with the small DC motor? If I apply current to the motor and hold it steady, or even reverse the direction it is trying to go, will that damage the motor? Is there a better system for this application?

Any information is appreciated.

Thanks,
Mac
 
Engineering news on Phys.org
Have you done any research into current/previous solutions to this problem? How does an off-the-shelf force-feedback joystick achieve this?
 
  • Like
Likes   Reactions: MacLaddy
Mech_Engineer said:
Have you done any research into current/previous solutions to this problem? How does an off-the-shelf force-feedback joystick achieve this?

Yes, with what information we have been able to garner from DIY hobbyists and some teardown videos regarding the joysticks. I've considering purchasing a joystick if necessary, but I haven't gotten there yet. The setup we most often see is precisely what I described above, i.e. a motor, controller, pot and gear-set. The next step in my process is to explore what types of motors are used in this application and how the feedback affects them. Which is why I'm here.
 
  • Like
Likes   Reactions: Mech_Engineer
MacLaddy said:
Yes, with what information we have been able to garner from DIY hobbyists and some teardown videos regarding the joysticks. I've considering purchasing a joystick if necessary, but I haven't gotten there yet. The setup we most often see is precisely what I described above, i.e. a motor, controller, pot and gear-set. The next step in my process is to explore what types of motors are used in this application, and how the feedback affects them. Which is why I'm here.

Good, I'm glad you've investigated previous solutions to the problem! I agree that you will want to identify a motor technology which is best-suited to your application. As a general rule a motor's torque output is related to the amount of electrical current being applied to its winding; with a proper current modulation controller you should be able to apply a continuous or varying amount of torque. You will need position feedback to provide torque as a function of position; consider a rotary encoder on the motor to achieve this.

I'd recommend comparing brushed vs. brushless DC motor technologies; you may find some differences that tend to lead you in one direction vs another. You should also consider more exotic solutions like linear motors, or even electromagnets.
 
  • Like
Likes   Reactions: MacLaddy
Mech_Engineer said:
Good, I'm glad you've investigated previous solutions to the problem! I agree that you will want to identify a motor technology which is best-suited to your application. As a general rule a motor's torque output is related to the amount of electrical current being applied to its winding; with a proper current modulation controller you should be able to apply a continuous or varying amount of torque. You will need position feedback to provide torque as a function of position; consider a rotary encoder on the motor to achieve this.

I'd recommend comparing brushed vs. brushless DC motor technologies; you may find some differences that tend to lead you in one direction vs another. You should also consider more exotic solutions like linear motors, or even electromagnets.

Thank you, I will definitely look into a rotary encoder. I haven't worked with those yet, and it was one of my next questions.
I'm a bit unsure if I understand your answer regarding the motors. I understand how to calculate output torque, but I don't understand how the motor reacts when the torque exceeds its capabilities. Let me attempt to clarify. If current is supplied to the motor and it is trying to rotate clockwise with a certain torque, and I then decide to hold it steady, or even drive it counterclockwise against the direction it is trying to rotate, will that not damage the motor? It seems to me that it would create magnetic stresses and heat internally. The purpose of this force feedback is there to act as resistance to the movement, not to drive the lever.
I hope my question is more clear, thank you again.

Mac
 
MacLaddy said:
It seems to me that it would create magnetic stresses and heat internally.
There are Torque Motors available that are designed to operate at the locked rotor condition, but they are a bit hard to find and not cheap.

Heat would be the biggest concern in an ordinary motor. I would suggest using one rated a few times the needed torque. I wouldn't worry about the magnetic stresses, they occur every time the motor starts. With a Gear Motor you have to use a low to moderate gear ratio when back-driving it due to the static friction of the motor bearings, brushes, and the higher speed gears. The high-ratio gear trains can not be back driven at all.

The reason a potentiometer is used for feedback is they are dirt cheap; and many micro-controllers have a builtin Analog to Digital converter.
 
  • Like
Likes   Reactions: MacLaddy
Tom.G said:
There are Torque Motors available that are designed to operate at the locked rotor condition, but they are a bit hard to find and not cheap.

Heat would be the biggest concern in an ordinary motor. I would suggest using one rated a few times the needed torque. I wouldn't worry about the magnetic stresses, they occur every time the motor starts. With a Gear Motor you have to use a low to moderate gear ratio when back-driving it due to the static friction of the motor bearings, brushes, and the higher speed gears. The high-ratio gear trains can not be back driven at all.

The reason a potentiometer is used for feedback is they are dirt cheap; and many micro-controllers have a builtin Analog to Digital converter.

Good information, thank you. We are just starting gear and gear train analysis in our senior machine design course, so I haven't touched on this very much yet. Can you recommend any search terms for calculating the gear ratio needed that will still allow back-driving? I'm using Shigley's Mechanical Design, if that is any help. I'll start searching the obvious terms now.

Mac
 
The more I think about this, the more I believe we may be taking the wrong approach. Our entire force profile over the stroke length of the lever is dependent on resistance. We want this lever to return home when it is released, but have a specific "feel" when pushing/pulling it. A spring on a crank would mimic the profile quite well, but it isn't variable/programmable.
I'm starting to think more in terms of braking systems than drive systems. The YouTube video below is a linear actuator that I may be able to make work, but I don't know if it would have enough power for our purposes.
If there are any suggestions of hardware that can act as an arduino based resistance mechanism I would be very appreciative to hear it. My search results have come up null so far.

Here is a link to the video.
 
MacLaddy said:
Can you recommend any search terms for calculating the gear ratio needed that will still allow back-driving?
Afraid not. My background is Electronics and my back-driving comment was based on occasional observation over the years. I surmise you would have to find the static friction of each item from the motor to the output shaft and adjust for the gear ratio from each item to output. Then decide if the output device and each reduction stage can handle that torque.

MacLaddy said:
A spring on a crank would mimic the profile quite well, but it isn't variable/programmable.
Connect the fixed end of the spring to something (an arm or crank?) that is controlled by a motor; or to a string (fishing line?) that wraps around a motorized drum.

MacLaddy said:
If there are any suggestions of hardware that can act as an arduino based resistance mechanism I would be very appreciative to hear it. My search results have come up null so far.
Anything that can be electrically controlled. Although probably not the best choice, the first thing that comes to mind is a Prony Brake, http://enginemechanics.tpub.com/14037/css/Figure-8-3-A-Prony-Brake-53.htm, replace a scale with something (motor, solenoid...?) that adjusts the tension in the strap. You will have to add a Transistor stage or two to the Arduino output to handle the higher current that the actuator needs.
14037_53_3.jpg
 
  • Like
Likes   Reactions: MacLaddy
  • #10
Tom.G said:
Afraid not. My background is Electronics and my back-driving comment was based on occasional observation over the years. I surmise you would have to find the static friction of each item from the motor to the output shaft and adjust for the gear ratio from each item to output. Then decide if the output device and each reduction stage can handle that torque.Connect the fixed end of the spring to something (an arm or crank?) that is controlled by a motor; or to a string (fishing line?) that wraps around a motorized drum.Anything that can be electrically controlled. Although probably not the best choice, the first thing that comes to mind is a Prony Brake, http://enginemechanics.tpub.com/14037/css/Figure-8-3-A-Prony-Brake-53.htm, replace a scale with something (motor, solenoid...?) that adjusts the tension in the strap. You will have to add a Transistor stage or two to the Arduino output to handle the higher current that the actuator needs.
14037_53_3.jpg

That's an interesting mechanism, thank you. I'll start trying to wrap my head around these options and see what comes out of it.

Mac
 

Similar threads

Replies
6
Views
2K
  • · Replies 3 ·
Replies
3
Views
5K
Replies
5
Views
3K
  • · Replies 5 ·
Replies
5
Views
5K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
25
Views
5K
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
5K
  • · Replies 4 ·
Replies
4
Views
4K