Closed SeongJun-Hwang closed 11 months ago
You can use ros services to continously monitor the lidar state and pose, e.g.
# Query lidar state (ROS 1):
rosservice call /sick_nav_350/ColaMsg "{request: 'sRN SCdevicestate'}"
# Wait for the next calculated position and query NAV-350 pose (ROS 2):
rosservice call /sick_nav_350/ColaMsg "{request: 'sMN SetAccessMode 3 F4724744'}"
rosservice call /sick_nav_350/ColaMsg "{request: 'sMN mNPOSGetData 1 2'}"
# Query lidar state (ROS 2):
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sRN SCdevicestate'}"
# Wait for the next calculated position and query NAV-350 pose (ROS 2):
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sMN SetAccessMode 3 F4724744'}"
ros2 service call /ColaMsg sick_scan/srv/ColaMsgSrv "{request: 'sMN mNPOSGetData 1 2'}"
If the ros service call does not return or does not return the expected response (i.e. no error and position available), you can diagnose an unnormal operation. You can additionally monitor the pointcloud messages on topic "cloud" (if you do not receive pointcloud messages after initialization, the lidar or sick_scan_xd do not work properly).
See https://cdn.sick.com/media/docs/9/59/859/telegram_listing_telegrams_for_configuring_and_operating_the_nav350_laser_positioning_sensor_en_im0053859.pdf for details about NAV-350 SOPAS commands.
thank you ^^
Regarding safety, we are configuring a program to verify that the NAV350 is operating normally in navigation mode and to stop all functions if abnormal. If the NAV350 is abnormal (disconnected, contaminated, etc.), please tell me how to issue a message in ROS