Integration of ArduPilot and VIO tracking camera (Part 2): Complete installation and indoor non-GPS flights

  • The T265 has stereo fisheye cameras, so in theory you can compute depth from T265 images using OpenCV, then perform obstacle avoidance in some way. In practice, the depth quality will not be reliable enough for obstacle avoidance so you would be better off just use a dedicated sensor appropriate for this task.
  • Object avoidance with rotating LiDAR has also been long available, so that would be the go-to solution. There are some 2020 GSoC ArduPilot projects related to obstacle avoidance (using depth camera as well). You can follow and even become a beta tester to boost the progress yourself.

Thanks for your advice …
I do have livoxtech Md-40 Lidar on stock … I am willing to use same lidar for the purpose your mentioned … However after going from internet search i havent seen any such work (using Livoxtech with Pixhawk etc) … So let say if i am use The same lidar how should i start proceeding …

The wikis are your go-to starting point:

For issues related to using the lidar, you can open a new issue as well as search among other posts on the site related to it.

Thanks i ll open up new issue for Lidar

Hi @LuckyBird, I got Bad Compass Health issue before Arming. Do you have some ideas on that?


Hi @LuckyBird, when I try to set EKF home, Mission planner says Error: No SRTM data for this area.

If I close the window and try again, the message says EKF2 refusing set origin.
Hope to get some suggestions.

@cnpcshangbo, I think this, “No SRTM data for this area” message is a Mission Planner issue. It may help to:

  • zoom in more
  • ensure you have a good internet connection
  • check that the altitude appears in the top right of the Plan screen as you move the cursor around
1 Like

Hi @rmackay9,

  • I have tried to zoom more, but it doesn’t help.
  • I am able to connect to Google Map. I also tried to use my cell phone hotspot. However, they don’t help.
  • I changed to the Plan tab and moved my mouse on the map, the altitude appears in the top right is always 0.00m.
  • I also tried to use the python script to set home, however, EKF2 also refused.

    Do you have some ideas on how to get some clues?


Very strange, maybe raise an issue on the MP issues list regarding the altitudes not appearing. I strongly suspect that the issue is the internet connection is not good, you’re not zoomed in enough or perhaps you haven’t waited long enough for the altitude data to be downloaded. I’m really not sure.

Here’s an example of latest beta MP running in Japan and showing the altitudes.

@cnpcshangbo Note that the procedure goes something like this:

  1. Power up,
  2. Launch all the nodes / run all the script,
  3. Wait to confirm the position data (via vision-position-estimate message or other message types) is being received (must be available before you can set EKF origin),
  4. Then you can set EKF home via ros service / python script / MP.

@cnpcshangbo regarding the “no SRTM data” with MP: you can go to the Plan tab, zoom in to an area on the map that you want to set home, right click -> Map tool -> Prefetch. After that the SRTM will probably be stored locally.

Thanks @rmackay9 . MP shows SRTM data today. Maybe my laptop and MP needed a reboot.

1 Like

Hi @rmackay9 and @LuckyBird, I am able to set EKF home now. I failed to set EK2_GPS_TYPE=3.
Thanks for your help.

1 Like

@cnpcshangbo, excellent! great that it’s working.

Nice to meet you.
It’s very interesting this subject so, I’m trying to following this way.
But, I can’t find “VISION_POSITION_ESTIMATE” messages on my mission planner mavlink Inspector.
I have verified T265 node, MAVROS node, vision_to_mavros node status and that’s all working well as I know.
What is the problem?
this is my mavlink inspector capture image.
Anybody help me…


I found the cause of this problem.

The following MAVLink “vision” messages are not currently supported by PX4: GLOBAL_VISION_POSITION_ESTIMATE (opens new window), VISION_SPEED_ESTIMATE (opens new window), VICON_POSITION_ESTIMATE

Thy using the github master version of PX4 firmware. And if that does not work, try using the github master version of Ardupilot firmware. That will work for sure.

1 Like

Hi, @LuckyBird ,
since I want to pass quaternions, I am planning to use ATT_POS_MOCAP which means I’ll have to publish data on /mavros/mocap/pose topic is this topic supported by ardupilot

and since /mavros/vision_pose/pose already takes in quaternion, is there a need to use above mentioned topic?


I would like to thank you for this incredible work, you made our life easier.

I’m trying to implement an algorithm to follow a wall outdoor in a gps-less environment, for that, i integrated a Realsense d415 on an nvidia jetson xavier for SLAM position, i used mavros and rtabmap algo to calculate and send vision_position_estimate, and then made few scripts to guide the drone where-ever i want.

The problem is: Slam is not working properly, trajectory on MP is different from real one, and it seems that this problem is coming from vision_position_estimate YAW value not correct, it can also be seen on MP, the heading is incrementing permanently.
Also, the message bad vision apears on the MP hud

Do you have an idea to solve this issue?

Here’s a screen shot:

Thank you in advance

Hello! We are working to implement this project and seem to be having some issues and the VISION_POSITION_ESTIMATE topic is not showing up on ArduPilot. Are any changes made to the apm_config.yaml file? Do we need to create a transform between camera_link and base_link? It would be very helpful if someone could provide a tf_tree and rqt_graph of a working example? I just want to make sure we have everything working as it should. Thanks for all of the help and the awesome project!