snav fails to find libsensor_imu.so
-
Hi All,
I installed the snav-modalai_1.3.0_8x96.ipk on my voxl flight deck. When I ran the "bash configure_snav.sh", the process failed when the script was trying to calibrate the imu sensor via "snav_calibration_manager -s". Here is the error message:
I checked the /usr/lib/ and there is no libsensor_imu.so in the folder.
Any help will be appreciated.
Best,
Rui -
Hi Rui,
A few things..
- there have been a few updates in SNAV (mainly to support our new ESC, nothing major). Please use the latest release in https://developer.modalai.com/asset :
snav-modalai_1.4.1_8x96.ipk
- in order to run SNAV, you ineed to install imu_app package
opkg install imu_app
. This may remove some package like voxl-imu-server, since they can't run at the same time. imu_app package provides access to an older version of IMU server, which is used to pass imu data between SNAV and CPU applications (like vio, etc). you can also download the ipk from http://voxl-packages.modalai.com/stable/imu_app_0.0.6.ipk and runopkg install imu_app_0.0.6.ipk
- in order to install the latest snav ipk, you need to modify /etc/opkg/opkg.conf (commend out the line at the bottom
src/gz stable http://voxl-packages.modalai.com/stable
. If you don't do this, then the package config will override your new ipk with another packagemodalai-vl
and pull it from the package repo. However it so happens that latest SNAV is not a part of modalai-vl package.. - after you install the latest snav ipk, you can change opkg.conf back to normal.
- the rest of SNAV install should work the same as before..
- if you don't want to use latest SNAV, you don't have to, you can just use your existing version and install the imu app and SNAV should work.
Hope this helps.
Alex
- there have been a few updates in SNAV (mainly to support our new ESC, nothing major). Please use the latest release in https://developer.modalai.com/asset :
-
Hi Alex,
Sorry for the late reply. I was moving over last several days.
I installed the imu_app and the snav-modalai_1.4.1 as you instructed, however, when I tried to runsnav_calibration_manager -s
, it gave me this error:
I was suspicious that the voxl_imu_server might be running, so I first checked if the voxl_imu_server was removed. It turns out that it was still being installed
I was not sure whether I should manually remove it, so I tried disable the service first as following:but after this the
snav_calibration_manager -s
still gave me the same error. I was also suspicious that the snav might not be running, so I ranstart snav
, here is the output:
Yet after this, the
snav_calibration_manager -s
still gave me the same error I showed at the beginning of this reply.I'm not sure what else I should do. Any advice will be appreciated!
Best,
Rui -
Hi All,
I'm just following up this post to see if there is any advice that you can provide to help resolving this issue.
Thank you for your time in advance!
Best,
Rui -
Hello Rui,
After installing SNAV IPK, did you do anything else with SNAV before running snav_calibration_manager?
Installing the ipk does not autostart SNAV, if I remember correctly. So you might be trying to run calibration manager without snav itself running. SNAV ipk install does put the service files for systemd into /etc/systemd/system (i think), but if you want snav to auto start, you need to run
systemctl enable snav
. However, enabling snav, does not start it right that moment (until during next boot). if you just want to start snav, usesystemctl start snav
or you can just runstart snav
.Before starting snav, you need to make sure that snav_params.xml is in place in
/usr/lib/rfsa/adsp/
- usually it is either a symlink to a standard configuration or a custom file.Then to check if snav is running after starting, i strongly suggest running
snav_calibration_manager -d
to see what debugging / error messages it prints. If IMU static calibration needs to be performed (which is the case before first flight), you will see a message saying that, at which point you could runsnav_calibration_manager -s
I also usually disable the
snav vio app
anddrone controller
(latter is pretty much obsolete) like so:systemctl disable snav_dronecontroller systemctl disable snav_vio_app
When I know snav itself is working fine, you can make sure VIO params are set correctly and then enable/run snav_vio_app as well. If you know that vio app params are already correct, then you don't need to disable it.
-
@Alex-Kushleyev said in snav fails to find libsensor_imu.so:
Hi Alex,
Thanks for the reply! I don't recall I ran anything special with snav other thanstart snav
andsnav_calibration_manager -s
As you instructed, After I ran
start snav
, I triedsnav_calibration_manager -d
and here is the output it gave:
It doesn't seem to have anything special.
Then I tried to runsnav_calibration_manager -s
again and it still gives me this error:
-
I am sorry, I meant run
snav_inspector -d
to see the debug messages coming from SNAV. Apologies!Alex
-
No problem! It seems that the SNAV_IMU_MPC_DRIVER is not able to initialize the IMU0. I'm attaching the full report below:
~ # snav_inspector -d Please wait - attempting to read log file /data/logs/snav/flight/snav_00001_01.log. Updated param file name to snav_params.xml Attempting to parse parameters Attempting to open parameter file: /dev/fs/snav_params.xml. *Note /dev/fs/ on APQ8096 is /usr/lib/rfsa/adsp/ Successfully opened file /dev/fs/snav_params.xml [100] XML parser successfully parsed document. Set parameter position_control_params:basethrust to 240 Set parameter optic_flow_estimator_params:camera_offset_x to 0.055 Set parameter optic_flow_estimator_params:camera_offset_y to 0 Set parameter voltage_monitor_params:voltage_warn_threshold to 7.05 Set parameter voltage_monitor_params:voltage_warn_critical to 6.95 Set parameter voltage_monitor_params:voltage_force_landing to 6.9 Set parameter voltage_monitor_params:voltage_no_start to 6.7 Set parameter voltage_monitor_params:voltage_warn_threshold_external to 6.85 Set parameter voltage_monitor_params:voltage_warn_critical_external to 6.75 Set parameter voltage_monitor_params:voltage_force_landing_external to 6.7 Set parameter voltage_monitor_params:voltage_no_start_external to 6.6 Set parameter voltage_monitor_params:voltage_landing_reset_threshold to 7.7 Set parameter voltage_monitor_params:low_voltage_thrust_slope to 700 Set parameter att_control_params:kp_roll_moment to 23.084 Set parameter att_control_params:kp_pitch_moment to 23.084 Set parameter att_control_params:kd_roll_moment to 2.6508 Set parameter att_control_params:kd_pitch_moment to 2.6508 Set parameter att_control_params:kpy to 109.831 Set parameter att_control_params:kdy to 18.699 Set parameter att_control_params:second_order_yaw_filter_cutoff_freq to 52.873 Set parameter att_control_params:ang_vel_z_ff_factor to 0.6 Set parameter att_control_params:prop_config_type to 0 Set parameter att_control_params:prop_config_Dx to 0.0707 Set parameter att_control_params:prop_config_Dy to 0.08 Set parameter att_control_params:prop_config_beta to 0 Set parameter att_control_params:prop_rpm_thrust_curve_a2 to 4.2447e-07 Set parameter att_control_params:min_rpm to 5500 Set parameter att_control_params:max_rpm to 16400 Set parameter att_control_params:number_of_props to 4 Set parameter att_control_params:use_max_rpm_curve to 1 Set parameter att_control_params:max_rpm_curve_a0 to 8000 Set parameter att_control_params:max_rpm_curve_a1 to 1200 Set parameter rc_params:min_thrust to 60 Set parameter rc_params:max_thrust to 460 Set parameter rc_params:yaw_acc_limit to 9 Set parameter orientation_params:vehicle_center_to_imu_x to 0.05 Set parameter orientation_params:vehicle_center_to_imu_y to 0.0152 Set parameter orientation_params:vehicle_center_to_imu_z to -0.023 Set parameter orientation_params:imu_R00 to 0 Set parameter orientation_params:imu_R01 to 1 Set parameter orientation_params:imu_R02 to 0 Set parameter orientation_params:imu_R10 to -1 Set parameter orientation_params:imu_R11 to 0 Set parameter orientation_params:imu_R12 to 0 Set parameter orientation_params:imu_R20 to 0 Set parameter orientation_params:imu_R21 to 0 Set parameter orientation_params:imu_R22 to 1 Set parameter orientation_params:imu1_R00 to -1 Set parameter orientation_params:imu1_R01 to 0 Set parameter orientation_params:imu1_R02 to 0 Set parameter orientation_params:imu1_R10 to 0 Set parameter orientation_params:imu1_R11 to 1 Set parameter orientation_params:imu1_R12 to 0 Set parameter orientation_params:imu1_R20 to 0 Set parameter orientation_params:imu1_R21 to 0 Set parameter orientation_params:imu1_R22 to -1 Set parameter orientation_params:imu2_R00 to 1 Set parameter orientation_params:imu2_R01 to 0 Set parameter orientation_params:imu2_R02 to 0 Set parameter orientation_params:imu2_R10 to 0 Set parameter orientation_params:imu2_R11 to 1 Set parameter orientation_params:imu2_R12 to 0 Set parameter orientation_params:imu2_R20 to 0 Set parameter orientation_params:imu2_R21 to 0 Set parameter orientation_params:imu2_R22 to 1 Set parameter orientation_params:mag_R00 to -1 Set parameter orientation_params:mag_R01 to 0 Set parameter orientation_params:mag_R02 to 0 Set parameter orientation_params:mag_R10 to 0 Set parameter orientation_params:mag_R11 to 1 Set parameter orientation_params:mag_R12 to 0 Set parameter orientation_params:mag_R20 to 0 Set parameter orientation_params:mag_R21 to 0 Set parameter orientation_params:mag_R22 to -1 Set parameter orientation_params:downward_cam_R00 to 0 Set parameter orientation_params:downward_cam_R01 to -1 Set parameter orientation_params:downward_cam_R10 to -1 Set parameter orientation_params:downward_cam_R11 to 0 Set parameter device_drivers_params:rc0_driver_file_name to librc0_spektrum_driver.so Set parameter device_drivers_params:baro0_driver_file_name to libbaro0_bmp280_driver.so Set parameter device_drivers_params:vsense0_driver_file_name to libvsense0_ltc2946_driver.so Set parameter device_drivers_params:isense0_driver_file_name to libvsense0_ltc2946_driver.so Set parameter device_drivers_params:mag0_driver_file_name to libmag0_ak0991x_driver.so Set parameter device_drivers_params:sonar0_driver_file_name to libsonar0_maxbotix_driver.so Set parameter device_drivers_params:gnss0_driver_file_name to libgnss0_qc_driver.so Set parameter device_drivers_params:gnss1_driver_file_name to libgnss0_ublox_driver.so Set parameter device_drivers_params:imu0_driver_file_name to libimu_mpu_driver.so Set parameter device_drivers_params:imu0_description to imu_flight_primary_mpu9250 Set parameter device_drivers_params:imu0_bit_rate to 10000000 Set parameter device_drivers_params:imu0_update_rate_hz to 500 Set parameter device_drivers_params:imu0_hw_accel_lpf_hz to 184 Set parameter device_drivers_params:imu0_hw_gyro_lpf_hz to 184 Set parameter device_drivers_params:imu0_sw_accel_lpf_hz to 0 Set parameter device_drivers_params:imu0_sw_gyro_lpf_hz to 0 Set parameter device_drivers_params:imu1_driver_file_name to libimu_mpu_driver_copy1.so Set parameter device_drivers_params:imu1_description to imu_flight_secondary_mpu9250 Set parameter device_drivers_params:imu1_bit_rate to 10000000 Set parameter device_drivers_params:imu1_update_rate_hz to 1000 Set parameter device_drivers_params:imu1_hw_accel_lpf_hz to 184 Set parameter device_drivers_params:imu1_hw_gyro_lpf_hz to 184 Set parameter device_drivers_params:imu1_sw_accel_lpf_hz to 0 Set parameter device_drivers_params:imu1_sw_gyro_lpf_hz to 0 Set parameter device_drivers_params:imu2_driver_file_name to libimu_mpu_driver_copy2.so Set parameter device_drivers_params:imu2_description to imu_camera_video_icm20602 Set parameter device_drivers_params:imu2_bit_rate to 10000000 Set parameter device_drivers_params:imu2_update_rate_hz to 1000 Set parameter device_drivers_params:imu2_hw_accel_lpf_hz to 184 Set parameter device_drivers_params:imu2_hw_gyro_lpf_hz to 184 Set parameter device_drivers_params:imu2_sw_accel_lpf_hz to 0 Set parameter device_drivers_params:imu2_sw_gyro_lpf_hz to 0 Set parameter device_drivers_params:imu0_device_path to /dev/spi-1 Set parameter device_drivers_params:imu1_device_path to /dev/spi-10 Set parameter device_drivers_params:rc0_device_path to /dev/tty-12 Set parameter device_drivers_params:esc0_device_path to /dev/tty-5 Set parameter device_drivers_params:gnss0_device_path to internal Set parameter device_drivers_params:gnss1_device_path to /dev/tty-9 Set parameter device_drivers_params:sonar0_device_path to /dev/tty-7 Set parameter device_drivers_params:baro0_device_path to /dev/iic-3 Set parameter device_drivers_params:mag0_device_path to /dev/iic-6 Set parameter device_drivers_params:vsense0_device_path to /dev/iic-8 Set parameter device_drivers_params:isense0_device_path to /dev/iic-8 Set parameter device_drivers_params:imu0_client_file_name to libimu_server_2_0.so Set parameter device_drivers_params:imu1_client_file_name to libimu_server_2_0.so Set parameter device_drivers_params:imu2_client_file_name to libimu_server_2_0.so Set parameter rc_receiver_params:is_binding_supported to 1 Set parameter rc_receiver_params:bind_mode to 2 Set parameter rc_receiver_params:power_ctrl_pin to 117 Set parameter rc_receiver_params:bind_pin to 86 Set parameter logging_params:buffer_size to 200000 Parameter parsing successful [0]. Parameter loading successful [1]. SNAV Parameter checker succeeded Param parsing took 440568 us Setting clock and bus scaling to 100 100 Successfully opened file fiducial_markers.xml [100] Read 3465 characters in file fiducial_markers.xml XML parser successfully parsed document. Found "SnavFiducialMarkers" attribute in xml file. Found "FiducialMarker" of type "AprilTag" in xml file. Setting id to 0 Setting pos_x to 0.0 Setting pos_y to 0.0 Setting pos_z to 0.0 Setting R_00 to 0.0 Setting R_01 to 1.0 Setting R_02 to 0.0 Setting R_10 to -1.0 Setting R_11 to 0.0 Setting R_12 to 0.0 Setting R_20 to 0.0 Setting R_21 to 0.0 Setting R_22 to 1.0 Successfully added new fiducial marker. id = 0, type = AprilTag position = (0.000000, 0.000000, 0.000000) rotation: [ 0.000000 1.000000 0.000000 ] [ -1.000000 0.000000 0.000000 ] [ 0.000000 0.000000 1.000000 ] [DEVICE_DRIVERS] : imu0 .so name = libimu_mpu_driver.so [DEVICE_DRIVERS] : imu1 .so name = libimu_mpu_driver_copy1.so [DEVICE_DRIVERS] : imu2 .so name = libimu_mpu_driver_copy2.so [DEVICE_DRIVERS] : baro0 .so name = libbaro0_bmp280_driver.so [DEVICE_DRIVERS] : sonar0 .so name = libsonar0_maxbotix_driver.so [DEVICE_DRIVERS] : mag0 .so name = libmag0_ak0991x_driver.so [DEVICE_DRIVERS] : mag1 .so name = [DEVICE_DRIVERS] : vsense0 .so name = libvsense0_ltc2946_driver.so [DEVICE_DRIVERS] : isense0 .so name = libvsense0_ltc2946_driver.so [DEVICE_DRIVERS] : led0 .so name = [DEVICE_DRIVERS] : rc0 .so name = librc0_spektrum_driver.so [DEVICE_DRIVERS] : gnss0 .so name = libgnss0_qc_driver.so [DEVICE_DRIVERS] : gnss1 .so name = libgnss0_ublox_driver.so [DEVICE_DRIVERS] : esc0 .so name = (built-in) [DEVICE_DRIVERS] : imu0_client .so name = libimu_server_2_0.so [DEVICE_DRIVERS] : imu1_client .so name = libimu_server_2_0.so [DEVICE_DRIVERS] : imu2_client .so name = libimu_server_2_0.so SNAV_DRIVERS: Could not open library (libgnss0_qc_driver.so): cannot open libgnss_test_skel.so, 0 SNAV_DRIVERS: Successfully opened driver : libgnss0_ublox_driver.so, handle=2958424112 SNAV_UBLOX_GNSS_DRIVER: Updated gnss device path param to /dev/tty-9 SNAV_UBLOX_GNSS_DRIVER: Updated gnss bit rate param to 9600 SNAV_UBLOX_GNSS_DRIVER: Updated gnss update interval to 100000 SNAV_UBLOX_GNSS_DRIVER: Updated gnss logging function pointer SNAV_UBLOX_GNSS_DRIVER: thread creation Successful SNAV_UBLOX_GNSS_DRIVER: Starting thread, opening device /dev/tty-9 at baud rate of 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 UBLOX: gps try 10 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_DRIVERS: Successfully opened driver : libbaro0_bmp280_driver.so, handle=2958433728 SNAV_BMP280_DRIVER: Updated baro device path param to /dev/iic-3 SNAV_BMP280_DRIVER: Updated baro bit rate to 400000 SNAV_BMP280_DRIVER: Updated baro update interval to 20000 SNAV_BMP280_DRIVER: thread creation Successful SNAV_BMP280_DRIVER: Starting thread, opening device /dev/iic-3 SNAV_BMP280_DRIVER: Setting i2c slave address 0x76, baud rate 400000 SNAV_BMP280_DRIVER: BMP280 verify id: read 88, expected 88: SUCCESS! SNAV_BMP280_DRIVER: BMP280 params 27563 26008 50 37767 -10535 3024 7175 -187 -7 15500 -14600 6000 SNAV_BMP280_DRIVER: BMP280 sensor config1 ok! SNAV_BMP280_DRIVER: BMP280 sensor config2 ok! SNAV_BMP280_DRIVER: BMP280 initialization successful! SNAV_DRIVERS: Successfully opened driver : libsonar0_maxbotix_driver.so, handle=2958441200 SNAV_SONAR0_MAXBOTIX_DRIVER: Updated sonar device path param to /dev/tty-7 SNAV_SONAR0_MAXBOTIX_DRIVER: Updated sonar0_bit_rate param to 9600 SNAV_SONAR0_MAXBOTIX_DRIVER: Updated sonar update interval to 100000 SNAV_SONAR0_MAXBOTIX_DRIVER: Starting thread, opening device /dev/tty-7 at baud rate of 9600 SNAV_SONAR0_MAXBOTIX_DRIVER: Setting baud rate to 9600 SNAV_DRIVERS: Successfully opened driver : libvsense0_ltc2946_driver.so, handle=2958442208 SNAV_LTC2946_DRIVER: Updated vsense device path param to /dev/iic-8 SNAV_LTC2946_DRIVER: Updated isense device path param to /dev/iic-8 SNAV_LTC2946_DRIVER: Updated vsense0_bit_rate param to 400000 SNAV_LTC2946_DRIVER: Updated isense0_bit_rate param to 400000 SNAV_LTC2946_DRIVER: Updated vsense update interval to 20000 SNAV_LTC2946_DRIVER: Updated isense update interval to 20000 SNAV_LTC2946_DRIVER: thread creation Successful SNAV_LTC2946_DRIVER: Starting thread, opening device /dev/iic-8 SNAV_DRIVERS: Driver is already open, returning existing interface (libvsense0_ltc2946_driver.so) SNAV_LTC2946_DRIVER: Setting i2c baud rate 400000 SNAV_LTC2946_DRIVER: Updated vsense device path param to /dev/iic-8 SNAV_LTC2946_DRIVER: Updated isense device path param to /dev/iic-8 SNAV_LTC2946_DRIVER: Updated vsense0_bit_rate param to 400000 SNAV_LTC2946_DRIVER: Updated isense0_bit_rate param to 400000 SNAV_LTC2946_DRIVER: Updated vsense update interval to 20000 SNAV_LTC2946_DRIVER: Updated isense update interval to 20000 SNAV_LTC2946_DRIVER: Updated measurement scale to 1000.000000 SNAV_LTC2946_DRIVER: ltc2946 config failed! SNAV_LTC2946_DRIVER: LTC2946 initialization FAILED! SNAV_LTC2946_DRIVER: Exiting main thread with code (-1) SNAV_DRIVERS: Successfully opened driver : libimu_mpu_driver.so, handle=2958447488 imu0: will use blocking read SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated imu device path param to /dev/spi-1 SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated imu bit rate param to 10000000 SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated imu to use blocking IO=1 SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated imu update interval param to 0 SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated enable data buffer to 0 SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated imu accel lpf to 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-1): Updated imu gyro lpf to 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-1): thread creation Successful SNAV_IMU_MPU_DRIVER (/dev/spi-1): Starting thread, opening device SNAV_IMU_MPU_DRIVER (/dev/spi-1): attempting to detect sensor (try #1) SNAV_IMU_MPU_DRIVER (/dev/spi-1): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-1): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-1): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-1): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-1): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-1): ICM20948 detected! SNAV_DRIVERS: Successfully opened driver : libimu_mpu_driver_copy1.so, handle=2958482256 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated imu device path param to /dev/spi-10 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated imu bit rate param to 10000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated imu to use blocking IO=0 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated imu update interval param to 1000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated enable data buffer to 1 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated imu accel lpf to 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): Updated imu gyro lpf to 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): thread creation Successful SNAV_IMU_MPU_DRIVER (/dev/spi-10): Starting thread, opening device SNAV_IMU_MPU_DRIVER (/dev/spi-10): attempting to detect sensor (try #1) SNAV_IMU_MPU_DRIVER (/dev/spi-10): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-10): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-10): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-10): ICM20948 detected! SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_DRIVERS: Successfully opened driver : libimu_mpu_driver_copy2.so, handle=2958499744 SNAV_IMU_MPU_DRIVER (): Updated imu device path param to SNAV_IMU_MPU_DRIVER (): Updated imu bit rate param to 10000000 SNAV_IMU_MPU_DRIVER (): Updated imu to use blocking IO=0 SNAV_IMU_MPU_DRIVER (): Updated imu update interval param to 1000 SNAV_IMU_MPU_DRIVER (): Updated enable data buffer to 1 SNAV_IMU_MPU_DRIVER (): Updated imu accel lpf to 184.000000 SNAV_IMU_MPU_DRIVER (): Updated imu gyro lpf to 184.000000 SNAV_IMU_MPU_DRIVER (): thread creation Successful SNAV_IMU_MPU_DRIVER (): Starting thread, opening device SNAV_IMU_MPU_DRIVER (): Failed to open port. Exiting. SNAV_IMU_MPU_DRIVER (): Exiting main thread with code (-1) SNAV_DRIVERS: Successfully opened driver : librc0_spektrum_driver.so, handle=2958506880 SNAV_RC_SPEKTRUM_DRIVER: Updated rc0 device path param to /dev/tty-12 SNAV_RC_SPEKTRUM_DRIVER: Updated rc bit rate param to 115200 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_DRIVERS: Successfully opened driver : libmag0_ak0991x_driver.so, handle=2958507600 SNAV_MAG0_AK0991x_DRIVER: Updated mag device path param to /dev/iic-6 SNAV_MAG0_AK0991x_DRIVER: Updated mag bit rate to 400000 SNAV_MAG0_AK0991x_DRIVER: Updated mag update interval to 20000 SNAV_MAG0_AK0991x_DRIVER: thread creation Successful SNAV_MAG0_AK0991x_DRIVER: Starting thread, opening device /dev/iic-6 SNAV_MAG0_AK0991x_DRIVER: Setting i2c slave address 0x0C, baud rate 400000 SNAV_MAG0_AK0991x_DRIVER: AK0991x failed to read ID!!! SNAV_MAG0_AK0991x_DRIVER: AK0991x verify ID failed! SNAV_MAG0_AK0991x_DRIVER: Exiting main thread with code (-2) SNAV_DRIVERS: Successfully opened driver : libimu_server_2_0.so, handle=2958613888 SNAV_IMU_SERVER_2_0(0): Updated device description to imu_flight_primary_mpu9250 SNAV_IMU_SERVER_2_0(0): Updated sample rate to 500 SNAV_IMU_SERVER_2_0(0): Updated accel lpf to 184 SNAV_IMU_SERVER_2_0(0): Updated gyro lpf to 184 SNAV_IMU_SERVER_2_0(0): Updated buffer size to 100 SNAV_IMU_SERVER_2_0(0): Updated position vector to 0.00 0.00 0.00 SNAV_IMU_SERVER_2_0(0): Updated rotation matrix to 0.00 1.00 0.00 -1.00 0.00 0.00 0.00 0.00 1.00 SNAV_DRIVERS: Driver is already open, returning existing interface (libimu_server_2_0.so) SNAV_IMU_SERVER_2_0(1): Updated device description to imu_flight_secondary_mpu9250 SNAV_IMU_SERVER_2_0(1): Updated sample rate to 1000 SNAV_IMU_SERVER_2_0(1): Updated accel lpf to 184 SNAV_IMU_SERVER_2_0(1): Updated gyro lpf to 184 SNAV_IMU_SERVER_2_0(1): Updated buffer size to 100 SNAV_IMU_SERVER_2_0(1): Updated position vector to 0.00 0.00 0.00 SNAV_IMU_SERVER_2_0(1): Updated rotation matrix to -1.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 -1.00 SNAV_DRIVERS: Driver is already open, returning existing interface (libimu_server_2_0.so) SNAV_IMU_SERVER_2_0(2): Updated device description to imu_camera_video_icm20602 SNAV_IMU_SERVER_2_0(2): Updated sample rate to 1000 SNAV_IMU_SERVER_2_0(2): Updated accel lpf to 184 SNAV_IMU_SERVER_2_0(2): Updated gyro lpf to 184 SNAV_IMU_SERVER_2_0(2): Updated buffer size to 100 SNAV_IMU_SERVER_2_0(2): Updated position vector to 0.00 0.00 0.00 SNAV_IMU_SERVER_2_0(2): Updated rotation matrix to 1.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 1.00 ESC: directions: 1 1 1 1 1 1 1 1 Compass calibration file open failure (/dev/fs/compass_calib.txt). IMU calibration file open failure (/dev/fs/imu_linear_calib.txt). Offset calibration file open failure (/dev/fs/offset_calib.txt). Optic flow camera yaw calibration file open failure (/dev/fs/of_camera_yaw_calib.txt). IMU0 Rotation matrix is valid IMU1 Rotation matrix is valid IMU2 Rotation matrix is valid Offset calibration file open failure (/dev/fs/imu1_offset_calib.txt). Offset calibration file open failure (/dev/fs/imu2_offset_calib.txt). IMU calibration file open failure (/dev/fs/imu1_linear_calib.txt). IMU calibration file open failure (/dev/fs/imu2_linear_calib.txt). mag0_R = ... [-1.0000000000, 0.0000000000, 0.0000000000] [0.0000000000, 1.0000000000, 0.0000000000] [0.0000000000, 0.0000000000, -1.0000000000] MAG0 Rotation matrix is valid SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 9 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_IMU_MPU_DRIVER (/dev/spi-1): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-1): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-1): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-1): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1 SNAV_IMU_MPU_DRIVER (/dev/spi-1): attempting to detect sensor (try #2) SNAV_IMU_MPU_DRIVER (/dev/spi-1): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-1): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-1): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-1): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-1): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-1): ICM20948 detected! SNAV_IMU_MPU_DRIVER (/dev/spi-10): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-10): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1 SNAV_IMU_MPU_DRIVER (/dev/spi-10): attempting to detect sensor (try #2) SNAV_IMU_MPU_DRIVER (/dev/spi-10): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-10): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-10): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-10): ICM20948 detected! UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 8 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 7 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_IMU_MPU_DRIVER (/dev/spi-1): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-1): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-1): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-1): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1 SNAV_IMU_MPU_DRIVER (/dev/spi-1): attempting to detect sensor (try #3) SNAV_IMU_MPU_DRIVER (/dev/spi-1): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-1): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-1): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-1): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-1): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-1): ICM20948 detected! SNAV_IMU_MPU_DRIVER (/dev/spi-10): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-10): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1 SNAV_IMU_MPU_DRIVER (/dev/spi-10): attempting to detect sensor (try #3) SNAV_IMU_MPU_DRIVER (/dev/spi-10): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-10): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-10): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-10): ICM20948 detected! SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 6 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 ESC: Number of feedback packets (expected 15) from each ESC ID: 0 0 0 0 0 0 0 0 ESC: trying esc 0 version query (attempt 0) ESC: trying esc 0 version query (attempt 1) ESC: trying esc 0 version query (attempt 2) ESC: trying esc 0 version query (attempt 3) ESC: trying esc 0 version query (attempt 4) ESC: trying esc 1 version query (attempt 0) SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 ESC: trying esc 1 version query (attempt 1) ESC: trying esc 1 version query (attempt 2) ESC: trying esc 1 version query (attempt 3) ESC: trying esc 1 version query (attempt 4) ESC: trying esc 2 version query (attempt 0) ESC: trying esc 2 version query (attempt 1) ESC: trying esc 2 version query (attempt 2) ESC: trying esc 2 version query (attempt 3) ESC: trying esc 2 version query (attempt 4) ESC: trying esc 3 version query (attempt 0) ESC: trying esc 3 version query (attempt 1) ESC: trying esc 3 version query (attempt 2) ESC: trying esc 3 version query (attempt 3) ESC: trying esc 3 version query (attempt 4) ESC: SW versions : -1 -1 -1 -1 -1 -1 -1 -1 ESC: HW versions : -1 -1 -1 -1 -1 -1 -1 -1 ESC: Unique ids : 0 0 0 0 0 0 0 0 SNAV_RC_SPEKTRUM_DRIVER: thread creation Successful SNAV_RC_SPEKTRUM_DRIVER: Starting thread, opening device /dev/tty-12 at baud rate of 115200 SNAV_RC_SPEKTRUM_DRIVER: Setting baud rate to 115200 SNAV_RC_SPEKTRUM_DRIVER: Done init. UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 IMU0 read error. total number of errors = 50 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 5 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_IMU_MPU_DRIVER (/dev/spi-1): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-1): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-1): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-1): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1 SNAV_IMU_MPU_DRIVER (/dev/spi-1): unable to initialize imu SNAV_IMU_MPU_DRIVER (/dev/spi-1): Exiting main thread with code (-2) SNAV_IMU_MPU_DRIVER (/dev/spi-10): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-10): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1 SNAV_IMU_MPU_DRIVER (/dev/spi-10): unable to initialize imu SNAV_IMU_MPU_DRIVER (/dev/spi-10): Exiting main thread with code (-2) IMU0 read error. total number of errors = 100 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 4 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 IMU0 read error. total number of errors = 150 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 IMU0 read error. total number of errors = 200 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 3 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 IMU0 read error. total number of errors = 250 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 IMU0 read error. total number of errors = 300 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 2 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 IMU0 read error. total number of errors = 350 UBLOX: did not get ACK for GPS baud rate setting SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 IMU0 read error. total number of errors = 400 UBLOX: did not get ACK for GPS baud rate setting UBLOX: Baud rate change FAILED UBLOX: gps try 1 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 9600 SNAV_UBLOX_GNSS_DRIVER: Setting baud rate to 230400 IMU0 read error. total number of errors = 450
Thanks for your help!!
Best,
Rui -
It looks like you are using a snav_params file which was used for a different (older) board with a different IMU (mpu9250). In your case, both IMUs are detected as newer icm20948 and you are trying to set accel/gyro low pass filter settings which are not supported by this IMU. You can choose the setting that is close to what you need from available options:
SNAV_IMU_MPU_DRIVER (/dev/spi-10): attempting to detect sensor (try #2) SNAV_IMU_MPU_DRIVER (/dev/spi-10): initializing MPU6050/MPU6500/MPU9250/ICM20602/ICM20948 I2C/SPI driver SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register 117 is 0x40 SNAV_IMU_MPU_DRIVER (/dev/spi-10): (expected 0x68->mpu6050, 0x70->mpu6500, 0x71->mpu9250, 0x12->icm20602, 0x47>icm42688) SNAV_IMU_MPU_DRIVER (/dev/spi-10): mpu6050, mpu9250, icm20602 not detected.. trying icm20948 SNAV_IMU_MPU_DRIVER (/dev/spi-10): WHOAMI register is 0xEA (expected 0xEA for icm20948) SNAV_IMU_MPU_DRIVER (/dev/spi-10): ICM20948 detected! SNAV_IMU_MPU_DRIVER (/dev/spi-10): available accel hw lpf (hz) : 6,12,24,50,111,246,473,1209 SNAV_IMU_MPU_DRIVER (/dev/spi-10): available gyro hw lpf (hz) : 6,12,24,51,120,152,197,361,12106 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested accel and gyro lpf = 184.000000 184.000000 SNAV_IMU_MPU_DRIVER (/dev/spi-10): requested unsupported accel hw lpf 184.000000 mpu_driver_core.cpp mpu_config_icm20948() failed, returned: -1
You could change your
device_driver_params
to something like this:<device_drivers_params> <param name="imu0_hw_accel_lpf_hz" value="50"/> <param name="imu0_hw_gyro_lpf_hz" value="120"/> <param name="imu1_hw_accel_lpf_hz" value="50"/> <param name="imu1_hw_gyro_lpf_hz" value="120"/> </device_drivers_params>
You probably don't want such high bandwidth as 184, as the data could be noisy, depending on the vibration characteristics of your drone.
-
I see! Yes after changing this params I can calibrate the imu now with snav!! Thanks for your help!