====== Self-Contained Multisensorial Calibration ======
====== Week 6 Calibration introduction ======
The goal of this lab is to teach you about self-contained calibration of the robots and refresh your knowledge about numerical optimization. The presentation can be found [[https://docs.google.com/presentation/d/1An423k6ZGZjcWtu1DNVEVk8Y6fMU3t2IXFA7XKe_k6o/edit?usp=sharing|here]] and additional scripts for the Levenberg-Marquardt algorithm [[https://drive.google.com/drive/folders/1RckdxQR2HWfzMXExA1Wd7cxwqN514A_x?usp=sharing|here]].
Calibration papers from our group:
[[https://ieeexplore.ieee.org/document/9555803|J. Rozlivek, L. Rustler, K. Stepanova and M. Hoffmann, "Multisensorial robot calibration framework and toolbox," 2020 IEEE-RAS 20th International Conference on Humanoid Robots (Humanoids), 2021, pp. 459-466.]]
[[https://www.sciencedirect.com/science/article/pii/S0736584521001307?via=ihub|K. Stepanova, J. Rozlivek, F. Puciow, P. Krsek, T. Pajdla, M. Hoffmann, Automatic self-contained calibration of an industrial dual-arm robot with cameras using self-contact, planar constraints, and self-observation, Robotics and Computer-Integrated Manufacturing, Volume 73, 2022.]]
[[https://ieeexplore.ieee.org/document/8637801|K. Stepanova, T. Pajdla and M. Hoffmann, "Robot Self-Calibration Using Multiple Kinematic Chains—A Simulation Study on the iCub Humanoid Robot," in IEEE Robotics and Automation Letters, vol. 4, no. 2, pp. 1900-1907, April 2019.]]
[[https://ieeexplore.ieee.org/document/6907178|A. Roncone, M. Hoffmann, U. Pattacini and G. Metta, "Automatic kinematic chain calibration using artificial skin: Self-touch in the iCub humanoid robot," 2014 IEEE International Conference on Robotics and Automation (ICRA), 2014, pp. 2305-2312.]]
[[https://ieeexplore.ieee.org/document/9555806|L. Rustler, B. Potocna, M. Polic, K. Stepanova and M. Hoffmann, "Spatial calibration of whole-body artificial skin on a humanoid robot: comparing self-contact, 3D reconstruction, and CAD-based calibration," 2020 IEEE-RAS 20th International Conference on Humanoid Robots (Humanoids), 2021, pp. 445-452.]]
====== Week 7 Robot calibration framework ======
This lab is an introduction to a Matlab toolbox which provides a solution to the multi-chain calibration of a general robot by combining multiple calibration approaches.
You will need a Matlab (version at least 2020b). You can install Matlab from [[https://download.cvut.cz/en/campus-wide-matlab/|CTU download page]]. You also need to install the Optimization toolbox and Symbolic toolbox (all is included in the campus-wide license). If you do not want to install anything, you can use [[https://matlab.mathworks.com|Matlab online]]. However, you still need to activate your Mathworks account as described on [[https://download.cvut.cz/en/campus-wide-matlab/|CTU download page]].
There is no hardware acceleration support in Matlab Online, so some 3D plots may be slow.
==== (Linux) Matlab installation tips ====
* If you get download error in the middle of installation, you can download full ISO
* in the download page, select ''Get ISOs'' instead of ''Install products'' in ''I WANT TO'' drop box
* The default path for installation (/usr/local/MATLAB) belongs to root, so you will probably have to run the installer with ''sudo''. However, several errors can occur:
* licence problem -> do not forget to select correct user when prompted during the installation---insert your username (can be obtained from command ''whoami'') for normal run of Matlab or ''root'' if you want to run matlab with sudo (not recommended).
* no installation window after ''sudo ./install'' -> run ''xhost +'' first and than repeat
* programs fail to run because permission of files in ''/home/username/.matlab/R202*'' -> get to the folder ''.matlab'' (''cd ~/.matlab'') and run ''sudo chown -R username:username R202*'', which will change group of the Matlab to your username (can be obtained from command ''whoami'')
* the ''*'' in ''R202*'' stands for your matlab version. If you downloaded it now, you will probably have ''R2022a''
We will use [[https://github.com/ctu-vras/multirobot-calibration|Multisensorial calibration toolbox]] developed in our group. To install it, you can follow the instructions in [[https://github.com/ctu-vras/multirobot-calibration/blob/master/README.md|README]]. The preferred (and the most easy) way to install is to download the [[https://github.com/ctu-vras/multirobot-calibration/releases/latest/download/install_MRC.m|installation script]] and run it in your Matlab (or Matlab online).
Closing the GUI will reset the paths to the toolbox. It is a Matlab inner thing, which cannot be controlled. If you want to use the toolbox from code after you close the GUI, please run ''startup;'' in the Matlab command line. The GUI itself is not affected by the command at all, it will work with/without it.
An introduction can be found in the presentation [[https://docs.google.com/presentation/d/1aFdBj8WVjFRKLjGEJCFA1kf9_VMm42yXRHqjU8P_hbE/edit?usp=sharing|here]]. Everything else is described in [[https://github.com/ctu-vras/multirobot-calibration/blob/master/README.md|README]].
We recommend to start with [[https://github.com/ctu-vras/multirobot-calibration/blob/master/README.md#examples|Examples]].
===== HW 4 =====
* [[courses:hro:tutorials:hw:hw4|Calibrate robot kinematic parameters from self-contact and self-observation information]]
* PDF with common mistakes is located {{ :courses:hro:tutorials:hro_hw4_common_mistakes.pdf |here.}}