Visual Odomentry doesn't work

Hey
I wanted to set the VISO_TYPE on my 4.1.2 Arducopter (FC: Kakute F7). But the problem is that i don’t see this parameter in the full parameter list. Does somebody know why?
Thanks for helping me.

The default KakuteF7 firmware does not include Visual Odometry, due to flash memory limitations - see Firmware Limitations on AutoPilot Hardware — Rover documentation.

You will need to use the custom firmware generator (https://custom.ardupilot.org/) and ensure that AHRS->Visual Odometry is selected.

2 Likes

Thank you! That worked. Now I have the problem, that the connected ZED Camera sends the position but the drone in the MissionPlanner Map doesnt move.

I’ve set the following parameters:

  • set AHRS_EKF_TYPE to 3 (means use EKF3)
  • set EK2_ENABLE to 0 (disable EKF2)
  • set EK3_ENABLE to 1 (enable EKF3)
  • set GPS_TYPE to 0 (disable the GPS)
  • set VISO_TYPE to 1 (enable visual odometry)
  • set EK3_SRC1_POSXY to 6
  • set EK3_SRC1_POSZ to 1
  • set EK3_SRC1_VELXY to 6
  • set EK3_SRC1_VELZ to 6
  • set EK3_SRC1_YAW to 6
  • EK3_SRC2 and EK3_SRC3 are configured the same way
    Although I disalbed the GPS_TYPE it still displays “GPS: No GPS”. Had I forgot a parameter?

This are the messages I’m sending from my custom code which is connected to the zed camera. When I stop sending these the fc show the error “Bad Vision Position”.

Do you see the vehicle on map?
If not, can you try setting Home using mouse right button and set EKF Home on Mission Planner

I set the EKF Home on Mission Planner but then the drone is not moving on the map even we are moving the drone with the camera. But the GLOBAL_VISION_POSITION_ESTIMATE values change.
image

Looks like you have something wrong in your message definition or on camera to body to world transform.

What do you mean with “on camera to body to world transform”? Or what would be the right message definition?

I cannot talk for VISO_TYPE 1 but for type 2 (T265), @LuckyBird has made a detailed explanation on Frame coordinates:

1 Like

Do you know if the VISION_POSITION_DELTA is required to send?


I saw that in the example the camera is on the same vehicle. Could that be the problem, becouase in our system the camera is a different vehicle?

It is for T265 , here is the WIP from @rmackay9

Unfortunatly not. We tried to change the vehicle id (1) and the comp id (0) but it didn’t solved the problem.