@Bernhard Maybe our issues are related? See [my post].(https://forum.modalai.com/topic/3912/problem-acquiring-gps-satellites-possible-voxl2-board-emi?_=1731073406011)
Latest posts made by nuallaino
-
Problem acquiring GPS satellites (possible voxl2 board EMI?)
Hello,
We have a Starling 2 and a few Starling 2 Max's which have issues acquiring GPS. We tested on several occasions outside with clear skies. However, we never acquire any satellites no matter how long we wait.The current version information is as follows, but we have tried earlier voxl-suite versions too:
system-image: 1.7.10-M0054-14.1a-perf kernel: #1 SMP PREEMPT Fri Sep 27 22:10:45 UTC 2024 4.19.125 -------------------------------------------------------------------------------- hw platform: M0054 mach.var: 1.2.1 -------------------------------------------------------------------------------- voxl-suite: 1.3.5 -------------------------------------------------------------------------------- current IP: wlan0: 192.168.8.1 --------------------------------------------------------------------------------
It appears that there is comms with the gps module, from the following log excerpt:
INFO [muorb] SLPI: GPS UART baudrate set to 9600 INFO [muorb] SLPI: GPS UART baudrate set to 38400 INFO [muorb] SLPI: Got ack to initial CFG_VALSET! INFO [muorb] SLPI: u-blox firmware version: SPG 5.10 INFO [muorb] SLPI: u-blox protocol version: 34.10 INFO [muorb] SLPI: u-blox module: MAX-M10S INFO [uORB] Advertising remote topic sensor_gps
We used SignalHound to check of EMI from the drone in an RF isolation chamber. The 1st plot shows the chamber baseline with the Starling 2 powered off and the second shows the spike in EM from the Starling 2 once powered on. The EMI is right at the GPS L1 freq.
After modifying one of the Starling 2 Max drones to use a pixhawk gps module on a mast (as in the following picture) we were able to acquire gps satellites without issue. No software changes were made.
I'd appreciate any guidance on whether we have a hardware issue with the out of the box GPS units or any other steps to debug the issue.
Thanks!
-
RE: qvio_overlay "ERR CAM_MISSING CAM_BAD_RES STALLED" on Starling 2
@Moderator Yes, I did see that. However I expected this to work out of the box. I haven't changed anything.
-
RE: ros2 run voxl_mpa_to_ros2 voxl_mpa_to_ros2_node stopped by ros2 bag record /hires_small_encoded
@tahawaru I have also seen this, but with subscribing to the topic in rviz2 rather than recording a ros2 bag.
-
RE: voxl portal, cannot list cameras from tv icon (or list disappears quickly)
@groupo Thanks for that! Glad to hear I'm not the only one!
-
qvio_overlay "ERR CAM_MISSING CAM_BAD_RES STALLED" on Starling 2
Hello,
I recently received a Startling 2 drone and have been trying to get the Mapper functionality to work.I tried SDK 1.3.3 and then tried 1.3.4-202409192201.
TOF seems to be working fine, as is the tracking_front camera however QVIO is not. See the attached screenshot and logs.
Any advice on how to resolve this would be appreciated.
voxl2:/$ voxl-inspect-qvio waiting for server dt(ms) | T_imu_wrt_vio (m) |Roll Pitch Yaw (deg)|features|quality| state| error_codes | 31.1 | 0.00 0.00 0.00| 0.0 -0.0 0.0| 0 | -1% | FAIL | CAM_MISSING CAM_BAD_RES STALLED ^C received SIGINT Ctrl-C closing and exiting voxl2:/$ voxl-inspect-services Scanning services... Service Name | Enabled | Running | CPU Usage ------------------------------------------------------------------- docker-autorun | Disabled | Not Running | modallink-relink | Disabled | Not Running | voxl-camera-server | Enabled | Running | 93.9% voxl-cpu-monitor | Enabled | Running | 0.3% voxl-dfs-server | Disabled | Not Running | voxl-feature-tracker | Disabled | Not Running | voxl-flow-server | Disabled | Not Running | voxl-imu-server | Enabled | Running | 3.6% voxl-lepton-server | Disabled | Not Running | voxl-lepton-tracker | Disabled | Not Running | voxl-logger | Disabled | Not Running | voxl-mavcam-manager | Enabled | Running | 0.0% voxl-mavlink-server | Enabled | Running | 3.1% voxl-modem | Disabled | Not Running | voxl-neopixel-manager | Disabled | Not Running | voxl-open-vins-server | Disabled | Not Running | voxl-osd | Disabled | Not Running | voxl-portal | Enabled | Running | 24.1% voxl-px4-imu-server | Disabled | Not Running | voxl-px4 | Enabled | Running | 21.6% voxl-qvio-server | Enabled | Running | 5.0% voxl-rangefinder-server | Enabled | Running | 0.5% voxl-remote-id | Disabled | Not Running | voxl-softap | Disabled | Not Running | voxl-state-estimator | Disabled | Not Running | voxl-static-ip | Disabled | Not Running | voxl-streamer | Enabled | Running | 0.0% voxl-tag-detector | Disabled | Not Running | voxl-tflite-server | Disabled | Not Running | voxl-time-sync | Disabled | Not Running | voxl-uvc-server | Disabled | Not Running | voxl-vision-hub | Enabled | Running | 4.1% voxl-vrx | Disabled | Not Running | voxl-vtx | Disabled | Not Running | voxl-wait-for-fs | Enabled | Completed | voxl2:/$ cat /etc/modalai/voxl-camera-server.conf /** * 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": 30, "en_rotate": true, "en_preview": true, "preview_width": 1280, "preview_height": 800, "en_raw_preview": true, "ae_mode": "lme_msv", "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 33000, "gain_min": 54, "gain_max": 8000, "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 }, { "type": "imx412", "name": "hires", "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": "h265", "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, "en_large_video": true, "large_video_width": 4056, "large_video_height": 3040, "large_venc_mode": "h265", "large_venc_br_ctrl": "cqp", "large_venc_Qfixed": 38, "large_venc_Qmin": 15, "large_venc_Qmax": 50, "large_venc_nPframes": 29, "large_venc_mbps": 30, "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" }, { "type": "pmd-tof-liow2", "name": "tof", "enabled": true, "camera_id": 2, "fps": 10, "en_rotate": true, "ae_mode": "off", "exposure_max_us": 6000, "standby_enabled": false, "decimator": 5 }, { "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, "ae_mode": "lme_msv", "ae_desired_msv": 60, "exposure_min_us": 20, "exposure_max_us": 33000, "gain_min": 54, "gain_max": 8000, "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 }] } voxl2:/$ cat /etc/modalai/voxl-qvio-server.conf /** * This file contains configuration that's specific to voxl-qvio-server. * * voxl-qvio-server also uses parameters from the following config files: * /etc/modalai/extrinsics.conf * /data/modalai/opencv_tracking_intrinsics.yml * * parameter descriptions: * * mask_file_path: A file path for qvio mask. * 1/4 resolution image (w.r.t. VGA), 160 x 120, * PGM format, the part of the camera view for which * pixels are set to 255 is blocked from feature * detection useful, e.g., to avoid detecting & tracking * points on landing gear reaching into camera view. * * imu_name: VOXL uses imu1 by defualt since it's the most reliable. On * VOXL-FLIGHT you can optionally try imu0 which is a newer icm42688 * voxl-configure-mpa will decide which IMU to use for you. * * cam_name: camera to use, defaults to tracking0 * * odr_hz: Output data date is independent from the camera frame rate so you can * choose the desired output data rate. Note that voxl-imu-server defaults to * 500hz imu sampling but new data is received by voxl-qvio-server at 100hz by * default so requesting qvio data faster requires updating voxl-imu-server. * * use_camera_height_bootstrap: When enabled, the feature estimator will assume * the system starts up with the camera pointed partially at the ground and use * this to make an intial guess of the feature's depth. This should be enabled * for drones that have known-height landing gear. * * camera_height_off_ground_m: camera distance above ground (meters) for the * above bootstrap feature. * * enable_init_while_moving: optionally allow the algorithm to initialize or * reinitialize while moving. Use this if you want to be able to reinitialize * during flight. Based on camera motion, not IMU motion. Recommended to leave * this off unless absolutely desired. * * cam_imu_timeshift_s: Misalignment between camera and imu timestamp in * seconds. * * cam_imu_timeshift_s_uncertainty: uncertainty in camera imu timestamp * misalignment * * T_cam_wrt_imu_uncertainty[3] & R_cam_to_imu_uncertainty[3]: uncertainty in * camera-imu translation * * accl_fsr_ms2 & gyro_fsr_rad: Full scale range used to detect clipping. By * default this is set to a little under the real 16G and 2000DPS FSR so * clipping is detected reliably * * accl_noise_std_dev & gyro_noise_std_dev: standard deviation of accl and gyro * noise * * cam_noise_std_dev: Standard dev of camera noise per pixel. * * min_std_pixel_noise: Minimum of standard deviation of feature measurement * noise in pixels. * * fail_high_pixel_noise_points: Scales measurement noise and compares against * search area (is search area large enough to reliably compute measurement * noise covariance matrix). * * limited_imu_bw_trigger: To prevent tracking failure during/right after (hard) * landing: If sum of 3 consecutive accelerometer samples in any dimension * divided by 4.3 exceed this threshold, IMU measurement noise is increased (and * resets become more likely); if platform vibrates heavily during flight, this * may trigger mid- flight; if poseQuality in mvVISLAMPose drops to * MV_TRACKING_STATE_LOW_QUALITY during flight, improve mechanical dampening * (and/or increase threshold). QC default is 35, we prefer 25. * * gps_imu_time_alignment_s: Misalignment between GPS and IMU time in seconds * * T_gps_wrt_imu: location of gps with respect to the IMU in meters * * enable_mapping: rudimentary lightweight mapping of feature points, leave this * on. * * enable_gps_vel: allow gps velocity to be added to VIO, requires ModalAI * custom PX4 firmware to expose this data. This is an Alpha feature, don't * enable this unless instructed to. * * * * en_auto_reset: on by default. If any one of the following thresholds are met * voxl-qvio-server will assume an otherwise undetected fault has occured in * the inderlying algorithm and will hard reset the QVIO library. * * auto_reset_max_velocity: meters per second, if velocity faster than this is * detected then an auto-reset is triggered * * auto_reset_max_v_cov_instant: if the covariance of the velocity estimate ever * exceeds this for a since sample then an auto-reset is triggered * * auto_reset_max_v_cov: if th covariance of the velocity estimate ever exceeds * this for more than auto_reset_max_v_cov_timeout_s then an auto-reset is triggered * * auto_reset_max_v_cov_timeout_s: time period for auto_reset_max_v_cov criteria * * auto_reset_min_features: if fewer than this number of features are tracked for * more than auto_reset_min_feature_timeout_s then an auto-reset is triggered. * it is okay for feature tracking to be lost for short periods of time. * * * * en_standby_mode: When enabled, qvio will skip camera frames while voxl-cpu-monitor * reports that the CPU is in standby mode. * * standby_skip_frames: number of frames to skip before processing one. default is 1, meaning skip every other frame. 30 -> 15hz */ { "imu_name": "imu_apps", "cam_name": "tracking_front", "lens_cal_path": "/data/modalai/opencv_tracking_front_intrinsics.yml", "cam_extrinsics_name": "tracking_front", "use_second_cam_if_stereo": false, "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.0020000000949949026, "cam_imu_timeshift_s_uncertainty": 0.0010000000474974513, "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": "" } voxl2:/$
-
voxl portal, cannot list cameras from tv icon (or list disappears quickly)
Hello,
I have been having an issue with Starling 2 max and Starling 2 drones using varying versions of VOXL2 SDK (1.3.2, 1.3.3, 1.3.4-202409192201). I have also tried Edge, Chrome and Firefox web browsers on Windows 11 and Ubuntu 22.04.The issue is when I click the TV icon to select a camera, either 1) the camera list does not appear OR 2) the list appears and then disappears before I have a chance to select one.
This occurs on the VIO, Mapper and Pointclouds screens
I tried to upload a video to demonstrate the issue but I dont have permission.
Any help would be appreciated.
Thanks!
-
RE: Missing install_build_deps.sh in voxl-opencv
@Eric-Katzfey Updating submodules after cloning the repo resolves the build issues. Should that be covered by the install_build_deps.sh script?
In any case, the instructions need to be updated.
Thanks.