Chapter 13: Freedrive Mode
About This Chapter
Freedrive Mode uses servo motor torque control to allow a person to move the robot arm directly by hand.
It is one of the most frequently used functions in teaching operations, including:
Creating taught points
Position alignment
Trial operation
Maintenance
This chapter explains:
How Freedrive works
Its relationship with the Teach Pendant
The Python API
Differences between the CB series and e-Series
13.1 What Is Freedrive?
Normally, a UR robot operates as follows:
Motor
↓
Position control
↓
Position holding
As a result, the robot hardly moves even when pushed by a person.
In Freedrive, the control mode switches to:
Motor
↓
Gravity compensation
↓
Following external forces
This allows a person to move the robot with a small amount of force.
13.2 Relationship to Teaching
Freedrive is, in effect, teaching itself.
A typical sequence is:
Start Freedrive
↓
Move the robot by hand
↓
Reach the desired position
↓
Read the current position
↓
Save the taught point
13.3 Freedrive on the Teach Pendant
On the Teach Pendant, Freedrive can be started using the Freedrive button or the Freedrive function on the screen.
Once started, the robot can be moved directly by hand.
When Freedrive ends, the robot returns to normal control.
13.4 Starting Freedrive from Python
With ur_rtde, use:
rtde_c.teachMode()
Or, depending on the version:
rtde_c.freedriveMode()
Internally, this switches the controller to the Freedrive state.
13.5 Ending Freedrive
To end Freedrive, use:
rtde_c.endTeachMode()
Or:
rtde_c.endFreedriveMode()
Afterward, normal control using commands such as moveJ and moveL becomes available again.
13.6 Reading the Current Position
Even during Freedrive, the following methods can be used:
pose = rtde_r.getActualTCPPose()
q = rtde_r.getActualQ()
This makes it possible to teach positions through the following sequence:
Move the robot by hand
↓
Read the current position
↓
Save it
13.7 Example Teaching Program
teachMode()
↓
User moves the robot by hand
↓
Enter key
↓
getActualTCPPose()
↓
Save to CSV
↓
endTeachMode()
A teaching application can be created with this very simple structure.
13.8 Differences from COBOTTA
With COBOTTA, the sequence is:
TakeArm
↓
Motor ON
↓
Free Mode
With UR, a similar operation can be performed simply by starting Teach Mode.
The underlying concepts are very similar.
13.9 Payload Configuration
Payload configuration is important in Freedrive.
If the configured weight is incorrect, the robot may:
Feel heavy to move
Move on its own
Be difficult to hold in position
13.10 Safety
Safety monitoring continues during Freedrive.
A collision or excessive load can trigger a Protective Stop.
13.11 Relationship to Remote Control
Remote Control must also be enabled when starting Teach Mode from Python.
Depending on the configuration, Teach Mode may not start unless Remote Mode is active.
13.12 e-Series
On the e-Series, integration with the force sensor provides a more natural feel during manual operation.
The e-Series is easier to handle for teaching applications.
13.13 CB Series
Freedrive is also available on the CB series, but some available APIs and operating procedures differ from those on the e-Series.
Check the generation of the controller being used.
13.14 Typical Use Case
Start Teach Mode
↓
Move to P1
↓
Save
↓
Move to P2
↓
Save
↓
Move to P3
↓
Save
↓
End Teach Mode
This sequence creates taught points.
13.15 Python Example
rtde_c.teachMode()
input("Move robot and press Enter")
pose = rtde_r.getActualTCPPose()
print(pose)
rtde_c.endTeachMode()
This is a minimal teaching program.
13.16 Implementation in ur_ctrl.py
For ease of use, the high-level API could provide:
enter_freedrive()
leave_freedrive()
Or:
teach_start()
teach_stop()
Combined with:
get_current_pose()
these methods would allow a teaching tool to be built entirely in Python, without using the Teach Pendant.
Summary
Freedrive Mode is a control mode that allows a person to move the robot directly by hand.
It is one of the most important functions for teaching. By combining the following operations from Python:
Start Teach Mode
Read the current position
End Teach Mode
it is straightforward to create custom teaching software.
The next chapter explains coordinate systems such as TCP, Base, Tool, and Feature.