Closed bertaveira closed 2 years ago
Do you have the proper version of eigen installed based on REP 2000?
I think so. Even running it on a brand new docker container (ros:galactic) and installing all dependencies gives the same error. Tried both on docker and off, both in arm and amd64 and I always get the same error which is weird
I tried in both architechtures in two different PCs and both in docker and outside. So trying on a docker container I did it like this:
docker run -it --net=host ros:galactic
Then git clone this repo and checkout to the branch galactic
. After which I have installed the dependencies:
apt update && apt install libpcl-dev ros-galactic-perception-pcl
Then I changed the IP of the sensor.yml
file to my lidar IP and build it:
colcon build
source install/setup.bash
ros2 launch ros2_ouster os1_launch.py
I get the error described in this issue ticket. I get this error despite how I try to do it or whichever branch I try it except for the foxy-devel
branch which for some reason works but with some blackouts and flickering.
Ran it in debug mode and here is the output from beginning to the crash:
ros2 launch ros2_ouster os1_launch.py
[INFO] [launch]: All log files can be found below /home/bertaveira/.ros/log/2022-01-20-20-08-53-658430-ubuntu-221276
[INFO] [launch]: Default logging verbosity is set to INFO
1642705733.776111 [0] ros2: using network interface enp0s5 (udp/192.168.0.110) selected arbitrarily from: enp0s5, docker0, enxa0cec8ea264f
[INFO] [ouster_driver-1]: process started with pid [221287]
[ouster_driver-1] [DEBUG] [1642705733.886581062] [rclcpp]: signal handler installed
[ouster_driver-1] [DEBUG] [1642705733.886609520] [rclcpp]: deferred_signal_handler(): waiting for SIGINT or uninstall
[ouster_driver-1] [DEBUG] [1642705733.888535313] [rcl]: Initializing node 'OusterDriver' in namespace ''
[ouster_driver-1] [DEBUG] [1642705733.888553521] [rcl]: Using domain ID of '0'
[ouster_driver-1] 1642705733.888935 [0] ouster_dri: using network interface enp0s5 (udp/192.168.0.110) selected arbitrarily from: enp0s5, docker0, enxa0cec8ea264f
[ouster_driver-1] [DEBUG] [1642705733.891150355] [rcl]: Initializing publisher for topic name '/rosout'
[ouster_driver-1] [DEBUG] [1642705733.891198480] [rcl]: Expanded topic name '/rosout'
[ouster_driver-1] [DEBUG] [1642705733.892353939] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705733.892367772] [rcl]: Node initialized
[ouster_driver-1] [DEBUG] [1642705733.894800940] [rcl]: Initializing service for service name 'ouster_driver/get_parameters'
[ouster_driver-1] [DEBUG] [1642705733.894815815] [rcl]: Expanded service name '/ouster_driver/get_parameters'
[ouster_driver-1] [DEBUG] [1642705733.895987940] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.896009940] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_parametersRequest
[ouster_driver-1] [DEBUG] [1642705733.896012398] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_parametersReply
[ouster_driver-1] [DEBUG] [1642705733.896038773] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.896145732] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.896179857] [rcl]: Initializing service for service name 'ouster_driver/get_parameter_types'
[ouster_driver-1] [DEBUG] [1642705733.896187065] [rcl]: Expanded service name '/ouster_driver/get_parameter_types'
[ouster_driver-1] [DEBUG] [1642705733.896489232] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.896500648] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_parameter_typesRequest
[ouster_driver-1] [DEBUG] [1642705733.896503273] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_parameter_typesReply
[ouster_driver-1] [DEBUG] [1642705733.896508065] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.896597982] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.896620898] [rcl]: Initializing service for service name 'ouster_driver/set_parameters'
[ouster_driver-1] [DEBUG] [1642705733.896625065] [rcl]: Expanded service name '/ouster_driver/set_parameters'
[ouster_driver-1] [DEBUG] [1642705733.896941565] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.896952398] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/set_parametersRequest
[ouster_driver-1] [DEBUG] [1642705733.896959440] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/set_parametersReply
[ouster_driver-1] [DEBUG] [1642705733.896963523] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.897049815] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.897065940] [rcl]: Initializing service for service name 'ouster_driver/set_parameters_atomically'
[ouster_driver-1] [DEBUG] [1642705733.897083774] [rcl]: Expanded service name '/ouster_driver/set_parameters_atomically'
[ouster_driver-1] [DEBUG] [1642705733.897801774] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.897813732] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/set_parameters_atomicallyRequest
[ouster_driver-1] [DEBUG] [1642705733.897816524] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/set_parameters_atomicallyReply
[ouster_driver-1] [DEBUG] [1642705733.897822107] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.897919857] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.897934940] [rcl]: Initializing service for service name 'ouster_driver/describe_parameters'
[ouster_driver-1] [DEBUG] [1642705733.897941190] [rcl]: Expanded service name '/ouster_driver/describe_parameters'
[ouster_driver-1] [DEBUG] [1642705733.898335232] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.898344941] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/describe_parametersRequest
[ouster_driver-1] [DEBUG] [1642705733.898347107] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/describe_parametersReply
[ouster_driver-1] [DEBUG] [1642705733.898352649] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.898430191] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.898467732] [rcl]: Initializing service for service name 'ouster_driver/list_parameters'
[ouster_driver-1] [DEBUG] [1642705733.898474774] [rcl]: Expanded service name '/ouster_driver/list_parameters'
[ouster_driver-1] [DEBUG] [1642705733.898984816] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.898995857] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/list_parametersRequest
[ouster_driver-1] [DEBUG] [1642705733.899046149] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/list_parametersReply
[ouster_driver-1] [DEBUG] [1642705733.899057649] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.899185274] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.899213066] [rcl]: Initializing publisher for topic name '/parameter_events'
[ouster_driver-1] [DEBUG] [1642705733.899223066] [rcl]: Expanded topic name '/parameter_events'
[ouster_driver-1] [DEBUG] [1642705733.899863566] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705733.902780358] [rcl]: Initializing subscription for topic name '/parameter_events'
[ouster_driver-1] [DEBUG] [1642705733.902803108] [rcl]: Expanded topic name '/parameter_events'
[ouster_driver-1] [DEBUG] [1642705733.903032359] [rcl]: Subscription initialized
[ouster_driver-1] [DEBUG] [1642705733.903681650] [rcl]: Initializing publisher for topic name '~/transition_event'
[ouster_driver-1] [DEBUG] [1642705733.903692734] [rcl]: Expanded topic name '/ouster_driver/transition_event'
[ouster_driver-1] [DEBUG] [1642705733.904408984] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705733.904427817] [rcl]: Initializing service for service name '~/change_state'
[ouster_driver-1] [DEBUG] [1642705733.904434776] [rcl]: Expanded service name '/ouster_driver/change_state'
[ouster_driver-1] [DEBUG] [1642705733.905012651] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.905025359] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/change_stateRequest
[ouster_driver-1] [DEBUG] [1642705733.905027567] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/change_stateReply
[ouster_driver-1] [DEBUG] [1642705733.905035067] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.905235859] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.905245359] [rcl]: Initializing service for service name '~/get_state'
[ouster_driver-1] [DEBUG] [1642705733.905248943] [rcl]: Expanded service name '/ouster_driver/get_state'
[ouster_driver-1] [DEBUG] [1642705733.905584068] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.905594609] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_stateRequest
[ouster_driver-1] [DEBUG] [1642705733.905599818] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_stateReply
[ouster_driver-1] [DEBUG] [1642705733.905604401] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.905703984] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.905711568] [rcl]: Initializing service for service name '~/get_available_states'
[ouster_driver-1] [DEBUG] [1642705733.905715026] [rcl]: Expanded service name '/ouster_driver/get_available_states'
[ouster_driver-1] [DEBUG] [1642705733.906022276] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.906033026] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_available_statesRequest
[ouster_driver-1] [DEBUG] [1642705733.906035776] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_available_statesReply
[ouster_driver-1] [DEBUG] [1642705733.906042776] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.906173234] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.906185026] [rcl]: Initializing service for service name '~/get_available_transitions'
[ouster_driver-1] [DEBUG] [1642705733.906192068] [rcl]: Expanded service name '/ouster_driver/get_available_transitions'
[ouster_driver-1] [DEBUG] [1642705733.906575193] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.906584901] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_available_transitionsRequest
[ouster_driver-1] [DEBUG] [1642705733.906587110] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_available_transitionsReply
[ouster_driver-1] [DEBUG] [1642705733.906592568] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.906773651] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.906784693] [rcl]: Initializing service for service name '~/get_transition_graph'
[ouster_driver-1] [DEBUG] [1642705733.906787818] [rcl]: Expanded service name '/ouster_driver/get_transition_graph'
[ouster_driver-1] [DEBUG] [1642705733.906806526] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705733.906815901] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_transition_graphRequest
[ouster_driver-1] [DEBUG] [1642705733.906818151] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_transition_graphReply
[ouster_driver-1] [DEBUG] [1642705733.906820276] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705733.906912401] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705733.907756818] [rcl]: Initializing wait set with '0' subscriptions, '2' guard conditions, '0' timers, '0' clients, '0' services
[ouster_driver-1] [DEBUG] [1642705733.907852110] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.907860777] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.907890860] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.907896402] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.907898360] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.907913777] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.907930068] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908000152] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908007110] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908014943] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908016818] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908020318] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908025402] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908031235] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908036985] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908039777] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908041610] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908045985] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908049152] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908052777] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908054735] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908057235] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908060943] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908063568] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908069193] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908072860] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908077693] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908080277] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908084402] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908087193] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908091985] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908098610] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908102943] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908107068] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908108943] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908111818] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908117235] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908120902] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908125318] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908131818] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908133902] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908136568] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908139818] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908248152] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908258068] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908263027] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908267902] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908272360] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908279568] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908287235] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908291152] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908293860] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908298902] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908301818] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908312360] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908320402] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908328235] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908331152] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908335235] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908338193] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908344360] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908349068] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908353735] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908356443] [rcl]: Subscription in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908359902] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908362652] [rcl]: Subscription taking message
[ouster_driver-1] [DEBUG] [1642705733.908368193] [rcl]: Subscription take succeeded: true
[ouster_driver-1] [DEBUG] [1642705733.908371902] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908376610] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705733.908379277] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705733.908382652] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705733.908387360] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705734.056029736] [rcl]: Service in wait set is ready
[ouster_driver-1] [DEBUG] [1642705734.056086153] [rcl]: Service server taking service request
[ouster_driver-1] [DEBUG] [1642705734.056099569] [rcl]: Service take request succeeded: true
[ouster_driver-1] [INFO] [1642705734.056181361] [ouster_driver]: Configuring Ouster driver node.
[ouster_driver-1] [INFO] [1642705734.056586111] [ouster_driver]: This driver is compatible with sensors running fw 2.x.
[ouster_driver-1] [INFO] [1642705734.056869403] [ouster_driver]: Connecting to sensor at 10.5.5.66.
[ouster_driver-1] [INFO] [1642705734.056898653] [ouster_driver]: Sending data from sensor to 10.5.5.1.
[ouster_driver-1] [DEBUG] [1642705734.059143112] [rcl]: Initializing service for service name '~/reset'
[ouster_driver-1] [DEBUG] [1642705734.059164612] [rcl]: Expanded service name '/ouster_driver/reset'
[ouster_driver-1] [DEBUG] [1642705734.059951571] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705734.059967112] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/resetRequest
[ouster_driver-1] [DEBUG] [1642705734.059969904] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/resetReply
[ouster_driver-1] [DEBUG] [1642705734.059984612] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705734.060176987] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705734.060707279] [rcl]: Initializing service for service name '~/get_metadata'
[ouster_driver-1] [DEBUG] [1642705734.060721737] [rcl]: Expanded service name '/ouster_driver/get_metadata'
[ouster_driver-1] [DEBUG] [1642705734.062106196] [rmw_cyclonedds_cpp]: ************ Service Details *********
[ouster_driver-1] [DEBUG] [1642705734.062120946] [rmw_cyclonedds_cpp]: Sub Topic rq/ouster_driver/get_metadataRequest
[ouster_driver-1] [DEBUG] [1642705734.062123571] [rmw_cyclonedds_cpp]: Pub Topic rr/ouster_driver/get_metadataReply
[ouster_driver-1] [DEBUG] [1642705734.062129613] [rmw_cyclonedds_cpp]: ***********
[ouster_driver-1] [DEBUG] [1642705734.062281780] [rcl]: Service initialized
[ouster_driver-1] [DEBUG] [1642705751.065548374] [rcl]: Initializing publisher for topic name 'range_image'
[ouster_driver-1] [DEBUG] [1642705751.065705333] [rcl]: Expanded topic name '/range_image'
[ouster_driver-1] [DEBUG] [1642705751.073797502] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.076015336] [rcl]: Initializing publisher for topic name 'intensity_image'
[ouster_driver-1] [DEBUG] [1642705751.076071003] [rcl]: Expanded topic name '/intensity_image'
[ouster_driver-1] [DEBUG] [1642705751.076353586] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.076413419] [rcl]: Initializing publisher for topic name 'ambient_image'
[ouster_driver-1] [DEBUG] [1642705751.076426003] [rcl]: Expanded topic name '/ambient_image'
[ouster_driver-1] [DEBUG] [1642705751.076636545] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.121089976] [rcl]: Initializing publisher for topic name 'points'
[ouster_driver-1] [DEBUG] [1642705751.121142601] [rcl]: Expanded topic name '/points'
[ouster_driver-1] [DEBUG] [1642705751.122220518] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.122786268] [rcl]: Initializing publisher for topic name 'imu'
[ouster_driver-1] [DEBUG] [1642705751.122807352] [rcl]: Expanded topic name '/imu'
[ouster_driver-1] [DEBUG] [1642705751.123410644] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.123897435] [rcl]: Initializing publisher for topic name 'scan'
[ouster_driver-1] [DEBUG] [1642705751.123916352] [rcl]: Expanded topic name '/scan'
[ouster_driver-1] [DEBUG] [1642705751.124417644] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.125024936] [rcl]: Initializing publisher for topic name '/tf_static'
[ouster_driver-1] [DEBUG] [1642705751.125057311] [rcl]: Expanded topic name '/tf_static'
[ouster_driver-1] [DEBUG] [1642705751.126110769] [rcl]: Publisher initialized
[ouster_driver-1] [DEBUG] [1642705751.126795436] [rcl]: Sending service response
[INFO] [launch.user]: [LifecycleLaunch] Ouster driver node is activating.
[ouster_driver-1] [DEBUG] [1642705751.127404978] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705751.127423603] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705751.127451937] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.127463937] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.127476353] [rcl]: Waiting without timeout
[ouster_driver-1] [DEBUG] [1642705751.127492395] [rcl]: Timeout calculated based on next scheduled timer: false
[ouster_driver-1] [DEBUG] [1642705751.129177645] [rcl]: Service in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.129197020] [rcl]: Service server taking service request
[ouster_driver-1] [DEBUG] [1642705751.129204187] [rcl]: Service take request succeeded: true
[ouster_driver-1] [INFO] [1642705751.129236479] [ouster_driver]: Activating Ouster driver node.
[ouster_driver-1] [DEBUG] [1642705751.129457687] [rcl]: Initializing timer with period: 390625ns
[ouster_driver-1] [DEBUG] [1642705751.129528146] [rcl]: Sending service response
[ouster_driver-1] [DEBUG] [1642705751.129571021] [rcl]: Waiting with timeout: 0s + 290292ns
[ouster_driver-1] [DEBUG] [1642705751.129577771] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.129592521] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.129598479] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.129603271] [rcl]: Waiting with timeout: 0s + 258042ns
[ouster_driver-1] [DEBUG] [1642705751.129607104] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.129935021] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.129997437] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.130247104] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.132798647] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.132813813] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.132822813] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.132828313] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.132832688] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.132854230] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.133293147] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.133304522] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.133308230] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.133313730] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.133321230] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.133328272] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.133806272] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.133823855] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.133832272] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.133834772] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.133846439] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.133864855] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.134313939] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.134327231] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.134331231] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.134333147] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.134336731] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.134342564] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.134815939] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.134829356] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.134835731] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.134876356] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.134887897] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.134911939] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.135329648] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.135339648] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.135343523] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.135349148] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.135352356] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.135391773] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.135809439] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.135819023] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.135823773] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.135825606] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.135828481] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.135840356] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.136229398] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.136238773] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.136241981] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.136243815] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.136250940] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.136261398] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.136648106] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.136656856] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.136659940] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.136661815] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.136664440] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.136678648] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.137067440] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.137076273] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.137079273] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.137081065] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.137083565] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.137093981] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.137487773] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.137496690] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.137499773] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.137501648] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.137510648] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.137519315] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.137914315] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.137926023] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.137929107] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.137930940] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.137933523] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.137946857] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.138336899] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.138350649] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.138353607] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.138355357] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.138357857] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.138361649] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.138759482] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.138775232] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.138778232] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.138779982] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.138804815] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.138822107] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.139200357] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.139215649] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.139218816] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.139220607] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.139223066] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.139226857] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.139613316] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.139625941] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.139629191] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.139630941] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.139633441] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.139665441] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.140048441] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.140063566] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.140066732] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.140107607] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.140125316] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.140156441] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.140608608] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.140615733] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.140622483] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.140624483] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.140627399] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.140632358] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.141062233] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.141070483] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.141074358] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.141076233] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.141078983] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.141083441] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.141472191] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.141478566] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.141481900] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.141483941] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.141486650] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.141490733] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.141866275] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.141871983] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.141875150] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.141877150] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.141879733] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.141883608] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] [DEBUG] [1642705751.142313775] [rcl]: Waiting with timeout: 0s + 0ns
[ouster_driver-1] [DEBUG] [1642705751.142321817] [rcl]: Timeout calculated based on next scheduled timer: true
[ouster_driver-1] [DEBUG] [1642705751.142325400] [rcl]: Timer in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.142327400] [rcl]: Guard condition in wait set is ready
[ouster_driver-1] [DEBUG] [1642705751.142329983] [rcl]: Calling timer
[ouster_driver-1] [DEBUG] [1642705751.142334817] [ouster_driver]: Packet with state: imu data lidar data
[ouster_driver-1] ouster_driver: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:180: Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::operator()(Eigen::Index) const [with Derived = Eigen::Map<const Eigen::Array<unsigned int, -1, -1, 1, -1, -1> >; Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType = unsigned int; Eigen::Index = long int]: Assertion `index >= 0 && index < size()' failed.
[ERROR] [ouster_driver-1]: process has died [pid 221287, exit code -6, cmd '/home/bertaveira/Desktop/Parallels Shared Folders/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/ros2_ouster/ouster_driver --ros-args --log-level debug --ros-args -r __node:=ouster_driver -r __ns:=/ --params-file /home/bertaveira/Desktop/Parallels Shared Folders/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/share/ros2_ouster/params/sensor.yaml'].
[INFO] [launch.user]: [LifecycleLaunch] Ouster driver node is exiting.
I'd be happy to field a PR if you find something wrong to fix, but I'm not a user of this work at the moment and don't have easy access to a sensor to debug. I'd suggest compiling with debug flags and when this happening at least getting a line number of which eigen call is failing. That may be diagnostic.
I'm not entirely convinced it's simply in your configuration / setup, there may be an actual issue here. When you set up docker containers where you only bootstrapping for this specific project (e.g. not installing anything else)? I'm looking to make sure you actually are using the right version of Eigen and something else in your dependency chain isn't overriding or installing it manually and not from rosdep, e.g. https://github.com/ros/rosdistro/blob/master/rosdep/base.yaml#L866.
@SteveMacenski Thanks. I am not the most knowledgable person to solve the issue but I will try to at least provide as much information as possible. I don't have a machine with a clean galactic installed so thats why I was trying docker. All my tests were indeed with fresh docker container with only those two dependencies.
I will try installing the dependencies via rosdep instead of manual installing those two to check if the same persists.
In the meantime I ran it with backward_ros and got a stack trace:
[ouster_driver-1] ouster_driver: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:180: Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::operator()(Eigen::Index) const [with Derived = Eigen::Map<const Eigen::Array<unsigned int, -1, -1, 1, -1, -1> >; Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType = unsigned int; Eigen::Index = long int]: Assertion `index >= 0 && index < size()' failed.
[ouster_driver-1] Stack trace (most recent call last):
[ouster_driver-1] #19 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/ros2_ouster/ouster_driver", at 0xaaaace8379f3, in $x
[ouster_driver-1] #18 Source "../csu/libc-start.c", line 308, in __libc_start_main [0xffff8674814f]
[ouster_driver-1] #17 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/ros2_ouster/ouster_driver", at 0xaaaace837ffb, in main
[ouster_driver-1] #16 Object "/opt/ros/foxy/lib/librclcpp.so", at 0xffff86b91317, in rclcpp::spin(std::shared_ptr<rclcpp::node_interfaces::NodeBaseInterface>)
[ouster_driver-1] #15 Object "/opt/ros/foxy/lib/librclcpp.so", at 0xffff86b9459b, in rclcpp::executors::SingleThreadedExecutor::spin()
[ouster_driver-1] #14 Object "/opt/ros/foxy/lib/librclcpp.so", at 0xffff86b8ea13, in rclcpp::Executor::execute_any_executable(rclcpp::AnyExecutable&)
[ouster_driver-1] #13 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff8704ee77, in rclcpp::GenericTimer<std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>, (void*)0>::execute_callback()
[ouster_driver-1] #12 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff87051207, in void rclcpp::GenericTimer<std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>, (void*)0>::execute_callback_delegate<std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>, (void*)0>()
[ouster_driver-1] #11 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff87052c87, in void std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>::operator()<, void>()
[ouster_driver-1] #10 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff870542bf, in void std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>)
[ouster_driver-1] #9 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff87054e8f, in std::__invoke_result<void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&>::type std::__invoke<void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&>(void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&)
[ouster_driver-1] #8 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff8705584b, in void std::__invoke_impl<void, void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&>(std::__invoke_memfun_deref, void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&)
[ouster_driver-1] #7 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff86fc0dd3, in ros2_ouster::OusterDriver::processData()
[ouster_driver-1] #6 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff86fc9a7f, in sensor::ScanProcessor::process(unsigned char const*, unsigned long)
[ouster_driver-1] #5 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff86fc5aef, in ros2_ouster::toMsg(ouster::LidarScan, std::chrono::duration<long, std::ratio<1l, 1000000000l> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ouster::sensor::sensor_info const&, unsigned char, unsigned long)
[ouster_driver-1] #4 Object "/media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/libouster_driver_core.so", at 0xffff86fcd5e7, in Eigen::DenseCoeffsBase<Eigen::Map<Eigen::Array<unsigned int, -1, -1, 1, -1, -1> const, 0, Eigen::Stride<0, 0> >, 0>::operator()(long) const
[ouster_driver-1] #3 Source "/build/glibc-vWotZY/glibc-2.31/assert/assert.c", line 101, in __assert_fail [0xffff867547a3]
[ouster_driver-1] #2 Source "/build/glibc-vWotZY/glibc-2.31/assert/assert.c", line 92, in __assert_fail_base [0xffff8675473f]
[ouster_driver-1] #1 Source "/build/glibc-vWotZY/glibc-2.31/stdlib/abort.c", line 79, in abort [0xffff86747deb]
[ouster_driver-1] #0 Source "../sysdeps/unix/sysv/linux/raise.c", line 51, in raise [0xffff8675b278]
[ouster_driver-1] Aborted (Signal sent by tkill() 6047 1000)
[ERROR] [ouster_driver-1]: process has died [pid 6047, exit code -6, cmd '/home/bertaveira/Desktop/Parallels Shared Folders/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/lib/ros2_ouster/ouster_driver --ros-args --log-level debug --ros-args -r __node:=ouster_driver -r __ns:=/ --params-file /home/bertaveira/Desktop/Parallels Shared Folders/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/install/ros2_ouster/share/ros2_ouster/params/sensor.yaml'].
[INFO] [launch.user]: [LifecycleLaunch] Ouster driver node is exiting.
There is where compiling with debug flags would help so we could see specific lines. The toMsg
line is this function https://github.com/ros-drivers/ros2_ouster_drivers/blob/616891c434aba58c6e1ad0a175c929fc11cf8789/ros2_ouster/include/ros2_ouster/conversions.hpp#L205-L237 which itself has no real use of Eigen.
The ouster calls within this function are https://github.com/ros-drivers/ros2_ouster_drivers/blob/37229ea07932af38d9a689a04cab24841d492915/ros2_ouster/src/client/types.cpp#L268 and https://github.com/ros-drivers/ros2_ouster_drivers/blob/37229ea07932af38d9a689a04cab24841d492915/ros2_ouster/src/client/types.cpp#L284 neither directly use Eigen. So I think its probably that fields()
method of laser scan, which should be properly populated already by this point for it to work for anyone
@SteveMacenski How would I go about using debug flags? Sorry I really never used tools like that for ros nodes
I did as it said and printed the backtrace:
ouster_driver: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:180: Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::operator()(Eigen::Index) const [with Derived = Eigen::Map<const Eigen::Array<unsigned int, -1, -1, 1, -1, -1> >; Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType = unsigned int; Eigen::Index = long int]: Assertion `index >= 0 && index < size()' failed.
--Type <RET> for more, q to quit, c to continue without paging--
Thread 1 "ouster_driver" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb)
(gdb) backtrace
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000fffff75a3dec in __GI_abort () at abort.c:79
#2 0x0000fffff75b0740 in __assert_fail_base (
fmt=0xfffff76acc48 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0xfffff7f177c0 "index >= 0 && index < size()",
file=file@entry=0xfffff7f17788 "/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h", line=line@entry=180,
function=function@entry=0xfffff7f177e0 "Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::operator()(Eigen::Index) const [with Derived = Eigen::Map<const Eigen::Array<unsigned int, -1, -1, 1, -1, -1> >;"...) at assert.c:92
#3 0x0000fffff75b07a4 in __GI___assert_fail (
assertion=0xfffff7f177c0 "index >= 0 && index < size()",
file=0xfffff7f17788 "/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h", line=180,
function=0xfffff7f177e0 "Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::operator()(Eigen::Index) const [with Derived = Eigen::Map<const Eigen::Array<unsigned int, -1, -1, 1, -1, -1> >;"...)
at assert.c:101
#4 0x0000fffff7e655e8 in Eigen::DenseCoeffsBase<Eigen::Map<Eigen::Array<unsigned int, -1, -1, 1, -1, -1> const, 0, Eigen::Stride<0, 0> >, 0>::operator() (
this=0xffffffffd558, index=-1)
at /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:180
--Type <RET> for more, q to quit, c to continue without paging--
#5 0x0000fffff7e5daf0 in ros2_ouster::toMsg (ls=..., timestamp=...,
frame="laser_data_frame", mdata=..., ring_to_use=0 '\000', override_ts=0)
at /media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/ros2_ouster/include/ros2_ouster/conversions.hpp:229
#6 0x0000fffff7e61a80 in sensor::ScanProcessor::process (this=0xaaaaaae0e440,
data=0xaaaaaadc9900 "\326\336Ey\002\002", override_ts=0)
at /media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/ros2_ouster/include/ros2_ouster/processors/scan_processor.hpp:90
#7 0x0000fffff7e58dd4 in ros2_ouster::OusterDriver::processData (
this=0xaaaaaab4bf80)
at /media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/ros2_ouster/src/ouster_driver.cpp:226
#8 0x0000fffff7eed84c in std::__invoke_impl<void, void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&> (
__f=@0xaaaaaae42990: (void (ros2_ouster::OusterDriver::*)(class ros2_ouster::OusterDriver * const)) 0xfffff7e58ab4 <ros2_ouster::OusterDriver::processData()>, __t=@0xaaaaaae429a0: 0xaaaaaab4bf80) at /usr/include/c++/9/bits/invoke.h:73
#9 0x0000fffff7eece90 in std::__invoke<void (ros2_ouster::OusterDriver::*&)(), ros2_ouster::OusterDriver*&> (
__fn=@0xaaaaaae42990: (void (ros2_ouster::OusterDriver::*)(class ros2_ouster::OusterDriver * const)) 0xfffff7e58ab4 <ros2_ouster::OusterDriver::processData()>) at /usr/include/c++/9/bits/invoke.h:95
#10 0x0000fffff7eec2c0 in std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ous--Type <RET> for more, q to quit, c to continue without paging--
ter::OusterDriver*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0xaaaaaae42990, __args=...) at /usr/include/c++/9/functional:400
#11 0x0000fffff7eeac88 in std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>::operator()<, void>() (this=0xaaaaaae42990)
at /usr/include/c++/9/functional:484
#12 0x0000fffff7ee9208 in rclcpp::GenericTimer<std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>, (void*)0>::execute_callback_delegate<std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>, (void*)0>() (this=0xaaaaaae42960)
at /opt/ros/foxy/include/rclcpp/timer.hpp:223
#13 0x0000fffff7ee6e78 in rclcpp::GenericTimer<std::_Bind<void (ros2_ouster::OusterDriver::*(ros2_ouster::OusterDriver*))()>, (void*)0>::execute_callback() (
this=0xaaaaaae42960) at /opt/ros/foxy/include/rclcpp/timer.hpp:209
#14 0x0000fffff7a26a14 in rclcpp::Executor::execute_any_executable(rclcpp::AnyExecutable&) () from /opt/ros/foxy/lib/librclcpp.so
#15 0x0000fffff7a2c59c in rclcpp::executors::SingleThreadedExecutor::spin() ()
from /opt/ros/foxy/lib/librclcpp.so
#16 0x0000fffff7a29318 in rclcpp::spin(std::shared_ptr<rclcpp::node_interfaces::NodeBaseInterface>) () from /opt/ros/foxy/lib/librclcpp.so
#17 0x0000aaaaaaab7fec in main (argc=11, argv=0xffffffffe778)
at /media/psf/Home/Documents/CFS/dv/ROS_packages/ouster-drivers/ros2_ouster/src/main.cpp:25
(gdb)
Ok so I checked as well changing this parameter:
https://github.com/ros-drivers/ros2_ouster_drivers/blob/e379108778c7a2ff22fdd9c04ac5170d86487ff8/ros2_ouster/params/sensor.yaml#L52
to only IMG|PCL|IMU
This way it would not try to generate and send the laser scan. It works without crashing. I am not totally sure why but it has something to do with the laser scan indeed.
That helps alot - the line that the traceback gives me is then L229, which is the first field()
call https://github.com/ros-drivers/ros2_ouster_drivers/blob/616891c434aba58c6e1ad0a175c929fc11cf8789/ros2_ouster/include/ros2_ouster/conversions.hpp#L229
Its possible the change to support FW 2.0 / 2.1 didn't properly test the laser scan section and is problematic.
If you remove PCL and only do scan / IMU (and/or IMG) does it work? I'm curious if its less about scan and more about multiple users of the scan accumulator, which was core to the 2.0 FW change.
This past tests I was running on the galactic branch (after FW 2.0 but before FW 2.1). I can confirm that no matter if I put SCAN
or IMU|SCAN
it fails. If SCAN is included it fails. Tried just now as well for the ros2 branch which is the latest and the same applies.
OK, I can't easily test without a sensor handy but I'd like you to try the following:
ring_to_use=0
which makes me think its not working, which could be causing an indexing problemindex=-1
in the #4 eigen error call. That could cause the assertion if its trying to access out of the range with index of -1. Even if the issue in part 1 above is true, it shouldn't still cause an assertion error, it should just give you wrong data. So I think this for loop is incorrect regardless. Or for some reason the ls.w
is 0
so the starting index is -1 due to some missing metadata being populated for this processor type. Some print statements here would be illluminating. [ouster_driver-1] _ring = 0
[ouster_driver-1] zero_angle = 0.35
Printing all angles I get this as expected:
Working on the second point you brought up as we speak
Wow you hit the jackpot. It is crashing inside the loop on the first push (msg.ranges.push_back(...)
) . I verified this by printing before and after the function call as well as after the loop and it seems to crash in that one. I added prints of the variables ring_to_use
, ls.w
as well as the variable i
in all loop iterations. Here is a screenshot of the code with the prints:
As you suspected the variable i
is reaching a very weird value. Here is the output to the terminal (removed a bit):
[ouster_driver-1] ring_to_use = 0
[ouster_driver-1] ls.w = 512
[ouster_driver-1] i = 511
[ouster_driver-1] i = 510
[ouster_driver-1] i = 509
[ouster_driver-1] i = 508
[ouster_driver-1] i = 507
(...) Removed since it was basically just a count down
[ouster_driver-1] i = 7
[ouster_driver-1] i = 6
[ouster_driver-1] i = 5
[ouster_driver-1] i = 4
[ouster_driver-1] i = 3
[ouster_driver-1] i = 2
[ouster_driver-1] i = 1
[ouster_driver-1] i = 0
[ouster_driver-1] i = 18446744073709551615
It makes sense to crash. It is a loop with i >= 0
but i
can only be positive.
Changing the line to:
for (size_t i = ls.w * ring_to_use + ls.w ; i > ls.w * ring_to_use; i--) {
Fixes the crash but not sure if it does exactly the same
18446744073709551615 == -1
(2^64) for 64 bit systems. So its indexing incorrectly and getting down to -1. I think then you just need a quick update to that for loop to correct the iteration bounds.
What's the iteration range of your change? should be 0 to resolution of lidar in ticks - 1. (e.g. 0-511 for a 512 setting).
That's probably the fix right there that you list, just verify quickly the range is correct. If you submit a PR, I can merge, backport, and re-release
Wow you hit the jackpot
That's why I asked for the backtrace :wink: these 2 lines gave me all the context clues to narrow into those 2 parts of the code
#4 0x0000fffff7e655e8 in Eigen::DenseCoeffsBase<Eigen::Map<Eigen::Array<unsigned int, -1, -1, 1, -1, -1> const, 0, Eigen::Stride<0, 0> >, 0>::operator() (
this=0xffffffffd558, **index=-1**)
at /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:180
--Type <RET> for more, q to quit, c to continue without paging--
#5 0x0000fffff7e5daf0 in ros2_ouster::toMsg (ls=..., timestamp=...,
frame="laser_data_frame", mdata=..., **ring_to_use=0** '\000', override_ts=0)
That's probably the fix right there that you list, just verify quickly the range is correct. If you submit a PR, I can merge, backport, and re-release
Which branch do you want me to change? ros2?
yes please
Well the for loop is actually correct in the index the problem is that we are subtracting to an unsigned type of variable which results in it being impossible to be negative. Since we say that it should run for any i >= 0
it will subtract resulting in overflow to the highest possible positive number and continue running since the condition still meets.
Fun bug to find. Had to actually try it to verify it actually happens on for loops of unsigned types: https://onlinegdb.com/EinwrMY2u
I can see multiple fixes. The two that sound the cleanest are:
if (i == 0) break;
ate the end of the for loopdo { } while(i > 0...)
From what I have been reading my sensor should not work with the foxy-devel branch but it does although it flickers a bit on the left side of the sensor.
To check if this was fixed in the newer versions I tried to run the galactic version and the version in the ros2 branch (on a machine with galactic installed) but both gave me the same error:
Sensor: OS1-64 Firmware: v2.1.3 OS: Ubuntu 20.04 ROS: foxy and Galactic