@Alex-Kushleyev Thanks for clarifying this!
Posts made by Gary Holmgren
-
Using VOXL Mini 4-in-1 ESC (UART) + VOXL 2 IO (PWM) at the same time
Hi all, I’d like to run the VOXL Mini 4-in-1 ESC over UART with VOXL 2 and use the VOXL 2 IO expansion board to get a few extra PWM channels in PX4.
From the docs, the ESC uses J18 on VOXL 2. The IO board is also shown on J18 in some examples. Can I keep the ESC on J18 and put the IO board on J19 instead, then run both (voxl_esc on QUP2 and voxl2_io on QUP7) so I can map extra PWM outputs in QGC?
Hardware:
VOXL 2
VOXL Mini 4-in-1 ESC (UART)
VOXL 2 IO expansion board
If this is supported, are there any specific PX4 params or startup script changes I should make?Links for reference:
https://docs.modalai.com/voxl2-io-user-guide/
https://docs.modalai.com/voxl-mini-esc-datasheet/Thanks!
-
Possible to Buy Lepton breakout board?
Hi, I purchased the Starling 2 micro coax kit, and was wondering if there is any option to buy the Flir Lepton breakout that is included with the Starling 2?
In the CAD, it looks to be named M0157-SSS-LEPTON-RF-REVA.
Any info is appreciated, thanks!
-
RE: QVIO Flight violently unstable
@Alex-Kushleyev I have narrowed one of the main causes of instability down to my quads own frame (prop protectors) within the QVIO tacking FOV. Since I am using the AR0144 cam I modified the mask file in GIMP to include only 0 and 255 for the same aspect ratio of 1280x800 at full and 1.4 res to try to apply the mask in the qvio config file but no matter what I try it seems the mask is not affecting QVIO at all. I tired a fully blacked out mask as a test and it didn't change anything. I also ensured the header matching the format found in this post.
Have you gotten a mask example to work with the AR0144?
-
RE: QVIO Flight violently unstable
@Gary-Holmgren calibration results with AR0144
-
RE: QVIO Flight violently unstable
@Gary-Holmgren @Alex-Kushleyev Are you able to check this out I'm not sure what could be causing this. I had qvio working perfectly fine on this stack before.
-
RE: QVIO Flight violently unstable
Not sure why these would be outputting different roll values? could it be the cause of the forward and back oscillation that happens when I put it into position mode? The vehicle was completely still and I ran these commands within 10 seconds of each other.
I also see that voxl-inspect-pose and inspect-vio are matching but qvio is not
also, is this something that ha to be set in PX4 relative to IMU_APPS??
-
RE: Configuring VOXL 2 with a new UDP port
@Eric-Katzfey Ahh that makes more sense, thankyou for explaining!
-
RE: Configuring VOXL 2 with a new UDP port
@Eric-Katzfey My apologies I guess I am confused what you mean. I tried using MAVSDK with 14550 but it wouldn't let me connect. Also, I have QGC connected using 14550 if that matters.
-
RE: QVIO Flight violently unstable
@Gary-Holmgren Tried re-calibrating the tracking cam and IMU, as well as ensuring everything was rigid. Still no luck.
-
RE: QVIO Flight violently unstable
@Gary-Holmgren Updated this but still having errors
-
RE: QVIO Flight violently unstable
VOXL Version -------------------------------------------------------------------------------- system-image: 1.8.02-M0054-14.1a-perf kernel: #1 SMP PREEMPT Mon Nov 11 22:08:01 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.0.0 -------------------------------------------------------------------------------- voxl-suite: 1.4.0 -------------------------------------------------------------------------------- Packages: Repo: http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.4/binary-arm64/ Last Updated: 2025-02-11 17:57:14 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.2 libmodal-json 0.4.3 libmodal-pipe 2.10.4 libqrb5165-io 0.4.7 libvoxl-cci-direct 0.2.3 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.0 qrb5165-rangefinder-server 0.1.4 qrb5165-slpi-test-sig 01-r0 qrb5165-system-tweaks 0.3.2 qrb5165-tflite 2.8.0-2 voxl-bind-spektrum 0.1.1 voxl-camera-calibration 0.5.9 voxl-camera-server 2.0.8 voxl-ceres-solver 2:1.14.0-10 voxl-configurator 0.9.4 voxl-cpu-monitor 0.5.1 voxl-docker-support 1.3.1 voxl-elrs 0.3.4 voxl-esc 1.4.8 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.4 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.4.9 voxl-mavcam-manager 0.5.7 voxl-mavlink 0.1.1 voxl-mavlink-server 1.4.4 voxl-modem 1.1.3 voxl-mongoose 7.7.0-1 voxl-mpa-to-ros 0.3.9 voxl-mpa-tools 1.3.4 voxl-open-vins 0.4.14 voxl-open-vins-server 0.2.83 voxl-opencv 4.5.5-3 voxl-osd 0.0.2 voxl-platform-mod 1.0-r0 voxl-portal 0.7.3-202501201257 voxl-px4 1.14.0-2.0.99 voxl-px4-drover voxl-px4-drover-v1 voxl-px4-imu-server 0.1.2 voxl-px4-params 0.5.8 voxl-qvio-server 1.1.1 voxl-remote-id 0.0.9 voxl-reset-slpi 0.0.1 voxl-state-estimator 0.0.3 voxl-streamer 0.7.5 voxl-suite 1.4.0 voxl-tag-detector 0.0.4 voxl-tflite-server 0.3.7 voxl-utils 1.4.4 voxl-uvc-server 0.1.7 voxl-vision-hub 1.8.17 voxl-vtx 1.1.3 voxl2-io 0.0.3 voxl2-system-image 1.8.02-r0 voxl2-wlan 1.0-r0
-
QVIO Flight violently unstable
Hello, I am trying to debug my QVIO flight which is very unstable. When hovering the vehicle does not stay still instead it pitches back and forth aggressively. I can fly in manual mode and altitude mode without any issues at all, but when hovering in altitude mode and switching to position it immediately starts cyclically shaking back and forth and gets worse the longer I let it go.
Its paired with the AR0144 tracking cam and has been calibrated. This is setup to also use a GPS/MAG but indoors use VIO. there is also a VL53L1X mounted for altitude sensing below 4m. Is there something that anyone would recommend checking to see what may be happening here. I followed along with the EKF2 param helpers for VIO in px4 as well.
This is my extrinsics:
"extrinsics": [{ "parent": "imu_apps", "child": "tracking", "T_child_wrt_parent": [0.0237, 0.0024, -0.0073], "RPY_parent_to_child": [0, 90, 90] }, { "parent": "body", "child": "imu_apps", "T_child_wrt_parent": [0.1138, -0.006, 0.040], "RPY_parent_to_child": [0, 0, 0] }, { "parent": "body", "child": "ground", "T_child_wrt_parent": [0, 0, 0.0537], "RPY_parent_to_child": [0, 0, 0] }] }
and qvio-server config:
{ "odr_hz": 30, "use_camera_height_bootstrap": true, "camera_height_off_ground_m": 0.085000000894069672, "enable_init_while_moving": false, "cam_imu_timeshift_s": 0, "cam_imu_timeshift_s_uncertainty": 9.99999974737875e-05, "T_cam_wrt_imu_uncertainty": [0.00050000002374872565, 0.00050000002374872565, 0.00050000002374872565], "R_cam_to_imu_uncertainty": [0.00499999988824129, 0.00499999988824129, 0.00499999988824129], "accl_fsr_ms2": 156, "gyro_fsr_rad": 34, "accl_noise_std_dev": 0.31600001454353333, "gyro_noise_std_dev": 0.00999999977648258, "cam_noise_std_dev": 100, "min_std_pixel_noise": 0.5, "fail_high_pixel_noise_points": 1.6650999784469604, "limited_imu_bw_trigger": 25, "gps_imu_time_alignment_s": 0, "T_gps_wrt_imu": [0, 0, 0], "enable_mapping": true, "enable_gps_vel": false, "en_auto_reset": true, "auto_reset_max_velocity": 10, "auto_reset_max_v_cov_instant": 0.10000000149011612, "auto_reset_max_v_cov": 0.00999999977648258, "auto_reset_max_v_cov_timeout_s": 0.5, "auto_reset_min_features": 3, "auto_reset_min_feature_timeout_s": 1, "en_standby_mode": true, "standby_skip_frames": 1, "mask_file_path": "" }
vio_cams config:
{ "cams": [{ "enable": true, "name": "tracking", "pipe_for_preview": "tracking", "pipe_for_tracking": "tracking_misp_norm", "is_occluded_on_ground": false, "imu": "imu_apps", "cal_file": "opencv_tracking_intrinsics.yml" },{ "enable": false, "name": "tracking_down", "pipe_for_preview": "tracking_down", "pipe_for_tracking": "tracking_down_misp_norm", "is_occluded_on_ground": true, "imu": "imu_apps", "cal_file": "opencv_tracking_down_intrinsics.yml" }] }
And heres my qvio overlay:
Would looking into opvenins be a solution, and can it work well with just a single tracking camera ?
-
RE: Configuring VOXL 2 with a new UDP port
@Eric-Katzfey Yes I did run that and it output an error that stated the port was already bound to another process.
-
Trying to mask qvio with AR0144 cam
I have been following this post to try and use the mask example found here. Although qvio starts with the path to this set in the qvio-server.config it doesnt appear to be working. Has anyone tested a mask using the AR0144 with voxl 2? Would I need to change the resolution of the mask or are there other steps to making this work?
Secondly I am also how I could apply this mask to the voxl-portal qvio stream to double check if its working. Any help is appreciated!
-
RE: Unable to build px4 using rb5-flight-px4-build-docker
@Gary-Holmgren Was able to fix it with bash
chmod +x /home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/bin/ld.qcld
(while in the docker image of course)
It appeared hexagon-link was a symbolic link and making it executable fixed the target not having permissions. Hope this helps someone with a similar issue. -
Unable to build px4 using rb5-flight-px4-build-docker
So I followed the step to build the px4 docker here with quite the hassle of installing hexigon 4.1.0.4 in a fresh ubuntu 20.04LTS VM. then tar that into the px4-docker project and build.
I cloned the voxl-px4 projec to run my new docker image
rb5-flight-px4-build-docker latest 0510293c3675 2 hours ago 8.09GB rb5-flight-px4-build-docker v1.5 0510293c3675 2 hours ago 8.09GB base-px4-build-docker v1.4 3095b633bdc3 21 months ago 2.03GB
as they built successfully.
when checking out a stable release say v1.14.0-2.0.85 to test this new build and of course using
git submodule update --init --recursive
followed by./run-docker.sh
>/clean.sh
>./build.sh
I end up with a failed build and am greeted with these errors.root@0fcde4b59dca:/usr/local/workspace# ./build.sh *** Starting build *** Setting up the Hexagon SDK environment locally HEXAGON_SDK_ROOT is : /home/4.1.0.4 Setting up the QAIC binary for the platform make: Entering directory '/home/4.1.0.4/ipc/fastrpc/qaic' make: 'bin/qaic' is up to date. make: Leaving directory '/home/4.1.0.4/ipc/fastrpc/qaic' Could not find Androd ndk at /home/4.1.0.4/tools/android-ndk-r19c Please refer to /home/4.1.0.4/docs/tools/setup.html for installing the missed components *** Starting dependencies build *** -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 9.4.0 -- Check for working C compiler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-gcc -- Check for working C compiler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /usr/local/workspace/px4-firmware/boards/modalai/voxl2/libfc-sensor-api/build Scanning dependencies of target fc_sensor [ 50%] Building C object CMakeFiles/fc_sensor.dir/src/fc_sensor_stub.c.o [100%] Linking C shared library libfc_sensor.so [100%] Built target fc_sensor *** End of dependencies build *** *** Starting apps processor build *** -- PX4 version: v1.14.0-2.0.85-dev (1.14.0) -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3") -- PX4 config file: /usr/local/workspace/px4-firmware/boards/modalai/voxl2/default.px4board -- PLATFORM posix -- LINUX_TARGET y -- TOOLCHAIN aarch64-linux-gnu -- ROMFSROOT px4fmu_common -- ROOTFSDIR /data/px4 -- PX4 config: modalai_voxl2_default -- PX4 platform: posix -- PX4 lockstep: disabled -- The CXX compiler identification is GNU 7.5.0 -- The C compiler identification is GNU 7.5.0 -- The ASM compiler identification is GNU -- Found assembler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-gcc -- Check for working CXX compiler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-g++ -- Check for working CXX compiler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Check for working C compiler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-gcc -- Check for working C compiler: /home/4.1.0.4/tools/linaro64/bin/aarch64-linux-gnu-gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- cmake build type: RelWithDebInfo -- ccache enabled (export CCACHE_DISABLE=1 to disable) -- Skipping pwm file path /usr/local/workspace/px4-firmware/src/drivers/linux_pwm_out/module.yaml for VOXL2 -- Skipping pwm file path /usr/local/workspace/px4-firmware/src/drivers/pca9685_pwm_out/module.yaml for VOXL2 -- Skipping pwm file path /usr/local/workspace/px4-firmware/src/drivers/pwm_out/module.yaml for VOXL2 -- Skipping pwm file path /usr/local/workspace/px4-firmware/src/modules/simulation/pwm_out_sim/module_hil.yaml for VOXL2 -- Skipping pwm file path /usr/local/workspace/px4-firmware/src/modules/simulation/pwm_out_sim/module_sim.yaml for VOXL2 -- ROMFS: ROMFS/px4fmu_common Architecture: amd64 ==> CPACK_INSTALL_PREFIX = @DEB_INSTALL_PREFIX@ -- Configuring done -- Generating done -- Build files have been written to: /usr/local/workspace/px4-firmware/build/modalai_voxl2_default [0/562] git submodule src/modules/microdds_client/Micro-XRCE-DDS-Client [6/562] git submodule src/drivers/gps/devices [10/562] git submodule src/modules/mavlink/mavlink [269/562] Performing configure step for 'libmicroxrceddsclient_project' -- libmicroxrceddsclient_project configure command succeeded. See also /usr/local/workspace/px4-firmware/build/modalai_voxl2_default/src/modules/microdds_client/src/libmicroxrceddsclient_project-stamp/libmicroxrceddsclient_project-configure-*.log [383/562] Performing build step for 'libmicroxrceddsclient_project' -- libmicroxrceddsclient_project build command succeeded. See also /usr/local/workspace/px4-firmware/build/modalai_voxl2_default/src/modules/microdds_client/src/libmicroxrceddsclient_project-stamp/libmicroxrceddsclient_project-build-*.log [427/562] Performing install step for 'libmicroxrceddsclient_project' -- libmicroxrceddsclient_project install command succeeded. See also /usr/local/workspace/px4-firmware/build/modalai_voxl2_default/src/modules/microdds_client/src/libmicroxrceddsclient_project-stamp/libmicroxrceddsclient_project-install-*.log [562/562] Linking CXX executable bin/px4 /* Auto Magically Generated file */ /* Do not edit! */ #pragma once #define PX4_GIT_VERSION_STR "039064b897cf0a123bc1badb269e352186c8946d" #define PX4_GIT_VERSION_BINARY 0x039064b897cf0a12 #define PX4_GIT_TAG_STR "v1.14.0-2.0.85-dev" #define PX4_GIT_BRANCH_NAME "" #define PX4_GIT_OEM_VERSION_STR "" #define PX4_GIT_TAG_OR_BRANCH_NAME "v1.14.0-2.0.85-dev" // special variable: git tag, release or master branch #define MAVLINK_LIB_GIT_VERSION_STR "3ee5382d0c96134b0e1c250d8c2d54bfed0166fa" #define MAVLINK_LIB_GIT_VERSION_BINARY 0x3ee5382d0c96134b #define NUTTX_GIT_VERSION_STR "3f77354c0dc88793a47ff3b57595195ab45f7ba9" #define NUTTX_GIT_VERSION_BINARY 0x3f77354c0dc88793 #define NUTTX_GIT_TAG_STR "v11.0.0" *** End of apps processor build *** *** Starting qurt slpi build *** -- PX4 version: v1.14.0-2.0.85-dev (1.14.0) -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3") -- PX4 config file: /usr/local/workspace/px4-firmware/boards/modalai/voxl2-slpi/default.px4board -- PLATFORM qurt -- TOOLCHAIN qurt -- ROMFSROOT px4fmu_common -- PX4 config: modalai_voxl2-slpi_default -- PX4 platform: qurt -- The CXX compiler identification is Clang 10.0.0 -- The C compiler identification is Clang 10.0.0 -- The ASM compiler identification is unknown -- Found assembler: /home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/bin/hexagon-clang -- Check for working CXX compiler: /home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/bin/hexagon-clang++ -- Check for working CXX compiler: /home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/bin/hexagon-clang++ -- broken CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake:53 (message): The C++ compiler "/home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/bin/hexagon-clang++" is not able to compile a simple test program. It fails with the following output: Change Dir: /usr/local/workspace/px4-firmware/build/modalai_voxl2-slpi_default/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/ninja cmTC_05fc1 && [1/2] Building CXX object CMakeFiles/cmTC_05fc1.dir/testCXXCompiler.cxx.o [2/2] Linking CXX executable cmTC_05fc1 FAILED: cmTC_05fc1 : && /home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/bin/hexagon-clang++ -Wno-inconsistent-missing-override -DCONFIG_WCHAR_BUILTIN -D__CUSTOM_FILE_IO__ -mv66 -G0 -O3 -Wno-inconsistent-missing-override -DCONFIG_WCHAR_BUILTIN -D__CUSTOM_FILE_IO__ -mv66 -G0 -O3 -Wno-inconsistent-missing-override -DCONFIG_WCHAR_BUILTIN -D__CUSTOM_FILE_IO__ -mv66 -G0 -O3 -Wno-inconsistent-missing-override -DCONFIG_WCHAR_BUILTIN -D__CUSTOM_FILE_IO__ -mv66 -G0 -O3 -mv66 -mG0lib -G0 -fpic -shared -Wl,-Bsymbolic -Wl,--wrap=malloc -Wl,--wrap=calloc -Wl,--wrap=free -Wl,--wrap=realloc -Wl,--wrap=memalign -Wl,--wrap=__stack_chk_fail -Wl,/home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/target/hexagon/lib/v66/G0/pic/libc++.a -lc -mv66 -mG0lib -G0 -fpic -shared -Wl,-Bsymbolic -Wl,--wrap=malloc -Wl,--wrap=calloc -Wl,--wrap=free -Wl,--wrap=realloc -Wl,--wrap=memalign -Wl,--wrap=__stack_chk_fail -Wl,/home/4.1.0.4/tools/HEXAGON_Tools/8.4.05/Tools/target/hexagon/lib/v66/G0/pic/libc++.a -lc CMakeFiles/cmTC_05fc1.dir/testCXXCompiler.cxx.o -o cmTC_05fc1 && : hexagon-clang++: error: unable to execute command: Executable "hexagon-link" doesn't exist! hexagon-clang++: error: hexagon-link command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:219 (project) -- Configuring incomplete, errors occurred! See also "/usr/local/workspace/px4-firmware/build/modalai_voxl2-slpi_default/CMakeFiles/CMakeOutput.log". See also "/usr/local/workspace/px4-firmware/build/modalai_voxl2-slpi_default/CMakeFiles/CMakeError.log". Error: /usr/local/workspace/px4-firmware/build/modalai_voxl2-slpi_default is not a directory make: *** [Makefile:232: modalai_voxl2-slpi] Error 1 cat: build/modalai_voxl2-slpi_default/src/lib/version/build_git_version.h: No such file or directory *** End of qurt slpi build *** /usr/local/workspace User ID is 1000 Group ID is 1000 *** End of build ***
So as i followed the guides as EXACTLY as they described I am not sure whats going on with it and the tweaks I am trying are not working. Please let me know what I am missing here. Thanks!
-
RE: Configuring VOXL 2 with a new UDP port
@Eric-Katzfey Trying to run a MAVSDK example that changes some params and controls actuator outputs. So I would basically be able to let my MAVSDK scripts use 14550 just by running udpin:0.0.0.0:14550?
-
Configuring VOXL 2 with a new UDP port
Hello, I am wokring with MAVSDK on VOXL2 and I have made a script that runs on port 14551 successfully, but if I want to make a separate script or application that also communicates via mavlink how would I configure VOXL 2 to have a new UDP port since one port can only be used by a single instance.
Would it be as simple as modifying the vision hub config to include the following? Also what about adding a third?
{ "en_localhost_mavlink_udp": true, "localhost_udp_port_number": 14551, "secondary_ip": "127.0.0.1", "secondary_port": 14552 }
such that my seperate MAVSDK script could be ran using:
udpin:0.0.0.0:14552
I guess I am a little lost from how this works in MPA. I guess a little more clarity on how new UDP ports can be opened in addition to this documentation would be helpful.
-
RE: VOXL 2 Cant bind to ERLS or DSMX
@Gary-Holmgren I managed to finally get it working after flashing a few times with the web portal when the receiver and transmitter were in WiFi mode. It helped to connect instantaneously after flashing when making a binding phrase on both the receiver and transmitter.