ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Should I upgrade?

    Ask your questions right here!
    4
    33
    2169
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Ed SutterE
      Ed Sutter
      last edited by Ed Sutter

      Hi,
      I have a VOXL Flight Deck, and I've been doing things for several weeks but now I'm stumbling a bit trying to figure out how to stream a USB camera using voxl-streamer and voxl-uvc-server. Anyway, it makes me wonder if I should have done an upgrade when I first unwrapped this. The output of voxl-version is as follows:

      / # voxl-version
      cat: /etc/modalai/voxl-software-bundle-version.txt: No such file or directory
      --------------------------------------------------------------------------------
      system-image:    ModalAI 3.3.0 BUILDER: ekatzfey BUILD_TIME: 2021-06-06_19:28
      kernel:          #1 SMP PREEMPT Sun Jun 6 19:41:01 UTC 2021 3.18.71-perf
      factory-bundle:  1.0.1 (Yocto installation)
      --------------------------------------------------------------------------------
      architecture:    aarch64
      processor:       apq8096
      os:              GNU/Linux
      --------------------------------------------------------------------------------
      voxl-suite:
      Package: voxl-suite
      Version: 0.5.0
      Depends: libjpeg_turbo (>= 9.0.4), libmodal_exposure (>= 0.0.2), libmodal_json (>= 0.3.6), libmodal_pipe (>= 2.1.1), librc_ma
      th (>= 1.1.5), libvoxl_cutils (>= 0.0.2), libvoxl_io (>= 0.5.4), mavlink-camera-manager (>= 0.0.2), mongoose (>= 7.3.0), open
      cv (>= 4.5.2-2), openmp (>= 10.0.2), voxl-camera-calibration (>= 0.1.1), voxl-camera-server (>= 0.8.1), voxl-cpu-monitor (>=
      0.2.0), voxl-dfs-server (>= 0.2.2), voxl-docker-support (>= 1.1.3), voxl-gphoto2 (>= 0.0.5), voxl-imu-server (>= 0.9.1), voxl
      -mavlink (>= 0.0.2), voxl-modem (>= 0.12.0), voxl-mpa-tools (>= 0.3.6), voxl-nodes (>= 0.2.0), voxl-portal (>= 0.1.2), voxl-q
      vio-server (>= 0.3.4), voxl-streamer (>= 0.2.6), voxl-tag-detector (>= 0.0.2), voxl-tflite (>= 2.2.3), voxl-tflite-server (>=
      0.1.5), voxl-utils (>= 0.8.4), voxl-vision-px4 (>= 0.9.5), voxl-vpn (>= 0.0.3)
      Status: install user installed
      Section: base
      Architecture: all
      Maintainer: james@modalai.com
      MD5Sum: 172dd2541a4b01ec415651b5ded3afab
      Size: 1956
      Filename: voxl-suite_0.5.0_202111041852.ipk
      Description: meta-package for voxl-suite software collection
      Installed-Time: 144
      
      --------------------------------------------------------------------------------
      
      

      Is it best to step back and flash a new system image with voxl_platform_3.8.0-0.7?
      Thanks in advance,
      Ed

      Eric KatzfeyE 1 Reply Last reply Reply Quote 0
      • Eric KatzfeyE
        Eric Katzfey ModalAI Team @Ed Sutter
        last edited by

        @Ed-Sutter It's definitely better to be on the latest release. What specific issue are you having with USB camera streaming?

        Ed SutterE Anton GerelesA 2 Replies Last reply Reply Quote 0
        • Ed SutterE
          Ed Sutter @Eric Katzfey
          last edited by Ed Sutter

          @Eric-Katzfey Ok, I'll update now.
          Regarding the USB camera...
          I need to get an external USB camera streaming. Initially I just plugged one into the USB port on the LTE-addon module we have plugged into the expansion bus. Both lsusb and "ls /dev/video*" show the new device, but after adding a configuration item to /etc/modalai/voxl-streamer.conf and running "voxl-streamer -c my-new-tag" the streaming was about 1 frame every 30 seconds. Then I stumbled on the note further in the documentation about the use of voxl-uvc-server; but I don't quite understand how the two work together.
          Anyway, that's when I realized I was working with an image that is over a year old and posted this question... I'll upgrade, then try things again..
          Update:
          The confusion I have is this... do I set up an entry in the voxl-streamer.conf file for the new camera? If yes, is the device mpa (since the uvc-server is running) or is it the /dev/videoX entry?

          Eric KatzfeyE 1 Reply Last reply Reply Quote 0
          • Eric KatzfeyE
            Eric Katzfey ModalAI Team @Ed Sutter
            last edited by

            @Ed-Sutter Yes, use the uvc-generic record as a template. You can modify resolution, bit rate, etc. to match what you are putting into the pipe from voxl-uvc-server.

            Ed SutterE 1 Reply Last reply Reply Quote 0
            • Ed SutterE
              Ed Sutter @Eric Katzfey
              last edited by

              @Eric-Katzfey Ok, after running opkg update/opkg upgrade I see there now is a uvc-generic entry (that wasn't there prior to the upgrade).

              I'm still having trouble though. Here's what I'm doing sequentially:

              1. Plug in my camera and get the VID/PID.
              2. Run voxl-uvc-server -v MYVID -p MYPID -r640x480.
              3. Run voxl-streamer -c uvc-generic.

              The first time I ran this voxl-streamer responded with:

              Using configuration uvc-generic
              Using configuration file /etc/modalai/voxl-streamer.conf
              Camera server Connected
              ERROR: Frame size mismatch 613388 614400
              ERROR: Timeout on input parameter initialization
              

              and eventually voxl-uvc-server crashed (Segmentation fault).

              Then, strangely, I tried it a second time (changed nothing) and things were somewhat better. Voxl-streamer responded with:

              Using configuration uvc-generic
              Using configuration file /etc/modalai/voxl-streamer.conf
              Camera server Connected
              Stream available at rtsp://127.0.0.1:8900/live
              

              and with that I was able to run VLC on my host to see some [not-so-good] video. The frames were breaking up like they were out of sync.

              I used ctrl-c to terminate voxl-streamer, and shortly after that voxl-uvc-server crashed again.

              Any clue what might be going on? Are there other pages I should be reading besides voxl-uvc-server and voxl-streamer?

              Eric KatzfeyE 1 Reply Last reply Reply Quote 0
              • Eric KatzfeyE
                Eric Katzfey ModalAI Team @Ed Sutter
                last edited by

                @Ed-Sutter Try adding the debug options when launching both voxl-uvc-server and voxl-streamer and then share the output. What camera are you using?

                Ed SutterE 1 Reply Last reply Reply Quote 0
                • Ed SutterE
                  Ed Sutter @Eric Katzfey
                  last edited by

                  @Eric-Katzfey With -d on voxl-uvc-server, and voxl-streamer active, I see this output...

                  write to ch: 0 id: 0 result: 614400 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 40 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 613388 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 40 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 614400 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 40 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 613388 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 40 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 612364 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 40 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 611364 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 40 errno: 0
                  previous client state was 2
                  write to ch: 0 id: 0 result: 610328 errno: 0
                  

                  At 640x480 a consistent frame size would be 614400, so this is likely the cause of the frame breakup that I see visually.
                  My camera is a Microsoft 1080P HD Sensor, that can emit YUY2, M420 or MJPG format.

                  Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                  • Eric KatzfeyE
                    Eric Katzfey ModalAI Team @Ed Sutter
                    last edited by

                    @Ed-Sutter Can you share all of the output from both applications? We have never tried that camera. The supported format would be YUY2 but that should result in a fixed size frame. Not sure why it is moving around like that.

                    Ed SutterE 1 Reply Last reply Reply Quote 0
                    • Ed SutterE
                      Ed Sutter @Eric Katzfey
                      last edited by

                      @Eric-Katzfey Sure... I just ran it again, and didn't even get to run VLC on my host and the server crashed. Here are the outputs...
                      voxl-uvc_server:

                      / # voxl-uvc-server -v045e -p0772 -r640x480 -d
                      Enabling debug messages
                      voxl-uvc-server starting
                      Vendor ID 0x045e chosen
                      Product ID 0x0772 chosen
                      Image resolution 640x480, 30 fps chosen
                      UVC initialized
                      Device 045e:0772 found
                      Device opened
                      uvc_get_stream_ctrl_format_size succeeded for format 0
                      Streaming starting
                      Got frame callback! frame_format = 3, width = 640, height = 480, length = 613388, ptr = (nil)
                       * got image 30
                       * got image 60
                       * got image 90
                       * got image 120
                       * got image 150
                       * got image 180
                       * got image 210
                       * got image 240
                       * got image 270
                       * got image 300
                       * got image 330
                       * got image 360
                       * got image 390
                       * got image 420
                       * got image 450
                       * got image 480
                       * got image 510
                       * got image 540
                       * got image 570
                       * got image 600
                      Segmentation fault
                      / #
                      

                      voxl-streamer:

                      / # voxl-streamer -c uvc-generic -d
                      Using configuration uvc-generic
                      Enabling debug messages
                      Using configuration file /etc/modalai/voxl-streamer.conf
                      MPA interface chosen
                      Input pipe name /run/mpa/uvc/
                      Output stream width 640
                      Output stream height 480
                      Output stream bitrate 1000000
                      Output stream rotation 0
                      Output frame decimator 1
                      No image overlay specified
                      Camera server Connected
                      First frame timestamp: 5791926161024
                      Second frame timestamp: 5791958239848
                      Calculated frame delta in ns: 32078824
                      Calculated frame delta in 100us: 320
                      Calculated input frame rate is: 31
                      Output frame rate will be: 31
                      Meta data from incoming frame:
                              magic_number 0x564F584C
                              timestamp_ns: 5791958239848
                              frame_id: 519
                              width: 640
                              height: 480
                              size_bytes: 614400
                              stride: 1280
                              exposure_ns: 100
                              gain: 100
                              format: 8
                      Input parameters initialized
                      Made rtsp_server
                      Created RTSP server main loop context
                      Created RTSP server main loop
                      Created RTSP server main loop source for callback
                      Got 2 from gst_rtsp_server_attach
                      Stream available at rtsp://127.0.0.1:8900/live
                      Camera server Disconnected
                      ERROR in pipe_client_init_channel opening request pipe: No such device or address
                      Most likely the server stopped without cleaning up
                      Client is cleaning up pipes for the server
                      
                      ^CGot SIGINT, exiting
                      Trying to stop loop
                      g_main_loop exited
                      voxl-streamer ending
                      / #
                      

                      You can see in the voxl-streamer output that it was running till voxl-uvc-server crashed. Eventually, I used Ctrl-C to terminate voxl-streamer.
                      If you want me to try anything, just let me know. I've worked with several USB cameras myself but primarily with V4L2/OpenCV/Gstreamer. I haven't used LibUVC, can't find much documentation. Can you point me to the libuvc source?

                      Eric KatzfeyE 2 Replies Last reply Reply Quote 0
                      • Eric KatzfeyE
                        Eric Katzfey ModalAI Team @Ed Sutter
                        last edited by

                        @Ed-Sutter We use our own version of libuvc. You can find our project here: https://gitlab.com/voxl-public/voxl-sdk/third-party/voxl-libuvc

                        1 Reply Last reply Reply Quote 0
                        • Eric KatzfeyE
                          Eric Katzfey ModalAI Team @Ed Sutter
                          last edited by

                          @Ed-Sutter I think the problem is the varying frame size. That's probably causing a problem somewhere (either memory leak or overflow).

                          Ed SutterE 1 Reply Last reply Reply Quote 0
                          • Ed SutterE
                            Ed Sutter @Eric Katzfey
                            last edited by Ed Sutter

                            @Eric-Katzfey I agree, but I don't understand why the frame size varies! Its not compressed, so it should be a fixed size per frame. Know what I mean?

                            Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                            • Eric KatzfeyE
                              Eric Katzfey ModalAI Team @Ed Sutter
                              last edited by

                              @Ed-Sutter Yes. But maybe just a quirk of the camera. There are a few ways to go about fixing this. It looks like the frames are either the correct size or smaller. If that's the case, you could always add "fake" data to the end of the received buffer to make it the correct size in voxl-uvc-server and then write it into the pipe. You could try this and see if that makes the stream work.

                              Ed SutterE 1 Reply Last reply Reply Quote 0
                              • Ed SutterE
                                Ed Sutter @Eric Katzfey
                                last edited by

                                @Eric-Katzfey Ok, I'll dig into this more. I need to understand it anyway, so I'll look at libuvc and voxl-uvc-server and let you know what I figure out.

                                Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                                • Eric KatzfeyE
                                  Eric Katzfey ModalAI Team @Ed Sutter
                                  last edited by

                                  @Ed-Sutter Excellent, thanks!

                                  Ed SutterE 2 Replies Last reply Reply Quote 0
                                  • Ed SutterE
                                    Ed Sutter @Eric Katzfey
                                    last edited by

                                    @Eric-Katzfey FYI... Using a Logitech BRIO camera seems to work fine... the frame size always returns the same value (614400 in my case). Still, I wanna spend some time attempting to figure out why the Microsoft HD camera doesn't work as well...

                                    Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                                    • Eric KatzfeyE
                                      Eric Katzfey ModalAI Team @Ed Sutter
                                      last edited by

                                      @Ed-Sutter We have tested with these cameras:

                                      • Logitech C270
                                      • Logitech C930e
                                      • Logitech Brio (USB 2.0 and USB 3.0 on VOXL 2)
                                      • Videology 5MP Micro USB 2.0 Board Camera
                                      • PureThermal Mini with Flir Lepton
                                      • Flir Boson 640
                                      • Blue Robotics h264 camera
                                      1 Reply Last reply Reply Quote 0
                                      • Ed SutterE
                                        Ed Sutter @Eric Katzfey
                                        last edited by

                                        @Eric-Katzfey By the way, regarding "upgrading"... All I did was opkg update; opkg upgrade. I really don't know what all that updated (aside from /etc/modalai/voxl-streamer.conf); but the output of "voxl-version" didn't change at all.
                                        Based on that it appears I'm running with a system-image that was built on 2021-06-06 (about 15 months ago). Is that the most recent?

                                        Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                                        • Eric KatzfeyE
                                          Eric Katzfey ModalAI Team @Ed Sutter
                                          last edited by

                                          @Ed-Sutter We are preparing a new VOXL platform release but are still completing an update of our ToF camera support. Once that is complete the release will go out.

                                          Ed SutterE 1 Reply Last reply Reply Quote 0
                                          • Ed SutterE
                                            Ed Sutter @Eric Katzfey
                                            last edited by

                                            @Eric-Katzfey Ok, no rush (just curious)... Is that updated by the same procedure (opkg update; opkg upgrade)?

                                            Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Powered by NodeBB | Contributors