The tracking camera (visual odometry) is not ready or disagrees with the attitude
What ArduPilot says:
- yaw diff N.N deg (>10)
- VisOdom: yaw shifted N to N deg
- roll/pitch diff N.N deg (>10)
- VisOdom: reset
- PreArm: VisOdom: …
- out of memory
Also explained here: 2 more
- check VISO_ORIENT parameter
- waiting for AHRS attitude
A tracking camera (VISO_TYPE not 0) gives the EKF, ArduPilot's position and attitude estimator, position and attitude without GPS. Before arming, the words after “VisOdom:” say what is wrong. “not healthy”: no data from the camera. “out of memory”: its driver could not start. “check VISO_ORIENT parameter”: an orientation the driver does not support. “roll/pitch diff” and “yaw diff”: the camera's attitude differs from ArduPilot's by more than 10°. “waiting for AHRS attitude”: the EKF has no attitude yet. “VisOdom: reset” and “yaw shifted” report that the camera restarted its tracking and was lined up again.
What to do, most likely first
The camera or its companion computer is not sending yet.
CheckThe reason is “not healthy”; the companion computer is still booting or its link to the flight controller is down.
FixWait for the companion computer to start, and check its cable and the serial port settings.
The camera is mounted in another direction than
VISO_ORIENTsays.CheckThe reason is “roll/pitch diff” with a large angle, or “check
VISO_ORIENTparameter”.FixSet
VISO_ORIENTto how the camera really points (forward, down and so on) and reboot.The camera's heading has drifted from ArduPilot's, or its tracking jumped.
CheckThe reason is “yaw diff”.
FixUse the ground station's or a switch's “align visual odometry yaw” function, or reboot the camera with the aircraft still, in a room with visible detail and good light.
Parameters to look at
| Parameter | What it is |
|---|---|
VISO_TYPE | Visual odometry camera connection type |
VISO_ORIENT | Visual odometery camera orientation |
VISO_DELAY_MS | Visual odometry sensor delay |
EK3_SRC1_POSXY | Position Horizontal Source (Primary) |
EK3_SRC1_YAW | Yaw Source |
Where to do it:Starting Parameters
The code that sends it
yaw diff N.N deg (>10)
libraries/AP_VisualOdom/AP_VisualOdom_IntelT265.cpp AP_VisualOdom_IntelT265::pre_arm_check() · Open in ArduPilot Copter-4.7.1
VisOdom: yaw shifted N to N deg
libraries/AP_VisualOdom/AP_VisualOdom_IntelT265.cpp AP_VisualOdom_IntelT265::align_yaw() · Open in ArduPilot Copter-4.7.1
roll/pitch diff N.N deg (>10)
libraries/AP_VisualOdom/AP_VisualOdom_IntelT265.cpp AP_VisualOdom_IntelT265::pre_arm_check() · Open in ArduPilot Copter-4.7.1
VisOdom: reset
libraries/AP_VisualOdom/AP_VisualOdom_IntelT265.cpp AP_VisualOdom_IntelT265::handle_voxl_camera_reset_jump() · Open in ArduPilot Copter-4.7.1
And 4 more messages, sent from the same places.