Skip to content

[SOLVED] [LIDAR- IMU Data stream decoupling] Horizon IMU rate 50hz issue #54

@TokyoWarfare

Description

@TokyoWarfare

EDIT: SOLUTION IN THIS LATER POST:
#54 (comment)

FORK WITH FIXED STREAMS
https://github.com/TokyoWarfare/livox_ros2_driver_Decoupled_Imu_Stream

///////////////////////////////////////////////////////////
Hello.
I'm having issue with the rate of the IMU.

(ROS2-Docker) root@PabloPCFast:/$ ros2 topic hz /livox/imu
average rate: 51.991
	min: 0.000s max: 0.100s std dev: 0.03919s window: 52
average rate: 52.374
	min: 0.000s max: 0.100s std dev: 0.03912s window: 110
average rate: 54.187
	min: 0.000s max: 0.100s std dev: 0.03859s window: 168
average rate: 53.896
	min: 0.000s max: 0.100s std dev: 0.03868s window: 221
average rate: 53.132
	min: 0.000s max: 0.100s std dev: 0.03889s window: 271
average rate: 52.946
	min: 0.000s max: 0.100s std dev: 0.03894s window: 323
average rate: 52.672
	min: 0.000s max: 0.100s std dev: 0.03902s window: 374
average rate: 51.951
	min: 0.000s max: 0.100s std dev: 0.03923s window: 426
average rate: 51.847
	min: 0.000s max: 0.100s std dev: 0.03926s window: 477
average rate: 51.862
	min: 0.000s max: 0.100s std dev: 0.03926s window: 529
average rate: 51.696
	min: 0.000s max: 0.100s std dev: 0.03930s window: 579
average rate: 51.393
	min: 0.000s max: 0.100s std dev: 0.03939s window: 627
average rate: 51.363
	min: 0.000s max: 0.100s std dev: 0.03940s window: 678
average rate: 51.337
	min: 0.000s max: 0.100s std dev: 0.03941s window: 729
average rate: 51.249
	min: 0.000s max: 0.100s std dev: 0.03943s window: 779
average rate: 51.233
	min: 0.000s max: 0.100s std dev: 0.03944s window: 830
average rate: 51.335
	min: 0.000s max: 0.100s std dev: 0.03941s window: 883
average rate: 51.427
	min: 0.000s max: 0.100s std dev: 0.03938s window: 936
average rate: 51.346
	min: 0.000s max: 0.100s std dev: 0.03940s window: 991
average rate: 51.428
	min: 0.000s max: 0.100s std dev: 0.03938s window: 1044
average rate: 51.455
	min: 0.000s max: 0.100s std dev: 0.03937s window: 1096
average rate: 51.300
	min: 0.000s max: 0.100s std dev: 0.03942s window: 1144
average rate: 51.287
	min: 0.000s max: 0.100s std dev: 0.03942s window: 1195
average rate: 51.275
	min: 0.000s max: 0.100s std dev: 0.03942s window: 1246
average rate: 51.264
	min: 0.000s max: 0.100s std dev: 0.03942s window: 1297
average rate: 51.215
	min: 0.000s max: 0.100s std dev: 0.03944s window: 1347
average rate: 51.244
	min: 0.000s max: 0.100s std dev: 0.03943s window: 1399
average rate: 51.127
	min: 0.000s max: 0.100s std dev: 0.03946s window: 1452
average rate: 51.156
	min: 0.000s max: 0.100s std dev: 0.03946s window: 1504
average rate: 51.217
	min: 0.000s max: 0.100s std dev: 0.03944s window: 1557
average rate: 51.241
	min: 0.000s max: 0.100s std dev: 0.03944s window: 1609
average rate: 51.230
	min: 0.000s max: 0.100s std dev: 0.03944s window: 1665
average rate: 51.223
	min: 0.000s max: 0.100s std dev: 0.03944s window: 1716
average rate: 51.185
	min: 0.000s max: 0.100s std dev: 0.03945s window: 1771
average rate: 51.207
	min: 0.000s max: 0.100s std dev: 0.03945s window: 1823
average rate: 51.174
	min: 0.000s max: 0.100s std dev: 0.03946s window: 1873
average rate: 51.169
	min: 0.000s max: 0.100s std dev: 0.03946s window: 1924
average rate: 51.137
	min: 0.000s max: 0.100s std dev: 0.03946s window: 1979
average rate: 51.107
	min: 0.000s max: 0.100s std dev: 0.03947s window: 2029
average rate: 51.129
	min: 0.000s max: 0.100s std dev: 0.03946s window: 2081
average rate: 51.174
	min: 0.000s max: 0.100s std dev: 0.03945s window: 2134
average rate: 51.051

As you can see it is around 50hz

Point rate is as specked:

(ROS2-Docker) root@PabloPCFast:/$ ros2 topic hz /livox/lidar
average rate: 10.004
	min: 0.100s max: 0.100s std dev: 0.00012s window: 12
average rate: 10.001
	min: 0.100s max: 0.100s std dev: 0.00013s window: 22
average rate: 10.001
	min: 0.100s max: 0.100s std dev: 0.00013s window: 32
average rate: 10.001
	min: 0.100s max: 0.100s std dev: 0.00012s window: 42
average rate: 10.000
	min: 0.100s max: 0.100s std dev: 0.00014s window: 52
average rate: 10.000
	min: 0.100s max: 0.100s std dev: 0.00014s window: 62
average rate: 10.000
	min: 0.100s max: 0.100s std dev: 0.00014s window: 72
average rate: 10.000
	min: 0.100s max: 0.100s std dev: 0.00013s window: 83
average rate: 10.000
	min: 0.099s max: 0.101s std dev: 0.00017s window: 93
average rate: 10.000
	min: 0.099s max: 0.101s std dev: 0.00016s window: 103
average rate: 10.000
	min: 0.099s max: 0.101s std dev: 0.00016s window: 113
average rate: 10.000
	min: 0.099s max: 0.101s std dev: 0.00016s window: 124
average rate: 10.000
	min: 0.099s max: 0.101s std dev: 0.00016s window: 134

My config looks like this:

{
"lidar_config": [
{
"broadcast_code": "3WEDJ540010115",
"enable_connect": true,
"enable_fan": true,
"return_mode": 0,
"coordinate": 0,
"imu_rate": 1,
"extrinsic_parameter_source": 0
},

Checking again the docs it says

Push frequency of IMU sensor data
0 -- stop push
1 -- 200 Hz
Others -- undefined, it will cause unpredictable behavior
Currently only Horizon supports this, MID serials do not support it

Not sure if I've to input "Others" or set a push rate, I'll try to put 200 as value...

I know it is reading the config because when I had the default with enable in false without broadcast code etc... it did run 20hz or so and GLIM would launch err of too big gaps in between IMU registers

I'm running the driver from DOCKER, I wonder if there is overhead that could cause this.
I'm starting with SLAM & ROS so I went to use Docker so I could mess things up without trashing the whole OS . I had run GLIM from other doker and it ran nicely so my plan was to have siolated the ROS2 driver in a docker to capture in there, and run the ros2 bags from a shared volume.

Some details
ROS_DISTRO: humble
DockerOS Description: Ubuntu 22.04.5 LTS

Similar:
#10

Aparently in 2021 it was suggested to mote hte imu data to a separate thread. Has this been implemented into the driver already?

What firmware is needed for Horizon? Where can firmware be downloaded?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions