Skip to content

Robust UAV State Estimation

huberya edited this page Feb 19, 2019 · 1 revision

Robust UAV State Estimation

This page explains how to reproduce the results presented in the paper.

Installation and Setup

To run the experiments you will need to install the huberya/reinitialization branch of rovio (https://github.com/ethz-asl/rovio) as well as the feature/fault_tolerant_fusion branch of this repository into the same catkin workspace. To setup a catkin workspace as well as installation of ros dependencies see: https://github.com/ethz-asl/mav_tools/wiki/Install-the-ASL-MAV-framework

Clone both repositories into the catkin workspace and build them using the catkin build command. The parameter files are located in ethzasl_msf/msf_updates/params/IROS and the launch files in ethzasl_msf/msf_updates/launch/IROS. For a description of the parameters see Parameter Files.

To create the plots you will additionally need to clone the msf_plotting_utility repository (https://gitlab.ethz.ch/huberya/msf_plotting_utility) not inside the catkin workspace.

The datasets used are available here: https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets The Vicon Hall 1 01 was used as the training set. The plots were create using the Vicon Hall 1 03 dataset.

Running Experiments

For more comprehensive description on running from rosbag files see the Setup for GPS and ROVIO page, especially the running from rosbag section. To reproduce the results from the paper:

  1. Make sure the code is compiled sucessfully.
  2. Start a roscore service roscore
  3. Tell ros to use simulation time rosparam set /use_sim_time true
  4. Start playback of your rosbag file USE --clock option rosbag play ~/V1_03_difficult.bag --clock --pause
  5. Switch into your catkin workspace and start MSF, Rovio and other nodes needed using a launch file. The launch files name are somewhat descriptive, so you should be able to choose the corresponding launch file for a given plot. roslaunch msf_updates launchfile.launch
  6. In a seperate terminal switch to the msf_plotting_utility and start recording all topics. cd msf_plotting_utility/ ./record_all.sh
  7. Unpause your rosbag playback (using "space") until MSF recieved at least one measurement from each sensor (it will generate an output once it did) and pause playback again
  8. Start the dynamic reconfigure server and use the "init" service call rosrun rqt_reconfigure rqt_reconfigure in the GUI go to your_sensor_name->position_pose_sensor and click on core_init_filter
  9. Unpause the rosbag playback. Now the system should run.
  10. Once completed, stop recording and use the plotting tools using the recorded bag. python pyplot_rosbag_positions.py recordings/recordedbag.bag