Skip to content

Fix/replace timer callback to std thread

Fixed bug

#12 (closed)

Description of the bug

Periodic monitoring of self-diagnosis information in each node operates on the following assumptions.

  • The publish cycle of the self-diagnosis library health_checker included in each node is constant.
  • The node health_aggregator that aggregates the self-diagnosis information monitors the cycle of the self-diagnosis information and notifies an error if there is any abnormality.

In the health_checker library, a timer callback for outputting self-diagnosis information at regular intervals is set. However, the spin function is not called in the health_checker library, and the timing at which the timer callback is called depends on the control cycle and control delay of each node incorporating the health_checker library.

How to test

  1. Execute the following in order before and after the change.
roscore

roslaunch autoware_health_checker health_checker.launch

roslaunch points_preprocessor ray_ground_filter.launch

rostopic pub -r 10  /points_raw sensor_msgs/PointCloud2 "header:
  seq: 0
  stamp: {secs: 0, nsecs: 0}
  frame_id: 'base_link'
height: 0
width: 0
fields:
- {name: '', offset: 0, datatype: 0, count: 0}
is_bigendian: false
point_step: 0
row_step: 0
data: ''
is_dense: false"

rostopic echo /system_status/node_status | grep "level: 3" -B10
  1. Please check last terminal(rostopic echo).
  • Before: An error like the one shown below keeps appearing.
  • After: The error disappears and nothing is displayed. image

Merge request reports