## For instruction on writing tutorials
## http://www.ros.org/wiki/WritingTutorials
####################################
##FILL ME IN
####################################
## for a custom note with links:
## note =
## for the canned note of "This tutorial assumes that you have completed the previous tutorials:" just add the links
## note.0=
## descriptive title for the tutorial
## title = Calibrating the robot IMU
## multi-line description to be displayed in search
## description = This tutorial explains how to calibrate the robot IMU (Inertial Measurement Unit)
## the next tutorial description (optional)
## next =
## links to next tutorial (optional)
## next.0.link= [[ric_robot/Tutorials/Calibrating the robot RC|Calibrating the robot RC]]
## next.1.link=
## what level user is this tutorial for
## level= BeginnerCategory
## keywords = 
####################################

<<IncludeCSTemplate(TutorialCSHeaderTemplate)>>

To calibrate the IMU sensor: ric_robot/ric_calib service is used to enter calibration mode and saving the data. The com field in the service request can range from 1 to 4 as follows:

com=1 – Enter magnetometer calibration mode.

com=2 – Enter accelerometer calibration mode.

com=3 – Save current calibration data.

com=4 – Exit calibration mode.

com=5 – Erase calibration data.

For example to calibrate the magnetometer of Lizi 1 robot use:
{{{
$ rosservice call /lizi_1/ric_calib "com: 1"
}}}
After entering calibration mode, move the robot around and then send com=3 request to save the data, followed by a com=4 request, as follows:
{{{
$ rosservice call /lizi_1/ric_calib "com: 3"
$ rosservice call /lizi_1/ric_calib "com: 4"
}}}

If something went wrong, just send com=4 request to discard the data.
The calibration data is stored in the EEPROM.


## AUTOGENERATED DO NOT DELETE 
## TutorialCategory
## FILL IN THE STACK TUTORIAL CATEGORY HERE