This repository is for backing up the existing .urcontrol and programs, installing UR Controller Firmware for match URs, and restoring existing urcontrol configs and programs.
Important: All operations described in this guide (copying files, archiving, and restoring) should be performed on an Ubuntu system.
To perform a backup, you need to copy the programs directory and .urcontrol configuration from the robot's file system.
- Path to programs:
datafs(partition)/programs - Path to .urcontrol:
datafs(partition)/root/.urcontrol
Note: Press
ctrl+hin your file explorer to show hidden folders.
The copy process must be done via root privileges. Open a terminal and use the following commands to copy the folders to your Desktop:
Note: Please verify that your SD card partition is mounted at
/media/match/datafs/.... Depending on your system and user, the/media/match/part might differ.
sudo cp -r /media/match/datafs/programs ~/Desktop
sudo cp -r /media/match/datafs/root/.urcontrol ~/DesktopNext, we must back up the folders as a zip archive for storing.
Important: Please include the last three numbers of the robot's serial number in the backup filename (replace
XXXwith these numbers, e.g.,backup_112.zip). You can find the serial number on the typeplate located on the side of the UR control box, behind the two front doors of the MiR620 cabinet.
cd ~/Desktop
zip -r backup_XXX.zip .urcontrolThe install UR robot controller firmware is the following process (instructions from UR can be found here as additional info: install-new-image-all-types.pdf):
- Get a fresh SD card and a reader.
- Get the correct UR robot firmware from the UR-Download page.
- Watch out: Take the full robot image, not the update!
- Our robots run on the 5.X versions. For the 109, the 5.26.0 CB5.5 worked fine.
- Link: https://www.universal-robots.com/articles/ur/documentation/download-center/
- Do not take anything newer! The 10.X version did not work and will only work with a specific update process which we have not done atm.
- Flash the firmware to the SD card. (UR Description states to use Rufus on Windows. We have done that for 109 and it worked. Using e.g., balenaEtcher on Ubuntu might also work but was not tested so far.)
- Plug it into the robot and boot initially. You must do that. Copying the backups first on the SD card will result in the controller getting stuck on initial boot!
- Specify the Controller type. For the MiR UR-Controllers it's the DC variant. Then type in the serial number of the UR control. Then from the drop-down menu select "None" as the initial teach pendant.
- Wait until it finishes installation and rebooting.
- Shut down the robot controller.
- Take the SD card from the controller and put it back into the PC where the backup is located.
- Remove all existing files from the
.urcontrolfolder. Then copy the backup files from your.urcontrolbackup into the.urcontrolSD card folder. Also, copy the backed up programs into theprogramsfolder.Note: Ensure your partition is actually mounted at
/media/match/datafs. Adjust the paths in the commands below if your system mounted it elsewhere.sudo rm -rf /media/match/datafs/root/.urcontrol/* sudo cp -r ~/Desktop/.urcontrol/* /media/match/datafs/root/.urcontrol/ sudo cp -r ~/Desktop/programs/* /media/match/datafs/programs/
- Put the SD card back into the robot controller.
Note: Necessary configurations, for example network and so on, have to be made when the robot is fully back up and running.
Below is a comparison of the calibration parameters from each robot backup:
| Robot ID | Calibration Status | Joint Checksums | Key Delta Parameters |
|---|---|---|---|
| 109 | Linearised (2) | [0xa712f251, 0xa72c4825, 0xa624be31, 0xa9fa5302, 0xaa02f85f, 0xa9ee0fb7] |
Theta: [6.10e-08, 1.217, -1.291, 0.07348, 9.53e-08, -4.70e-07]A: [0.000138, 0.4007, 0.00181, 4.35e-07, 2.59e-05, 0]D: [0.000221, 917.86, -913.54, -4.312, -5.57e-05, -0.000989] |
| 112 | Linearised (2) | [0xb630883c, 0xb61f6e2e, 0xb5484b61, 0xb612c3a2, 0xb62bd7bc, 0xb61c0e94] |
Theta: [5.64e-07, -1.217, 1.212, 0.00484, -2.81e-07, -8.62e-08]A: [0.000127, 0.4006, 0.000150, 5.37e-05, -9.61e-05, 0]D: [-6.88e-06, 1935.67, -1935.34, -0.3315, -0.000104, -0.000962] |
| 113 | Linearised (2) | [0xb61a3636, 0xb61af4cd, 0xb53af3b5, 0xb633fe39, 0xb6079629, 0xb636b3f1] |
Theta: [3.67e-07, 0.4933, -0.5068, 0.0135, -6.68e-07, -9.67e-09]A: [7.79e-05, 0.07335, 0.000240, 9.50e-05, 5.33e-05, 0]D: [7.05e-05, 762.96, -762.00, -0.9590, -5.29e-05, -0.000951] |
| 117 | Linearised (2) | [0xb459a61e, 0xb45528a6, 0xb53963ab, 0xb41a0255, 0xb417126d, 0xb40d200b] |
Theta: [-4.30e-07, 0.1814, -0.2489, 0.06749, 9.59e-07, -8.13e-08]A: [0.000111, 0.01038, 0.001519, 5.71e-06, -4.56e-05, 0]D: [6.17e-05, 556.95, -562.19, 5.2409, -0.000201, -0.001058] |
| 118 | Linearised (2) | [0xb420f4ad, 0xb4409feb, 0xb553930a, 0xb411c00e, 0xb418cc4f, 0xb417175a] |
Theta: [-2.12e-08, 0.08526, -0.1634, 0.07814, -5.51e-07, 1.35e-07]A: [0.000119, 0.002574, 0.002024, -3.24e-05, 3.28e-05, 0]D: [0.000286, 76.762, -83.383, 6.6206, -0.000122, -0.000937] |
| 119 | Linearised (2) | [0xb455f77a, 0xb437b9f9, 0xb531fd6e, 0xb4249736, 0xb412c748, 0xb4159beb] |
Theta: [-2.02e-07, 1.1667, -0.8036, -0.3630, 6.26e-07, -6.46e-07]A: [3.599e-05, 0.37187, 0.03761, 2.029e-05, 8.37e-06, 0]D: [-3.65e-05, 435.77, -468.05, 32.2789, -9.01e-05, -0.000990] |
| 124 | Linearised (2) | [0xb422f034, 0xb426d1c5, 0xb51f078c, 0xb42cfe2c, 0xb4085ec0, 0xb60c5894] |
Theta: [-1.08e-07, 1.1680, -1.2557, 0.08772, 5.66e-07, -7.58e-07]A: [8.745e-05, 0.37264, 0.002494, -2.41e-05, 5.98e-05, 0]D: [0.000127, 597.79, -604.85, 7.0589, -0.000134, -0.000920] |
| 125 | Linearised (2) | [0xb435bb63, 0xb441d7b1, 0xb5198b08, 0xb40d9f92, 0xb41b2338, 0xb42edc4e] |
Theta: [-1.42e-07, 0.6731, -0.8223, 0.1492, 1.22e-06, 4.74e-09]A: [0.000105, 0.13394, 0.006690, -1.038e-05, 1.028e-05, 0]D: [0.000248, 681.73, -696.41, 14.6725, -0.000155, -0.000962] |
0= notInitialized1= notLinearised2= Linearised (fully calibrated)
- delta_theta: Joint angle offsets in radians
- delta_a: Link length offsets in meters
- delta_d: Link offset corrections in meters
- delta_alpha: Joint twist angle corrections in radians
- joint_checksum: Unique identifiers for each joint's calibration
- joint_raw_offset: Raw encoder offset values
Each backup contains:
calibration.conf- Main calibration configurationcalibration_trajectory_*.ct- Calibration trajectory files for different robot modelsjoint_motor_calibration_id*.txt- Individual joint motor calibration datarobot_calibration_summary.txt- Summary of calibration resultscalibration.log- Calibration process log
If you encounter issues after restoring calibration:
- Double-check file locations: Ensure files are in the correct
.urcontroldirectory - Verify file permissions: Files should be readable by the Polyscope system
- Check robot behavior: Test in reduced speed mode first
- Restore from backup: If issues persist, restore your original calibration
For critical production systems, consider contacting UR support before making calibration changes.