strands-project / scitos_robot

Everything related to the STRANDS robot hardware can go in here
0 stars 10 forks source link

Calibrate Odometry: How? #19

Closed marc-hanheide closed 7 years ago

marc-hanheide commented 10 years ago

Is it possible to calibrate the odometry of the robot? We discovered a systemic error in the odometry (the robot is accumulating rotation even if it is not rotating). @gestom and @cdondrup know the details. It would improve mapping and localisation if this systemic error could be avoided.

cburbridge commented 10 years ago

I have not seen this on Bob, does it happen all the time or just occasionally? At what rate does it change?

marc-hanheide commented 10 years ago

I don't know the details, @gestom should.

gestom commented 10 years ago

Hi,

let me describe our observation during Linda's autonomous runs. By odometry, I mean the numbers reported directly on Linda's status display located close to the main (key) switch.

Let Linda start on the charging station with her odometry reset, i.e. 0,0,0. After the patrolling run, which basically consists of undocking, going through four waypoints and docking with the station (i.e. reaching the starting position), her odometer reports her heading as something like 12°+-2°. Every consequent patrolling run increases the reported heading approximately by this value. The x,y values behave similarly. Therefore, most of the odometric error is actually systematic and is probably caused by discrepancy of the real and assumed distance of Lindas wheels.

IMHO, this issue is difficult to correct in ROS simply because error in heading affects the x,y values as well. I assume, that the odometry calculation is actually realized by some microcontroller in Linda's base. The question is if we can adjust the imprecise constant by configuring this microcontroller.

Jailander commented 10 years ago

Hi, To illustrate this a little more, you can see in these images how the "world rotates" every time Linda does a patrolling run is we don't reset the odometry before she starts it.

2d_30-08-13-11-20 2d_30-08-13-11-25 2d_30-08-13-11-30 2d_30-08-13-11-35

chmartin21 commented 10 years ago

The odometry calculation is realized within a FPGA in the robots base. The SCITOS robots don't have an option to calibrate the odometry. As on all mobile robots, a certain amount of such errors are "normal". Your localization software should be able to deal with this errors. Which localization are you using? Can you make the same test on all (affected) robots? Can you also tell us the serial number of the robots?

marc-hanheide commented 10 years ago

@chmartin21 just to be clear, it's not a big problem and our AMC localisation can well deal with it. Of course errors in odometry are normal and well expected. But as we discovered the error to be systematic we thought there is probably an easy way to minimise the error. This is all on Lincoln's robot (don't know the serial number as I'm not in the lab ATM).

gestom commented 10 years ago

Hi, I agree that it's not a major problem for us. Still, eliminating this systematic error might increase the odometry precision tenfold. Since the odometry is calculated by a FIELD PROGRAMMABLE Gate Array, then it's actually possible to change it, right ?

chmartin21 commented 10 years ago

Actually, all your robots should be equipped with an additional gyroscope, which helps to reduce especially the rotation error. Due to some problems with our suppliers, only the robots in Aachen and Stockholm are equipped with the gyroscope at the moment. We will deliver the gyroscope modules for the other robots as soon as possible. The modules are already here. I assume, that the will send to you within the next week.

marc-hanheide commented 10 years ago

Ah! That's exciting news indeed! @gestom and @tduckett will love to hear that! Thanks.

marc-hanheide commented 10 years ago

@chmartin21 I can confirm that at least LEEDS ( @agcohn ) and UOL ( @gestom @tduckett @Jailander @cdondrup ) have received the gyros. However, we don't know what to do with it. Can you provide assembly and setup instructions rather soon, as we have our STRANDS general assembly on Thursday and would like to discuss this there. Thanks!

chmartin21 commented 10 years ago

The assembly of the gyro module is quiet easy. Together with the robot, you should have received a small torx wrench, which fits in the smalls screws at the electronic box. Please do the follwoing: 1.) Turn off the robot. 2.) Remove one of the aluminum cover plates in the upper part of the electronic box (next to the EBC module) using the torx wrench. 3.) Put the gyro module into the free slot. 4.) Fix the gyro module with the torx wrench.

Thats it. There is no additional configuration necessary. The gyro module will be detected and used automatically by the motor controller unit.

gestom commented 10 years ago

While I hope that the gyro might suppress the odometry systematic error, it would be really nice to have a possibility for odometry calibration. As far as I understand the FPGA technology, it is still possible to modify the design.

cdondrup commented 10 years ago

Might be a stupid question, but what is the "Wall Mounting Bracket" and the "Adapter Upper Robot Case" for if you only put the gyro into the electronics case?

chmartin21 commented 10 years ago

@cdondrup : The additional parts have nothing to do with the gyro. As far as I know, for each robot some additional part where ordered. The flexible "Wall Mounting Bracket" can be used as an replacement for the fixed display mount of the robot. Furthermore, there was the requirement for mounting the PTU on top of robot without the head. I assume, that the "Adapter Upper Robot Case" is for that.

cdondrup commented 10 years ago

@chmartin21 we just installed the gyro but non of the 3 LEDs is responding. I thought that at least the "run" LED should be active if it is running.

chmartin21 commented 10 years ago

Before we shipped the gyro modules, all modules were tested. Please can you open cover of the slot right of the gyro module. Is there any LED visible or blinking on the module? Furthermore, please send us a photo which shows the assembled module in the robot, the serial number of the module and the serial number of you robot.

cdondrup commented 10 years ago

We checked and there are no LEDs on the module. Just the three on the cover plate for "Run", "Conn", and "Active" and none of them is lit. See images for requested information: 2013-10-07 13 45 29 2013-10-07 13 43 24 2013-10-07 13 43 44 2013-10-07 13 39 23 2013-10-07 13 44 16

chmartin21 commented 10 years ago

Strange. Somehow the module seems broken. I assume, that you already have tried another slot and the module is also not working there... Therefore, we have to check the module. Can you send it back to us?

cdondrup commented 10 years ago

Yes we also tried the slot directly next to the EBC. No change in behaviour. We will ship it back to you. Is Am Vogelherd 22 the right address?

chmartin21 commented 10 years ago

Our full address is: MetraLabs GmbH Am Vogelherd 22 D-98693 Ilmenau Germany

cdondrup commented 10 years ago

Thanks. It's in the mail and should be with you at the end of the week.

cdondrup commented 10 years ago

@chmartin21 out new gyro arrived today. We will try it out on the weekend because we can't stop the robot during the marathon. We will keep you in the loop if it works this time.

cdondrup commented 10 years ago

It seems the gyro is working now. The "Run" and "Conn" LEDs are lit.

cburbridge commented 9 years ago

I'm going to close this issue as everyone now has the gyro add-on card installed, and systematic odometry error has not been mentioned since so it must be ok. If you fee otherwise, re-open.

cdondrup commented 9 years ago

Actually we still have a systematic odometry error. It still drifts to the right.

marc-hanheide commented 9 years ago

still? Will we do anything about it?

cdondrup commented 9 years ago

@Jailander and @gestom should now if this is still an issue. But since there has been no activity, I guess it is.