First, every calibration is different for every robot, and every type of floor; so don't do the process on a concrete floor, if you're going to work on a carpet.
This is the method I use (to try) to calibrate AIBO.
First, open "Walk Remote Control Behavior" as you must modify sliders to try different x,y, and a velocities in the calibration process. Second open a telnet connection at port 59000 (>telnet your.AIBO.IP.dir 59000) in a console, and then log locomotion events at it. You must go to StatusReports->EventLogger, and mark "locomotionEGID". This way you can see x,y,and a (theorical) velocities of the robot, as you move sliders. As an alternative to the later, I've modified "WalkGUI.java" so, every time I move the slider, it prints the selected velocity; the advantage of this last option is you can see your velocity changes with AIBO stopped (E-stop=ON).
Then, we proceed with the calibration process. Goto File Access->WalkEdit->calibration. This is very IMPORTANT: prior to take any measure, you must CLEAR the actual calibration matrix. To do this, LoadCalibration->Clearcal.txt. Then you can begin with measurement collection.
Go to "Interactive Calibration->Take Measurements". Here are 6 categories, in every one you must choose two (or one) velocity parameters, and compensate the other one:
-Fordward/Strafe: You must choose one velocity for each F and S parameters. This way, AIBO will move with a diagonal movement. You must change R parameter to achieve AIBO facing is constant along the whole movement. So if you see that there is a light rotation to the right, you must give R a positive (left) value to compensate. When you're sure rotation is NULL, you must measure the movement size (I prefer cartesian coordinates). I put a mark on the floor (for example, a point where a rear leg step on) and turn E-Stop Off, so AIBO begins to move. When rear leg pass over the mark, I push "Go" in the controller menu. Wait a little, and then push E-stop. Then you can measure x and y distance from your mark to the point where AIBO's rear leg stopped (use a ruler), and introduce the distances as ControllerGUI's ask them. Distances are in cm, and x is positive when goes left.
Repeat all with almost 6 different F and S parameter set (and corresponding R to cancel rotation).
-Fordward/Rotate: You must choose again F and R parameters, and modify S to compensate. This time you must seek that AIBO moves around a circle instead of an spiral (the last means that there is a S drift, you must compensate). It helps to paint a circle and look if AIBO covers it. I usually make AIBO to do a semicircle movement, so if AIBO is facing right at one end of the semicircle, it must be facing left at the very other end of the semicircle. If at the other end there is an angle in AIBOS' facing, it means you must compensate S, as it is moving on a decreasing, or increasing spiral. When AIBO behaves as explained, put again a mark in the circle, push e-stop off, and pusg "Go" when AIBO step on the mark; wait, and push e-stop on, when AIBO reaches the opossite end of the mark in the circle. ControllerGUI will ask for diameter of semicircle (in cm), and angle (if you're using a semicircle you must introduce 180 as it is in degrees). You can also measure complete circles, trying that AIBO begin and end at the same point (this time you must input 360 degrees). Repeat the process with different F and R parameters (and corresponding S to compensate).
-Strafe/Rotate: This is similar to Fordward Rotate. First, chose only an S value (R=0 and F=0) and seek that AIBO is purely strafing, so there is nor forward neither backward movement. If there is any, compensate with F/B slider. Then choose a rotation (R) value, so AIBO move in a circle, but strafing, facing outside the circle. Repeat the same process as above, and (I think) introduce diameter of the circle and angle. It helps again to measure a semicircle (so angle is 180 degrees).
Repeat the process with different S parameter, compensate with F, and choose different R values too.
- Backward/Rotate: I haven't done any of this but i think they're similar to F/R and F/S.
- Backward/Strafe:
- Rotate: This is the easiest to understand, but probably the hardest to tune. You must choose an R value, and then compensate with both S and F so AIBO turns only around its chest, and there is no displacement. Bear in mind that an S compensation usually means a corresponding F. Try with different R parameters to obtain almost 6 data sets. This time, ControllerGUI only asks the angle of the circle which AIBO covers (again is easier when you push "Go" and then E-Stop when multiples of 180 degrees have been covered).
When you've a set of almost 6 measurements for any movement class, you must choose "Save" option. You will obtain 5 files in memmory stick, containing the set of measurementes, that you must copy to your PC. Then you have only to run Matlab file in "tools/WalkCalibration.m", to obtain a file that contains the calibration matrix. you can name this file as "WALKCAL.TXT" and load it into memmory stick ("data/motion"), so it loads automatically when you shut-on AIBO, or you can name it with other name, "NEWWCAL.TXT" but, this case you must manually load this calibration file every time you use AIBO.
I'm having problems with WalkCalibration Behavior as sometimes AIBO shuts off (and battery is full!) or crash with no reason (Soundplay Object !?!? at crashdebug), so I advise you to save every set of data at every class of measurement as, this way yo won't lost your work. You can merge data taken at different times and from different files.
I hope it helps (and if Ethan see any mistake in the whole process, please correct it!!).
Ignacio Herrero Reder / Tl. +34-95.213.71.60 Dpto. Tecnologia Electronica / Fax: +34-95.213.14.47 E.T.S. Ing. Telecomunicacion / Universidad de Malaga / nhr@... Campus Universitario de Teatinos / 29071 Malaga, Spain / http://www.dte.uma.es
Rutger wrote:
Hello,
as a student i'm trying to create a localisation background behavior
with Tekkotsu based on the Monte Carlo Localisation method. One of my
first steps in designing this behavior is to do a research on the
precision of the Aibo's locomotion. I already discovered that there can
be great disceprancies between the given commands and the final result
in movement (systematic errors..etc). I'd like to start using the Walk
Calibration module to get this better and finally make a study of a
well calibrated Aibo for use in the Monte Carlo Algorithm.
But i'm having trouble understanding the exact procedures for the
calibration process. Does anyone happen to know a calibration manual of
some sort to guide me through the process?
Regards,
Rutger
.