I have the following parameters on my quad:
my quad stream the video from a camera via WiFi like your, only it is DIY:
- little quad (130mm) with RevoMini FC with Arducopter 3.6 rc7
- on the quad there is a Raspberry Pi 0 with Raspberry Cam streaming video to Desktop PC
- on Desktop PC there is ROS Kinetic with mavros and aruco_mapping
- the video is streamed with gstreamer and on the PC the node gscam get this stream and publish camera/image_raw and camera/camera_info topics
- on the PC aruco_mapping (slightly modified by me) subscribe to above topics and publish a camera_pose message to the mavros/vision_pose/pose topic.
I forget to say that i send a SET_GPS_GLOBAL_ORIGIN and a SET_HOME_POSITION messages (similar to this) before sending vision position estimate.
When all this is running and I have the quad on my hand (disarmed) with camera pointing to a marker I can see /mavros/vision_pose/pose and /mavros/local_position/pose that moves in a coherent manner.
When I try to arm and fly over the marker if I switch to Loiter mode the quad drift and is not stable.
One problem I see is a not so good video quality and when I fly over the marker the marker itself is detected intermittently and not in a smooth an continuous manner as needed. I have to work to improve the quality of the streamed video and perhaps to redo a camera calibration procedure.
Another thing that I did not understand well is if I’m using the correct transformation when I send the message /mavros/vision_pose/pose, I am talking about the ENU NED stuff as explained here under " Asserting on Reference Frames".