ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Home
    2. KnightHawk06
    • Profile
    • Following 0
    • Followers 0
    • Topics 10
    • Posts 28
    • Best 1
    • Controversial 0
    • Groups 0

    KnightHawk06

    @KnightHawk06

    1
    Reputation
    4
    Profile views
    28
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    KnightHawk06 Unfollow Follow

    Best posts made by KnightHawk06

    • RE: Tracking camera calibration not progressing

      Hello, I'm having the same issue with the dual AR0144 1 MP tracking image sensors not progressing in the calibration sequence. I see some dark obscurations in the tracking rectangle and I am able to see the corners being counted but the calibration sequence never progresses.

      camera_calibrator_overlay_1744926606.png camera_calibrator_overlay_1744927851.png Media.jpg

      voxl2:~$ voxl-calibrate-camera tracking_down -s 6x9 -l 0.0254 -d
      Waiting for valid pipe...
      Please open voxl-portal in a web browser to view the camera calibrator overlay stream
      ^C
      received SIGINT Ctrl-C
      done sampling
      Exiting Cleanly
      waiting to join consumer thread

      posted in VOXL-CAM
      KnightHawk06K
      KnightHawk06

    Latest posts made by KnightHawk06

    • RE: crop image for voxl-tflite-server

      @Alex-Kushleyev this is exactly what I need. Thanks! I was able to reconfigure voxl-tflite-server to use the new cropped image data.

      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • RE: crop image for voxl-tflite-server

      @Alex-Kushleyev Yeah, I think that would work just fine. The other option I was considering is modifying voxl-mavlink-server so that the user could specify a region of the incoming image to consider before detection. Which path do you recommend? Appreciate your help.

      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • Request for access to Qualcomm-specific libgbm package for VOXL 2 cross-compile

      I’m working on a VOXL 2 (QRB5165) vision application that talks to voxl-mavlink-server via libmodal_pipe, but I’m building and unit-testing inside the standard voxl-cross Docker image. During the link stage I hit this unresolved symbol:

      /usr/lib64/libmodal_pipe.so: undefined reference to `gbm_perform`
      

      From what I gather, gbm_perform() is only exported by the proprietary Adreno driver build of libgbm.so that lives in the qrb5165-gpu (or similar) package on the target root-file-system. That package isn’t present in the container, so the linker fails even though Mesa’s stock libgbm is installed.

      Could someone point me to (or grant me) the repo credentials / download location for that GPU package so I can install it in the container and link against the real library instead of a stub?

      Thanks in advance for any guidance!

      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • RE: crop image for voxl-tflite-server

      @Alex-Kushleyev

      I'm using 'hires_front_small_color' as the input_pipe for voxl-tflite-server.

      /**
       * voxl-camera-server Configuration File
       *
       * Each camera has configurations for up to 4 HAL3 streams:
       *    - `preview` stream for raw unprocessed images from CV cameras
       *    - `small_video` 720p (ish) h264/h265 compressed for fpv video streaming
       *    - `large_video` 4k (ish) h264/h265 for onboard video recording to disk
       *    - `snapshot` ISP-processed JPG snapshots that get saved to disk
       *
       * on QRB5165 platforms (VOXL2 and VOXL2 mini) you can only have 3 of the 4 enabled
       *
       * This file is generated from default values by voxl-configure-cameras.
       * Do not expect arbitrary resolutions to work, the ISP and video compression
       * pipelines only support very specific resolutions.
       *
       * The default video compression mode is cqp or Constant Quantization Parameter
       *
       *
       *
       */
      {
              "version":      0.1,
              "fsync_en":     true,
              "fsync_gpio":   109,
              "cameras":      [{
                              "type": "ar0144",
                              "name": "tracking_front",
                              "enabled":      true,
                              "camera_id":    0,
                              "fps":  5,
                              "en_rotate":    true,
                              "en_preview":   true,
                              "preview_width":        1280,
                              "preview_height":       800,
                              "en_raw_preview":       true,
                              "en_misp":      true,
                              "misp_width":   1280,
                              "misp_height":  800,
                              "misp_venc_enable":     false,
                              "misp_venc_mode":       "h264",
                              "misp_venc_br_ctrl":    "cqp",
                              "misp_venc_Qfixed":     30,
                              "misp_venc_Qmin":       15,
                              "misp_venc_Qmax":       50,
                              "misp_venc_nPframes":   29,
                              "misp_venc_mbps":       2,
                              "misp_venc_osd":        false,
                              "misp_awb":     "auto",
                              "ae_mode":      "lme_msv",
                              "gain_min":     54,
                              "gain_max":     8000,
                              "ae_desired_msv":       60,
                              "exposure_min_us":      20,
                              "exposure_max_us":      12000,
                              "exposure_soft_min_us": 5000,
                              "ae_filter_alpha":      0.600000023841858,
                              "ae_ignore_fraction":   0.20000000298023224,
                              "ae_slope":     0.05000000074505806,
                              "ae_exposure_period":   1,
                              "ae_gain_period":       1,
                              "misp_gamma":   1
                      }, {
                              "type": "imx412",
                              "name": "hires_front",
                              "enabled":      true,
                              "camera_id":    1,
                              "fps":  30,
                              "en_preview":   false,
                              "preview_width":        640,
                              "preview_height":       480,
                              "en_raw_preview":       false,
                              "en_small_video":       true,
                              "small_video_width":    1024,
                              "small_video_height":   768,
                              "small_venc_mode":      "h264",
                              "small_venc_br_ctrl":   "cqp",
                              "small_venc_Qfixed":    30,
                              "small_venc_Qmin":      15,
                              "small_venc_Qmax":      40,
                              "small_venc_nPframes":  9,
                              "small_venc_mbps":      2,
                              "small_venc_osd":       false,
                              "en_large_video":       false,
                              "large_video_width":    4056,
                              "large_video_height":   3040,
                              "large_venc_mode":      "h264",
                              "large_venc_br_ctrl":   "cqp",
                              "large_venc_Qfixed":    40,
                              "large_venc_Qmin":      15,
                              "large_venc_Qmax":      50,
                              "large_venc_nPframes":  29,
                              "large_venc_mbps":      40,
                              "large_venc_osd":       false,
                              "en_snapshot":  true,
                              "en_snapshot_width":    4056,
                              "en_snapshot_height":   3040,
                              "exif_focal_length":    3.0999999046325684,
                              "exif_focal_length_in_35mm_format":     17,
                              "exif_fnumber": 1.2400000095367432,
                              "ae_mode":      "isp",
                              "gain_min":     54,
                              "gain_max":     8000,
                              "snapshot_jpeg_quality":        75
                      }, {
                              "type": "imx412",
                              "name": "hires_down",
                              "enabled":      false,
                              "camera_id":    2,
                              "fps":  30,
                              "en_preview":   false,
                              "preview_width":        640,
                              "preview_height":       480,
                              "en_raw_preview":       false,
                              "en_small_video":       true,
                              "small_video_width":    1024,
                              "small_video_height":   768,
                              "small_venc_mode":      "h264",
                              "small_venc_br_ctrl":   "cqp",
                              "small_venc_Qfixed":    30,
                              "small_venc_Qmin":      15,
                              "small_venc_Qmax":      40,
                              "small_venc_nPframes":  9,
                              "small_venc_mbps":      2,
                              "small_venc_osd":       false,
                              "en_large_video":       false,
                              "large_video_width":    4056,
                              "large_video_height":   3040,
                              "large_venc_mode":      "h264",
                              "large_venc_br_ctrl":   "cqp",
                              "large_venc_Qfixed":    40,
                              "large_venc_Qmin":      15,
                              "large_venc_Qmax":      50,
                              "large_venc_nPframes":  29,
                              "large_venc_mbps":      40,
                              "large_venc_osd":       false,
                              "en_snapshot":  true,
                              "en_snapshot_width":    4056,
                              "en_snapshot_height":   3040,
                              "exif_focal_length":    3.0999999046325684,
                              "exif_focal_length_in_35mm_format":     17,
                              "exif_fnumber": 1.2400000095367432,
                              "ae_mode":      "isp",
                              "gain_min":     54,
                              "gain_max":     8000,
                              "snapshot_jpeg_quality":        75
                      }, {
                              "type": "ar0144",
                              "name": "tracking_down",
                              "enabled":      true,
                              "camera_id":    3,
                              "fps":  30,
                              "en_rotate":    false,
                              "en_preview":   true,
                              "preview_width":        1280,
                              "preview_height":       800,
                              "en_raw_preview":       true,
                              "en_misp":      true,
                              "misp_width":   1280,
                              "misp_height":  800,
                              "misp_venc_enable":     false,
                              "misp_venc_mode":       "h264",
                              "misp_venc_br_ctrl":    "cqp",
                              "misp_venc_Qfixed":     30,
                              "misp_venc_Qmin":       15,
                              "misp_venc_Qmax":       50,
                              "misp_venc_nPframes":   29,
                              "misp_venc_mbps":       2,
                              "misp_venc_osd":        false,
                              "misp_awb":     "auto",
                              "ae_mode":      "lme_msv",
                              "gain_min":     54,
                              "gain_max":     8000,
                              "ae_desired_msv":       60,
                              "exposure_min_us":      20,
                              "exposure_max_us":      12000,
                              "exposure_soft_min_us": 5000,
                              "ae_filter_alpha":      0.600000023841858,
                              "ae_ignore_fraction":   0.20000000298023224,
                              "ae_slope":     0.05000000074505806,
                              "ae_exposure_period":   1,
                              "ae_gain_period":       1,
                              "misp_gamma":   1
                      }]
      }
      
      /**
       * This file contains configuration that's specific to voxl-tflite-server.
       *
       * skip_n_frames       - how many frames to skip between processed frames. For 30Hz
       *                         input frame rate, we recommend skipping 5 frame resulting
       *                         in 5hz model output. For 30Hz/maximum output, set to 0.
       * model               - which model to use. Currently support mobilenet, fastdepth,
       *                         posenet, deeplab, and yolov5.
       * input_pipe          - which camera to use (tracking, hires, or stereo).
       * delegate            - optional hardware acceleration: gpu, cpu, or nnapi. If
       *                         the selection is invalid for the current model/hardware,
       *                         will silently fall back to base cpu delegate.
       * allow_multiple      - remove process handling and allow multiple instances
       *                         of voxl-tflite-server to run. Enables the ability
       *                         to run multiples models simultaneously.
       * output_pipe_prefix  - if allow_multiple is set, create output pipes using default
       *                         names (tflite, tflite_data) with added prefix.
       *                         ONLY USED IF allow_multiple is set to true.
       */
      {
              "skip_n_frames":        0,
              "model":        "/usr/bin/dnn/yolov5_float16_quant.tflite",
              "input_pipe":   "/run/mpa/hires_front_small_color/",
              "delegate":     "gpu",
              "requires_labels":      true,
              "labels":       "/usr/bin/dnn/yolov5_labels.txt",
              "allow_multiple":       false,
              "output_pipe_prefix":   "mobilenet"
      }
      
      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • crop image for voxl-tflite-server

      I'd like to crop my 1024x768 image so that voxl-tflite-server only sees a square 256x256 at the center, is this possible? Either in voxl-camera-server or voxl-tflite-server?

      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • RE: voxl-logger tflite

      @KnightHawk06

      I am able to save off the images that contain the bounding boxes and classification for each frame but not the binary data that has the bounding box coordinates, classification, and confidence for each frame. How are people ingesting this data into their flight software stack?

      voxl-logger --cam tflite --samples 100 --note "tflite_inference_log"
      
      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • RE: voxl-logger tflite

      @KnightHawk06 This data is not making a lot of sense to me, can voxl-logger not be used to capture tflite data?

      @Alex-Kushleyev are you familiar with how to log and parse tflite data on the voxl2?

      head -n 10 data.csv
      

      i,num_bytes
      0,40
      1,65536
      2,65536
      3,65536
      4,65536
      5,65536
      6,65536
      7,65536
      8,65536

      xxd -l 40 data.raw
      

      00000000: 4c58 4f56 4736 35cc bb05 0000 1528 0100 LXOVG65......(..
      00000010: 0004 0003 0000 2400 000c 0000 1428 7f00 ......$......(..
      00000020: 1501 0a00 1e00 0000 ........

      xxd -s 40 -l 64 data.raw
      

      00000028: b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 ................
      00000038: b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 ................
      00000048: b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 ................
      00000058: b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 b4b4 ................

      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • voxl-logger tflite

      I'm trying to log the tflite data from the yolov8n model, I'm looking for the detections and confidence vs time. What's the best way to log this data for inspection?

      I am using this command which is creating data.raw and data.csv files but how do I parse the data.raw file?

      voxl-logger --raw tflite --samples 50
      
      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • RE: Training custom yolov8 model

      @KnightHawk06 ok, I think I found my problem, yolov8 doesn't support exporting with nms. Can a yolov5 model be exported and used on the voxl2?

      https://github.com/ultralytics/ultralytics/issues/10303

      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06
    • Training custom yolov8 model

      I am following the tutorial below to train a custom yolov8 model with 295 photos of a fuel canister. I'm training the model on a GCP instance with a NVIDIA Tesla P4. Instead of using the full COCO database, I'm only using 0=background and 1=fuel_canister. I am getting flooded with 'should not reach here' error logs when trying to run voxl-tflite-server. I have tried both configs below. Any ideas?

      https://gitlab.com/voxl-public/support/voxl-train-yolov8.git

      voxl2:~$ journalctl -u voxl-tflite-server -n 20 --no-pager
      
      -- Logs begin at Thu 2023-03-02 12:58:02 UTC, end at Tue 2025-05-13 00:18:20 UTC. --
      
      May 13 00:18:15 m0054 bash[10642]: Error in TensorData<float>: should not reach here
      
      May 13 00:18:16 m0054 bash[10642]: Error in TensorData<float>: should not reach here
      
      May 13 00:18:16 m0054 bash[10642]: Error in TensorData<float>: should not reach here
      
      May 13 00:18:16 m0054 bash[10642]: Current pipeline throughput: 4.64115 frames per second
      
      1) docker build -t yolov8-train:latest .
      2) docker run --gpus all -it --shm-size=8g -v "$(pwd)":/app/ yolov8-train:latest /bin/bash
      3) /app python3 train.py
      4) /app yolo task=detect mode=val model=/app/runs/detect/fuel_canister_exp12/weights/best.pt data=/app/dataset.yaml split=test name=fuel_canister_test_eval
      5) /app yolo export model=./runs/detect/fuel_canister_exp12/weights/best.pt format=tflite imgsz=640 nms=False half=True
      
      cat fuel_canister_labels.txt
      0   background
      1   fuel_canister
      
      cat /etc/modalai/voxl-tflite-server
      /**
      * voxl-tflite-server Configuration File
      *
      * skip_n_frames       - how many frames to skip between processed frames. For 30 Hz
      *                         input, skip 5  ^g^r 5 Hz inference. Set 0 for full rate.
      * model               - which model to use. Bundled choices include mobilenet,
      *                         fastdepth, posenet, deeplab, yolov5, yolov8.
      * input_pipe          - which camera pipe to read (tracking, hires, stereo, etc.).
      * delegate            - hardware acceleration: gpu, cpu, or nnapi.  "gpu" is best
      *                         on VOXL 2 for float16 models.
      * allow_multiple      - if true, removes single-instance lock so multiple servers
      *                         can run (one per config file).
      * output_pipe_prefix  - prefix added to the default output pipes when
      *                         allow_multiple is true.
      */
      {
         "skip_n_frames": 0,
         "model": "/etc/modalai/tflite_models/fuel_canister_yolov8_custom.tflite",
         "input_pipe": "/run/mpa/hires_front_small_color",
         "delegate": "cpu",
         "requires_labels": true,
         "labels": "/etc/modalai/tflite_models/fuel_canister_labels.txt",
         "allow_multiple": false,
         "output_pipe_prefix": "fuel_canister",
         "output_meta_type": "YOLO_V8",
         "debug_en": false,
         "confidence_threshold": 0.1
      }
      
      /**
       * voxl-tflite-server Configuration File
       *
       * skip_n_frames       - how many frames to skip between processed frames. For 30 Hz
       *                         input, skip 5 ⇒ 5 Hz inference. Set 0 for full rate.
       * model               - which model to use. Bundled choices include mobilenet,
       *                         fastdepth, posenet, deeplab, yolov5, yolov8.
       * input_pipe          - which camera pipe to read (tracking, hires, stereo, etc.).
       * delegate            - hardware acceleration: gpu, cpu, or nnapi.  "gpu" is best
       *                         on VOXL 2 for float16 models.
       * allow_multiple      - if true, removes single-instance lock so multiple servers
       *                         can run (one per config file).
       * output_pipe_prefix  - prefix added to the default output pipes when
       *                         allow_multiple is true.
       */
      {
          "skip_n_frames": 0,
          "model": "/etc/modalai/tflite_models/fuel_canister_yolov8_custom.tflite",
          "input_pipe": "/run/mpa/hires_front_small_color",
          "delegate": "cpu",
          "requires_labels": true,
          "labels": "/etc/modalai/tflite_models/fuel_canister_labels.txt",
          "allow_multiple": false,
          "output_pipe_prefix": "fuel_canister",
          "confidence_threshold": 0.5
      }
      
      voxl2:~$ voxl-version
      ────────────────────────────────────────────────────────────────────────────────
      system-image: 1.8.02-M0054-14.1a-perf
      kernel: #1 SMP PREEMPT Mon Nov 11 22:47:44 UTC 2024 4.19.125
      ────────────────────────────────────────────────────────────────────────────────
      hw platform: M0054
      mach.var: 1.0.1
      ────────────────────────────────────────────────────────────────────────────────
      voxl-suite: 1.4.3
      ────────────────────────────────────────────────────────────────────────────────
      Packages:
      Repo: http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.4/binary-arm64/
      Last Updated: 2025-04-17 20:21:35
      List:
      kernel-module-voxl-fsync-mod-4.19.125 1.0-r0
      kernel-module-voxl-gpio-mod-4.19.125 1.0-r0
      kernel-module-voxl-platform-mod-4.19.125 1.0-r0
      libfc-sensor 1.0.7
      libmodal-cv 0.5.16
      libmodal-exposure 0.1.3
      libmodal-journal 0.2.3
      libmodal-json 0.4.3
      libmodal-pipe 2.10.6
      libqrb5165-io 0.4.9
      libvoxl-cci-direct 0.2.5
      libvoxl-cutils 0.1.1
      modalai-slpi 1.1.19
      mv-voxl 0.1-r0
      qrb5165-bind 0.1-r0
      qrb5165-dfs-server 0.2.0
      qrb5165-imu-server 1.1.3
      qrb5165-rangefinder-server 0.1.5
      qrb5165-slpi-test-sig 01-r0
      qrb5165-system-tweaks 0.3.5
      qrb5165-tflite 2.8.0-2
      voxl-bind-spektrum 0.1.1
      voxl-camera-calibration 0.5.9
      voxl-camera-server 2.1.2
      voxl-ceres-solver 2:1.14.0-10
      voxl-configurator 1.0.0
      voxl-cpu-monitor 0.5.3
      voxl-cross-template 0.0.1
      voxl-docker-support 1.3.1
      voxl-elrs 0.4.2
      voxl-esc 1.5.1
      voxl-feature-tracker 0.5.2
      voxl-flow-server 0.3.6
      voxl-fsync-mod 1.0-r0
      voxl-gphoto2-server 0.0.10
      voxl-gpio-mod 1.0-r0
      voxl-io-server 0.0.5
      voxl-jpeg-turbo 2.1.3-5
      voxl-lepton-server 1.3.3
      voxl-lepton-tracker 0.0.4
      voxl-libgphoto2 0.0.4
      voxl-libuvc 1.0.7
      voxl-logger 0.5.0
      voxl-mavcam-manager 0.5.8
      voxl-mavlink 0.1.4
      voxl-mavlink-server 1.4.5
      voxl-modem 1.1.5
      voxl-mongoose 7.7.0-1
      voxl-mpa-to-ros 0.3.9
      voxl-mpa-tools 1.3.7
      voxl-open-vins 0.4.17
      voxl-open-vins-server 0.3.0
      voxl-opencv 4.5.5-2
      voxl-osd 0.1.3
      voxl-platform-mod 1.0-r0
      voxl-portal 0.7.9
      voxl-px4 1.14.0-2.0.98
      voxl-px4-imu-server 0.1.2
      voxl-px4-params 0.6.7
      voxl-qvio-server 1.1.1
      voxl-remote-id 0.0.9
      voxl-reset-slpi 0.0.1
      voxl-state-estimator 0.0.4
      voxl-streamer 0.7.5
      voxl-suite 1.4.3
      voxl-tag-detector 0.0.4
      voxl-tflite-server 0.3.9
      voxl-utils 1.4.6
      voxl-uvc-server 0.1.7
      voxl-vision-hub 1.8.20
      voxl-vtx 1.2.2
      voxl2-io 0.0.3
      voxl2-system-image 1.8.02-r0
      voxl2-wlan 1.0-r0
      
      posted in Ask your questions right here!
      KnightHawk06K
      KnightHawk06