Page 1 of 1

[Roadrunner as a sensor] for Robotics with TDoA

Posted: Wed May 22, 2019 9:37 am
by AlexisTM

We made the roadrunner usable as a sensor for Robotics purpose for further filtering using the main Kalman filter with the correct model. (cra-ros-pkg/robot_localization).

The system includes: Differences to the main branch:
  • Uses the complementary filter instead of the kalman filter to have a more (much more) stable IMU (see: bitcraze/crazyflie-firmware/issues/426
  • Disables the controller (using NO_CONTROLLER)
  • Enables the UART2 at 1000000 baudrate by default
  • Sends the TDOA measurement over UART2 (TDOA_MEASUREMENT message), by default max frequency (max 400Hz, typical 200Hz)
  • Sends the IMU raw measurements over UART2 (GYRO_ACC message), by default 100Hz
  • Sends the IMU quaternion computed over UART2 (QUATERNION message), by default 20Hz

Flash the following firmware using the following custom firmware using this implmenetation available at:
umdlife/crazyflie-firmware#u2_feature_custom_kalman, install the TDoA engine, and connect the system via UART to your computer.

Code: Select all

mkdir -p ~/Tools
cd ~/Tools
git clone --recursive -b u2_feature_custom_kalman
cd crazyflie-firmware
make PLATFORM=tag clean
make PLATFORM=tag -j
# Put the board in DFU flash mode before this action, by holding the ON-OFF-BOOT button for 5 seconds while booting and once it starts blinking fast, press the button once more. 
make PLATFORM=tag flash_dfu
# the PLATFORM=tag option is defaulted to your value after one call.

You can then reboot the roadrunner and use the

Code: Select all

mkdir -p ~/Tools
cd ~/Tools
git clone
cd MultilaterationTDOA
sudo python2 install

cd ~/Tools
git clone
cd roadrunner_mavlink/scripts

We wanted to use the roadrunner as the localization and IMU node of our AGVs with TDoAv3 localization.

Yet, as it is a early release product we faced many issues:
- Overshoot of the position due to high acceleration and kinematics of a copter for the Kalman and not an AGV
- USB disconnections due to an old USB driver (fixed in master)
- Calibration of the IMU on boot was not working due to vibrations of the Lidar on the AGV (custom fix: if calibration fails, read it from the EEPROM)
- Unreliability of the Quaternion due to the TDoA fusing: ... issues/426