Offboard Control with SLAM for indoor flight using Intel Aero Ready to Fly

Hi all devs.

We are currently a team of researchers at Aalborg University looking into indoor navigation using SLAM on the recently launched Intel Aero Ready to Fly drone equipped with an STM32 running DroneCode (PX4 stack) and an Intel Atom processor running the Linux Yocto project.

The drone is intended to fly and navigate autonomously indoor in GPS denied environments by the help of the forward pointing camera and RealSense 3D depth camera.
We are about to implement and integrate our SLAM positioning algorithm but need some suggestions/recommendations on how to control the Pixhawk the right way.

We are aware of ROS and MAVLink (+MAVProxy) which we intend to use. The question is now how to affect the Pixhawk and move the quadcopter according to the positioning, path planning and obstacles?
In general our questions looks a lot like what they mention in this video: PX4-ROS Interoperability Demo with Offboard EKF, PX4Flow and Mavros - YouTube

  1. The first approach we considered was to enable the RC override and control the quadcopter in STABILIZE (ATTIUDE) mode by setting references to the angles/attitude of the drone based on the SLAM position estimate.
    One expected downside of this is that we might not be able to fully automate this as we don’t seem to be able to initiate a TAKEOFF without GPS even with RC override?

  2. The other approach which would not allow us to design the controller but offload the position control to the tuned Pixhawk would be to inject GPS position data into the Pixhawk using either VISION_POSITION_ESTIMATE or HIL_GPS.
    Would you recommend this option and if so which of the injection methods should we use? Keep in mind that we only expect to get position estimates (x, y, z) from our SLAM algorithm and would rely on the attitude estimation from the EKF inside PX4.

  3. Finally if we decide to do the position control ourselves instead of injecting “emulated” GPS signals we would need to do some black-box System Identification of our quadcopter with the Pixhawk.
    We have access to a VICON motion capturing lab though currently set-up for use with MATLAB. Are you aware of any MAVLINK tools for MATLAB or Simulink?

We are looking forward to your suggestions and answers.

Kind regards
Thomas Jespersen

2 Likes

Hi Thomas
I have been working with a similar setup. I used the mocap package to send the position the FC. In order to be able switch to POSCTRL without GPS you need to disable the parameter LPE_GPS_ON.
For controlling the UAV i would recommend the offboard mode using the local position setpoint (set_position_target_local_ned).