I am currently working on simulation of ORBSLAM3 with Ardupilot SITL and Gazebo, non GPS
I was able to send the pose , but the pose sent was not correct since it started drifted after features being constantly detected
Sending data tf via /ap/v1/tf
My current setup includes
Ardupilot v4.8 dev (few debug changes made in AP_DDS and AP_VisiODom to track the external nav)
OrbSLam3 RGBD Camera (ROS2 wrapper of ORbSLam by RoboDude)
ROS2 Jazzy
Gazebo Harmonic
Ubuntu 24.04
How is the data flowing
terminal 1
iris_runway launch fiile
terminal 2
mavproxy --master=:14550
terminal 3
orbslam launch file
Steps I performed
1. Launch Iris runway file
2. Launch Mavproxy
3. Set origin using map module
4. Set the camera down using gimbal module
5. Start rgbd orbslam3 file (have edited the default gimbal model to have rgbd sensor)
6. Wait for using extenral nav data msg (using external nav 0 0 0) (the slam data gives 0 0 0 when there is no feature tracking, therefore when the drone is on ground it gives 0 0 0)
7. Then takeoff in guided approx 6m
8. After reaching 6 m stable feature detection starts of orbslam 3
9. As soon as it gets stable detection (non zero values send to visi odom) drone drifts
Possible Cause
1. Scale of Slam Data is wrong (unlikely since i am using rgbd , but could be that i havent set the depth map correctly)
2. Axes of Slam data is Wrong
3. Origin problem , shouldnt send slam data till it becomes stable
4. Some params are wrongly set by me
5. Is the time stamp wrong ?
Param File
mav.parm (30.4 KB)
Log Files (Can upload more logs if required)
OrbSlamLogs
Video Link of the drift
Drift with ORBSLAM3
Possible Solution
1. Dont send slam data when features are not visibile ,
takeoff in althold , as soon as features are detected ,
capture /ap/v1/pose/filtered first. use this values as anchor point ,
and then use transformation of slam data to ap/pose/fitlered and then send this