@Eric-Katzfey That worked perfectly! Thank you. I put all the dynamic notch stuff on my github. I know James mentioned he wanted to implement it.
Latest posts made by LucaVertiq
-
RE: Dynamic notch filter on IMU_APPS based on Motor RPM
-
RE: Dynamic notch filter on IMU_APPS based on Motor RPM
@Moderator So I was able to get the notch filter working, but I'm still wondering if there's a way to get the mavlink onboard to publish faster than 10hz.
They dynamic notch filter as really improved the VIO on my vehicle which is very prone to vibrations.
-
Dynamic notch filter on IMU_APPS based on Motor RPM
@James-Strawson
Hey James,We chatted at AUVSI about getting dynamic notch filtering working. Right now I have all the basic stuff implemented, but am running into two issues.
The first issue is that even in a sandbox I'm having trouble creating an appropriate notch filter. I've looked at how PX4 and Ardupilot do it, but I'm not seeing as much attenuation as I'd expect. Seeing as you wrote the filter library, I was wondering if you had any notch filters already written. My filter knowledge is rather lacking.
The second issue is that ESC telemetry is only reported across the 'mavlink_onboard' topic at 10hz. I think I'd rather have it be a bit faster.
I was wondering if you had any insight into either of these. Here's the repo I've been working off of:
https://github.com/vertiq-luca/qrb5165-imu-server/tree/feature/rpm_filter
It's just mavlink rpm data feeding a low pass filter for now until I can get my notch filter to work, but it does appear to be filtering!Best,
Luca
-
RE: VOXL2 Mini flip camera orientation
@Alex-Kushleyev Glad that you were able to get that working. I think I tried updating to SDK 1.2.X and was having issues with getting the camera server working, but I think I may just need to wipe. All of these things would be super useful! I'll be out for the next week, so no rush, but it's very good to know that there's a fix.
-
RE: VOXL2 Mini flip camera orientation
@Alex-Kushleyev Oh! I'm glad I wasn't misunderstanding how it should work. Thanks for taking the time to check it out. I was actually able to get it to work in both slots 2 and 3, just not 0 (and of course not 1 because I don't have the driver).
-
RE: VOXL2 Mini flip camera orientation
@Alex-Kushleyev Thanks for taking a look. I think we won't need a driver for the imx214 on port 1, as I want the camera cables to extend outwards from the board instead of lying across the board regardless of whether we have them on J6 or J7. I've done some more testing and remain stuck with this error so if you find anything please let me know! I may try reflashing to 1.1.2 as a clean slate, but I want to make sure I have all of the settings I've changed and drivers I've built saved if they aren't in the /data/ directiory
-
RE: VOXL2 Mini flip camera orientation
@Moderator
Another update because this is confusing me. If I have the cameras plugged in with ov7251_1.bin and imx214_0.bin if I run voxl-camera-server -l immediately after power on it detects 2 cameras.voxl2-mini:~$ voxl-camera-server -l existing instance of voxl-camera-server found, attempting to stop it DEBUG: Attempting to open the hal module DEBUG: SUCCESS: Camera module opened on attempt 0 DEBUG: ----------- Number of cameras: 2 DEBUG: Cam idx: 0, Cam slot: 0, Slave Address: 0x0020, Sensor Id: 0x0214 DEBUG: Cam idx: 1, Cam slot: 1, Slave Address: 0x00E2, Sensor Id: 0x7750 DEBUG: Note: This list comes from the HAL module and may not be indicative DEBUG: of configurations that have full pipelines DEBUG: Number of cameras: 2 ==================================== Stats for camera: 0 ANDROID_SCALER_AVAILABLE_RAW_SIZES: These are likely supported by the sensor 4208 x 3120 3840 x 2160 1920 x 1080 1920 x 1080 ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS: These are NOT necessarily supported by the sensor 4208 x 3120 HAL_PIXEL_FORMAT_YCbCr_420_888 4208 x 3120 HAL_PIXEL_FORMAT_BLOB 4160 x 3120 HAL_PIXEL_FORMAT_YCbCr_420_888 4160 x 3120 HAL_PIXEL_FORMAT_BLOB 4096 x 2304 HAL_PIXEL_FORMAT_YCbCr_420_888 4096 x 2304 HAL_PIXEL_FORMAT_BLOB 4096 x 2160 HAL_PIXEL_FORMAT_YCbCr_420_888 4096 x 2160 HAL_PIXEL_FORMAT_BLOB 4056 x 3040 HAL_PIXEL_FORMAT_YCbCr_420_888 4056 x 3040 HAL_PIXEL_FORMAT_BLOB 4000 x 3000 HAL_PIXEL_FORMAT_YCbCr_420_888 4000 x 3000 HAL_PIXEL_FORMAT_BLOB 3840 x 2160 HAL_PIXEL_FORMAT_YCbCr_420_888 3840 x 2160 HAL_PIXEL_FORMAT_BLOB 3264 x 2448 HAL_PIXEL_FORMAT_YCbCr_420_888 3264 x 2448 HAL_PIXEL_FORMAT_BLOB 3200 x 2400 HAL_PIXEL_FORMAT_YCbCr_420_888 3200 x 2400 HAL_PIXEL_FORMAT_BLOB 2976 x 2976 HAL_PIXEL_FORMAT_YCbCr_420_888 2976 x 2976 HAL_PIXEL_FORMAT_BLOB 2688 x 1512 HAL_PIXEL_FORMAT_YCbCr_420_888 2688 x 1512 HAL_PIXEL_FORMAT_BLOB 2592 x 1944 HAL_PIXEL_FORMAT_YCbCr_420_888 2592 x 1944 HAL_PIXEL_FORMAT_BLOB 2048 x 1536 HAL_PIXEL_FORMAT_YCbCr_420_888 2048 x 1536 HAL_PIXEL_FORMAT_BLOB 1920 x 1440 HAL_PIXEL_FORMAT_YCbCr_420_888 1920 x 1440 HAL_PIXEL_FORMAT_BLOB 1928 x 1208 HAL_PIXEL_FORMAT_YCbCr_420_888 1928 x 1208 HAL_PIXEL_FORMAT_BLOB 1920 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888 1920 x 1080 HAL_PIXEL_FORMAT_BLOB 1600 x 1200 HAL_PIXEL_FORMAT_YCbCr_420_888 1600 x 1200 HAL_PIXEL_FORMAT_BLOB 1440 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888 1440 x 1080 HAL_PIXEL_FORMAT_BLOB 1280 x 960 HAL_PIXEL_FORMAT_YCbCr_420_888 1280 x 960 HAL_PIXEL_FORMAT_BLOB 1280 x 800 HAL_PIXEL_FORMAT_YCbCr_420_888 1280 x 800 HAL_PIXEL_FORMAT_BLOB 1280 x 768 HAL_PIXEL_FORMAT_YCbCr_420_888 1280 x 768 HAL_PIXEL_FORMAT_BLOB 1280 x 720 HAL_PIXEL_FORMAT_YCbCr_420_888 1280 x 720 HAL_PIXEL_FORMAT_BLOB 1080 x 1080 HAL_PIXEL_FORMAT_YCbCr_420_888 1080 x 1080 HAL_PIXEL_FORMAT_BLOB 1024 x 738 HAL_PIXEL_FORMAT_YCbCr_420_888 1024 x 738 HAL_PIXEL_FORMAT_BLOB 1024 x 768 HAL_PIXEL_FORMAT_YCbCr_420_888 1024 x 768 HAL_PIXEL_FORMAT_BLOB 864 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888 864 x 480 HAL_PIXEL_FORMAT_BLOB 800 x 600 HAL_PIXEL_FORMAT_YCbCr_420_888 800 x 600 HAL_PIXEL_FORMAT_BLOB 800 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888 800 x 480 HAL_PIXEL_FORMAT_BLOB 720 x 1280 HAL_PIXEL_FORMAT_YCbCr_420_888 720 x 1280 HAL_PIXEL_FORMAT_BLOB 720 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888 720 x 480 HAL_PIXEL_FORMAT_BLOB 640 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888 640 x 480 HAL_PIXEL_FORMAT_BLOB 640 x 400 HAL_PIXEL_FORMAT_YCbCr_420_888 640 x 400 HAL_PIXEL_FORMAT_BLOB 640 x 360 HAL_PIXEL_FORMAT_YCbCr_420_888 640 x 360 HAL_PIXEL_FORMAT_BLOB 352 x 288 HAL_PIXEL_FORMAT_YCbCr_420_888 352 x 288 HAL_PIXEL_FORMAT_BLOB 320 x 240 HAL_PIXEL_FORMAT_YCbCr_420_888 320 x 240 HAL_PIXEL_FORMAT_BLOB 240 x 320 HAL_PIXEL_FORMAT_YCbCr_420_888 240 x 320 HAL_PIXEL_FORMAT_BLOB 176 x 144 HAL_PIXEL_FORMAT_YCbCr_420_888 176 x 144 HAL_PIXEL_FORMAT_BLOB 4208 x 3120 HAL_PIXEL_FORMAT_RAW10 4208 x 3120 HAL_PIXEL_FORMAT_RAW12 4208 x 3120 HAL_PIXEL_FORMAT_RAW16 4208 x 3120 HAL_PIXEL_FORMAT_RAW_OPAQUE ANDROID_SENSOR_INFO_SENSITIVITY_RANGE min = 54 max = 431 ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY 431 ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE min = 10449ns max = 683714540ns ==================================== Stats for camera: 1 ANDROID_SCALER_AVAILABLE_RAW_SIZES: These are likely supported by the sensor 640 x 480 640 x 480 640 x 480 ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS: These are NOT necessarily supported by the sensor 640 x 480 HAL_PIXEL_FORMAT_YCbCr_420_888 640 x 480 HAL_PIXEL_FORMAT_BLOB 640 x 400 HAL_PIXEL_FORMAT_YCbCr_420_888 640 x 400 HAL_PIXEL_FORMAT_BLOB 640 x 360 HAL_PIXEL_FORMAT_YCbCr_420_888 640 x 360 HAL_PIXEL_FORMAT_BLOB 352 x 288 HAL_PIXEL_FORMAT_YCbCr_420_888 352 x 288 HAL_PIXEL_FORMAT_BLOB 320 x 240 HAL_PIXEL_FORMAT_YCbCr_420_888 320 x 240 HAL_PIXEL_FORMAT_BLOB 240 x 320 HAL_PIXEL_FORMAT_YCbCr_420_888 240 x 320 HAL_PIXEL_FORMAT_BLOB 176 x 144 HAL_PIXEL_FORMAT_YCbCr_420_888 176 x 144 HAL_PIXEL_FORMAT_BLOB 640 x 480 HAL_PIXEL_FORMAT_RAW10 640 x 480 HAL_PIXEL_FORMAT_RAW12 640 x 480 HAL_PIXEL_FORMAT_RAW16 640 x 480 HAL_PIXEL_FORMAT_RAW_OPAQUE ANDROID_SENSOR_INFO_SENSITIVITY_RANGE min = 54 max = 3451 ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY 3451 ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE min = 0ns max = 1266732525ns ==================================== Number of cameras detected: 2 ====================================
If I instead run voxl-inspect-cam -a it shows that tracking is working, but hires is not.
| hires_large_color | | hires_large_encoded | | hires_large_grey | | hires_small_color | | hires_small_encoded | | hires_small_grey | | hires_snapshot | | qvio_overlay | 368640 | 640 | 576 | 5.00 | 64 | 694 | 25.3 | 29.5 | 87.0 | RAW8 | tracking | 307200 | 640 | 480 | 5.00 | 64 | 694 | 11.8 | 30.0 | 73.7 | RAW8
My camera server config is below:
* 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, "cameras": [{ "type": "imx214", "name": "hires", "enabled": true, "camera_id": 0, "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": 4208, "large_video_height": 3120, "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": 4208, "en_snapshot_height": 3120, "ae_mode": "isp" }, { "type": "ov7251", "name": "tracking", "enabled": true, "camera_id": 1, "fps": 30, "en_rotate": false, "en_preview": true, "preview_width": 640, "preview_height": 480, "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 }] }
It appears as if something happens when the stream is accessed. If I run voxl-camera-server and then kill it voxl-camera-server -l will still show 2 cameras, but if I instead run voxl-camera-server and then in another window run voxl-inspect-cam -a the original window will no longer respond to ctrl-C. If I force kill i with kill -9 proccess_num then run voxl-camera-server -l it now shows 1 camera until I reboot.
Any ideas?
-
RE: VOXL2 Mini flip camera orientation
@Alex-Kushleyev Hey Alex, that worked for that fix. Additionally I attempted to put the same cameras on J6 in the orientation with the OV7251 on the M0135 Upper and the IMX214 on the M0135 Lower.
My understanding is that I should put the com.qti.sensormodule.ov7251_1.bin and com.qti.sensormodule.imx214_0.bin into the /usr/lib/camera folder (and delete the non-used ones).
When I run voxl-camera-server -l this only shows the tracking camera. Plugging the board back into J7 again shows both cameras when switching back to imx214_2 and ov7251_3 drivers.
Am I making a bad assumption here?
Additionally I notice that the IMX214 doesn't have drivers for _1 and _5, but does have a driver for _3. Why is this? We aren't quite sure what orientation will work best for our vehicle layout so we were hoping to be able to use all 4 configurations of double camera mounted on m0135 boards with J6 and J7.
Thanks,
Luca
-
RE: PX4 with custom driver on DSP chip crashes when mode is not manual
@Alex-Kushleyev Thank you! I'll look through the code a bit harder to make sure I'm not doing anything silly. I'll let you know if I have any more questions.