Mavlink Camera Manager not appearing on QGC



  • I'm trying to run the Mavlink Camera Manager (https://docs.modalai.com/mavlink-camera-manager/), and I am not able to locate the camera selector drop down menu in the camera controls on QGC. Here are the steps I took in order. My VOXL version is 3.3.0, and voxl-suite is 0.4.6:

    1. Start the drone, connect the autopilot to QGC, and SSH into the drone over wifi
    2. Start the voxl-streamer for hires and tracking cameras.
    voxl-streamer -c hires
    voxl-streamer -c tracking -p 8901
    
    1. Start the mavlink camera manager voxl tool. 192.168.8.75 is my computer's ip address, and 192.168.168.1 is my drone's ip address (wifi).
    mavlink-camera-manager -g 192.168.8.75 -r rtsp://192.168.8.1:8900/live -n hires
    mavlink-camera-manager -g 192.168.8.75 -r rtsp://192.168.8.1:8901/live -i 1 -n hires
    
    1. Open QGC. I have this image that according to online guides, should have the dropdown menu for selecting cameras. However, no such dropdown exists.
      14091119-0a4f-4d22-9b66-477ed86b720e-image.png

    Where can I go from here? There seems to be communication from the qgc and the drone, because when I press the red button for camera trigger, I receive a "WARNING: Command system ID is not a match" from the ssh terminal where the mavlink camera manager command is running from the drone. Please advise on where I should go from here.

    P.S. By opening the application menu, I can access this menu where I can stream just one camera at a time. This doesn't require mavlink camera manager and not what I am looking for.

    ac9243f2-e0e9-4d26-b97d-7b2547b7d281-image.png

    I installed QGC quite recently using these instructions: https://docs.qgroundcontrol.com/master/en/getting_started/download_and_install.htmlv


  • Dev Team

    Can you try QGroundControl v3.5.6? That is what was used during development and the best place to troubleshoot this issue.



  • @Eric-Katzfey Same problem, but this time not even the camera sidebar appears. I can only stream video with the same above method. Screenshot from 2021-08-27 12-27-23.png



  • Can I have the exact steps the development team used on the QGC side? The documentation only provides instructions on setup the stream on the drone, not actually on how to use those streams with the QGC


  • Dev Team

    Do you have an active connection to the autopilot when you are attempting to use mavlink-camera-manager?


  • Dev Team

    You can also run mavlink-camera-manager with the debug flag -d to show the protocol messages being transferred to QGC.



  • @Eric-Katzfey I did have an active autopilot connection. I'll try running with the debug flag and see what I get



  • @Eric-Katzfey Here is my update regarding the Mavlink Camera Manager. I switched to QGC 3.5.6 (the latest does not in fact work with mavlink camera manager) and I was able to stream one camera using the mavlink camera manager, but only one camera at a time (no dropdown screen). I had all three cameras running simultaneously with voxl-streamer and mavlink-camera-manager, all with different ports and ids. Individually, I could stream each one to QGC, which would only show the first camera service that I would start up and not give me an option for switching to the others.

    Strange behavior: I had all three mavlink-camera-manager services running. I can only see the first camera I start on the QGC screen (lets say its hires, for this example). I then CTRL-C (stop) the mavlink-camera-manager process thats running the hires. However, the hires stream doesn't stop and continues streaming as normal. This continues until I stop all three mavlink-camera-manager services, which is when the QGC then shows a "Waiting for video" screen.

    Screen Shot 2021-09-02 at 3.35.48 PM.png

    When i tried clicking the double boxes in the top left corner, the QGC went into a non-responsive state and I had to force quit QGC.

    Commands I ran and error messages I received

    Screen Shot 2021-09-02 at 3.34.44 PM.png
    Screen Shot 2021-09-02 at 3.34.59 PM.png
    Screen Shot 2021-09-02 at 3.38.02 PM.png

    QGC error message (this was repeated multiple times when running more than one stream, up to 4):
    Screen Shot 2021-09-02 at 3.36.19 PM.png


  • Dev Team

    @Daniel-Ryu I'm going to have to resurrect my development station to look into this. The mavlink camera manager doesn't actually do any streaming. It's job is to just run the mavlink camera protocol to allow you to easily connect to a stream coming from voxl-streamer (or other application). Can you show the output of the mavlink camera manager application(s) when the debug "-d" option is used? That will show the protocol messages being transferred between the GCS and Voxl.



  • @Eric-Katzfey

    Hires, stereo, tracking mavlink-camera-manager debug outputs (in this order). All three are running at the same time:
    Screen Shot 2021-09-03 at 12.39.55 PM.png

    Screen Shot 2021-09-03 at 12.40.04 PM.png

    Screen Shot 2021-09-03 at 12.40.13 PM.png

    Voxl-streamer debug output for hires (only hires had updated debug output, other voxl-streamers only had the standard bootup debug)
    Screen Shot 2021-09-03 at 12.40.33 PM.png


  • Dev Team

    Okay, thanks! That shows, at least, a mavlink protocol session has been initiated with the mavlink-camera-manager. The camera protocol is documented here: https://mavlink.io/en/services/camera.html. The mavlink-camera-manager module is implementing a portion of that protocol. When it first connects there should be a flurry of protocol messages going back and forth. Once things are setup then it is just heartbeat messages as you see in the debug output above. So the key part of the debug output is the very beginning.



  • @Eric-Katzfey Where can I go from here then, to be able to swap streams from a dropdown menu in QGC?


  • Dev Team

    Look at the beginning of the debug output from mavlink-camera-manager. Do you see anything besides the heartbeat / ping messages? If so, can you paste that here?





  • @Eric-Katzfey , we got it working. The secret we were missing was our MAV_SYS_ID was not set to 1, which, apparently, is what this capability expects. Thanks!


  • Dev Team

    @jaredjohansen Great! Glad to hear it!



  • We are facing a similar issue. Is it correct to say there is not one singular service on VOXL that will automatically stream all cameras to QGC?

    We have to write our own script for it correct?



  • @wilkinsaf Way we handled it was creating our own services/scripts for streaming to QGC automatically with mavlink-camera-manager. Hope it helps



  • @Daniel-Ryu

    I figured. We just wanted to double check that this was the case. Thank you!


Log in to reply