Robotics Research 101: Getting Started with Force Control
Posted on Feb 17, 2016 7:00 AM. 8 min read time
Force control is an important technique in robotics research. But, how do you get started with force control? Do you have to develop controllers yourself or are there any "easy options"? In this post we give you a crash course in robotic force control for researchers. Of course, it'll also be useful for anyone else interested in implementing this core concept. Let's get technical!
Force control has been around for a long time in robotics research. Since the 1970s, researchers have looked for ways to integrate the sense of touch into their robots. Touch might be the most important of human senses, so it makes sense that it's also important for robots.
Although it has a long history, the use of force control has only recently started to become popular within industrial robotics. Now, finally, we are starting to see robotic products with integrated force control. This is a great thing for robotics researchers!
We cover force control in depth in our new eBook Force Sensors in Robotics Research: The Essential Guide (which you can download for free here). In this post, we'll just give you the basics.
Do I Need to Implement Force Control Myself?
For a long time, robotics researchers have been in a bit of an awkward situation. We could see that countless other research groups had already integrated force control into their robots. This meant (at least for academic researchers) that implementing force control was less valuable because it wouldn't produce any "novel" (i.e. publishable) results.
However, there was no "easy way" to get started with force control. If you wanted to get the benefits of force feedback, you'd have to spend a long time developing it for your robot, knowing that it probably wouldn't result in an academic paper.
Thankfully, hard-working industrial R&D researchers have come to the rescue. Robot manufacturers are now making it easy to use force control. Here at Robotiq, for example, we've developed a plug and play kit, which gives force control to Universal Robots using our FT Sensor. This trend is only going to increase with industrial robotics.
Researchers now have the option of using force control in their research, without having to spend long, fruitless hours in development.
What If I Need to Implement Force Control?
Although there is now an "easy option", there are still good reasons you might want to implement force control yourself.
Some reasons might be:
- You are using a custom built or modified robot.
- You want to use a different force torque sensor than the manufacturer's option.
- You want a more refined control over the force control than the manufacturer's option allows.
- You are using a development environment which is incompatible with the manufacturer’s force control libraries.
- You want to implement a different sort of force control.
Fortunately, there is a lot of published information available about implementing force control. Unfortunately, most of this information is buried within research papers as part of the "methodology" section.
In our free email series (which comes with the eBook), we give you a helping hand for where to find the best information about implementing force control. You will still have to put in a bit of work before you have a fully functional and reliable force controller. But, hopefully, this will give you a bit of a "head start”.
The Advantages of Force Control
When we are talking about the advantages of force control, usually we are comparing active force control to motion control (e.g position control or velocity control).
Pure position control works like this:
- You command the robot's joint and thus arm to a particular position.
- The robot tries to reach that position, no matter what forces are applied against it within its environment.
Clearly, there are drawbacks to this control approach. It is easy for the robot to apply very high forces to the environment and potentially cause damage. I've seen a manipulator accidentally karate-chop a table in half because it was commanded to the wrong position and only used pure position control.
Force control provids an alternative. You can use 6-axis Force-Torque Sensors (or sometimes other force sensors) to sense physical interactions. This means that force controllers are more suitable for a variety of tasks, including:
- Applying a controlled force to an object (e.g. deburring, grinding, pushing an object, etc)
- Dealing with geometric uncertainty in assembly (such as the robot which builds IKEA furniture)
- Improving the force feedback in bilateral teleoperation
- Avoiding high forces applied to the environment for safety reasons.
There are clearly many advantages to force control.
Types of Force Control
Pure force control uses a similar principle to the pure position control described above. The only difference is that you command the robot with a force instead of a position. Thus the robot will try to maintain the force which has been designated on the environment.
Pure force control also has some limitations. For example, it is not so great when moving the robot through free space (i.e. when there is no applied force).
In practice, a combination of motion and force control are used to get the best of both worlds.
There are a variety of different force control techniques, some of which are described below. These are all "active" force controllers (i.e. where force data is incorporated into the control loops). You can also have "passive" force control, such as when a bendy material or springs are integrated into a manipulator to ensure that it cannot apply a high force.
Indirect force control
These methods are primarily motion controllers, which only apply a force constraint when the position of the robot deviates from the target position. These controllers do not explicitly "close the force feedback loop." This means that, technically, they don't need force torque sensors to be implemented. However, often it is a good idea to use force torque sensor data to improve the controller.
- Impedance control - This applies a mass-spring-damper between the target position and the actual position of the robot. Imagine that you attach a spring between your finger and some target position in the air. The further you move your finger away from that point, the more force the spring applies to pull you back to that point. This video shows what impedance control looks like on a robot.
- Admittance control - This is the inverse of impedance control (more or less). It can be better imagined as pushing your finger through a very viscous substance, like honey or wet sand. The more force you apply to the substance, the further your finger will move. This video shows what admittance control looks like on a robot.
There are also special cases of impedance and admittance control, such as stiffness control which actively varies the stiffness of the robot joint (demonstrated quite clearly in this video).
Direct force control
These methods incorporate both force and motion into the control of the robot. They require two different inputs - the target position/motion and the target force. As a result of this, some direct force controllers must have a very clear model of the task.
This can sometimes be restrictive when you are using the controller in unknown environments or for unknown tasks. However, when you do know explicit details about the task, these controllers allow you to independently control each axis for either force or motion depending on the needs of the task.
- Hybrid force/position control - This control method is quite popular. It separates all 6 axes of the task (3 force and 3 torque) and applies either a motion based control or a force based control onto each of the axes. Unconstrained (free) axes are controlled in position while constrained axes are controlled by applying a constant force. This video shows what hybrid force/motion control looks like on a robot.
- Parallel force/position control - This is an option if you want to use direct control, but do not know details of the task. It works by implementing both force control and motion control simultaneously. The controller is set up so that the force control has more effect on the output than the motion control does. This means that the robot will move under the motion control until an external force is applied.
Where to Learn More About Force Control
In this post, we've introduced the basics of robot force control. Hopefully, it's given you a helpful introduction into the techniques available.
However, if you actually want to implement force control yourself, you're going to need a lot more information than this, right?
To learn more about implementing force control, make sure to download a free copy of our eBook and email series.
The eBook provides a definitive guide for using force sensors in robotics research. The email series provides links to loads of great resources, where you can learn more about force control to help you with your integration.
Download it by clicking the big button below! (Did we mention, it's free!)
Have you ever integrated force control into a robot? What challenges did you come across? Which type of force control is your favorite? Tell us in the comments below or join the discussion on LinkedIn, Twitter or Facebook.