ethz-asl / rovio

Other
1.12k stars 506 forks source link

Wheel odometry measurements in rovio #165

Open koko19 opened 6 years ago

koko19 commented 6 years ago

Hi,

First of all thank you very much for making Rovio free to everyone :)

I want to use rovio on a ground robot equipped with wheel encoders. My questions are:

1) Are there going to be problems when using rovio on a ground robot primarily moving in 2D due to the lack of excitation in all axes?

2) In RovioNode.hpp I found callbacks:

They seem to receive some odometry measurements and use them to update the filter. However, why are they called groundtruth and not just odometry, is it OK to use wheel odometry with them? If not, can velocity callback be used with wheel odometry? Moreover, where is the transform between odometry and IMU frame set, is it assumed that it is identity and so that all measurements from odometry already have to be converted to the IMU frame manually?

bloesch commented 6 years ago

velocityCallback can be used for linear velocity measurements. Unfortunately there is no mean to pass the rotational velocity yet (partially due to the fact that it is required during prediction and would make the filter logic more complicated). Still, providing rovio with linear velocities can help a lot and increase robustness.

Concerning coordinate frames you can set the relative orientation between IMU and odometry measurements with qAM in the config file. But you will have to transform the velocity measurements to the IMU position beforehand (again related to difficulties with the rotational rate). You can set the accuracy of the velocity measurements in the VelocityUpdate block in the config file.

the groundtruthCallback are only for visualisation if I remember right.