VOXL2 PX4 HITL with VIO
-
Hello community,
I am using VOXL2 with SDK 1.1.3 on my custom drone. I was going through the instructions for VOXL2 HITL with 1.14 PX4 version on this link and I found HITL VIO to be missing which was present in previous SDK 0.9.5. Is there a feasibility of this feature coming into docker based environment as mentioned in the instructions? My intent is to test GPS + VIO fusion. If this needs modified gazebo world with some plugins for sending fake VIO data that should do the job. Please let me know. -
@Aaky Yes, we are currently in beta testing phase of new 1.2.0 release which has what you are looking for. The newest voxl-px4 has command line options to tell it which types of position data to use. See: https://github.com/modalai/px4-firmware/blob/11ef78868ffcc8bf4fbe13f48488a0a46e7f9ae3/boards/modalai/voxl2-slpi/src/drivers/dsp_hitl/dsp_hitl.cpp#L292 for the 3 options.
-m
will include magnetometer data,-g
will include gps data, and-o
will include odometry data. So, for no GPS / Mag and VIO only just supply the-o
option. To start using this on SDK 1.1.3 you will need an updated voxl-px4 (http://voxl-packages.modalai.com/dists/qrb5165/staging/binary-arm64/voxl-px4_1.14.0-2.0.68_arm64.deb) and an updated libfc-sensor (http://voxl-packages.modalai.com/dists/qrb5165/staging/binary-arm64/libfc-sensor_1.0.5_arm64.deb). Also, without GPS / MAG you need to set the PX4 parameters SYS_HAS_GPS and SYS_HAS_MAG to 0 and the parameter EKF2_MAG_TYPE to 5. -
@Aaky We have modified gazebo. Our project is here: https://github.com/modalai/PX4-SITL_gazebo-classic/tree/voxl-dev. It includes our modifications and Docker build file. This will send the data for VIO. When you say "fake" VIO data, what do you mean? Are you trying to simulate a VIO "blowup"? BTW: HITL is a great way to test GPS + VIO fusion.
-
@Eric-Katzfey Thanks Eric for precise explanation. It definitely helps alot.
Yes I want to blowup VIO midflight and check EKF reaction and flight stability (Instead of taking hit on my hardware). For this I might need some modification in gazebo plugin file which is sending VIO data to VOXL?
So the commandline options -o , -g etc will directly start receiving data from gazebo or do we need to enable something on gazebo world file as well? Like for VIO some plugin would be essential? I worked on SDK 0.9.5 where gazebo had plugin for sending VIO data to VOXL2 in HITL mode. -
@Aaky Yes, that is why I pointed you to our repo for gazebo where we have everything setup properly. For VIO blowup I generally do that in the dsp_hitl driver in PX4 instead of in Gazebo. This is all just test code and not part of our release though. But you can add a new command to dsp_hitl to start a blow-up (quality goes to zero) and another to stop it. And while in a blowup you can provide fake odometry data. This fake odometry data will send the drone on a distinctive path such that you will be able to tell if it is following the bad data or if it drops it and picks up gps.
-
@Eric-Katzfey This sounds like perfect plan. I would implement this and get back for any queries. Thank you Eric!