SICKAG / sick_scan_xd

Based on the sick_scan drivers for ROS1, sick_scan_xd merges sick_scan, sick_scan2 and sick_scan_base repositories. The driver supports both Linux (native, ROS1, ROS2) and Windows (native and ROS2).
Apache License 2.0
101 stars 84 forks source link

Is there a way to combine all echos in picoscan150 in a single world frame #342

Closed logesh-gtx closed 2 months ago

logesh-gtx commented 4 months ago

When i Switch to all echos mode the the scan_fullframe topic data comes with three different frame id's, but when i change to first echo / last echo it works fine but with only limited to one echos data.

For Single echo (first / last echo) topic data param: <param name="host_FREchoFilter" type="int" value="2" /> Screenshot from 2024-06-05 10-37-36

For ALL echos filter topic data param: <param name="host_FREchoFilter" type="int" value="1" /> Screenshot from 2024-06-05 10-37-07

rostest commented 4 months ago

Thanks for your feedback. Topic scan_fullframe publishes the scan data using LaserScan messages. LaserScan messages are defined by the ROS standard in https://docs.ros.org/en/noetic/api/sensor_msgs/html/msg/LaserScan.html. Due to their format, these messages are limited to one planar scan with one layer and one echo. Multiple layers and echos are therefore published by multiple LaserScan messages with different frame ids. The frame_id of a LaserScan message is <base_frame_id>_<layer_id> for a single echo configuration (first or last echo) and <base_frame_id>_<layer_id>_<echo_idx> for multiple echos.

If <base_frame_id> is "lidar_1", the frame_id is "lidar_1_1" for the single echo configuration (first or last echo) or "lidar_1_1_0" (first echo), "lidar_1_1_1" (2.nd echo), "lidar_1_1_2" (last echo) for multiple echos (host_FREchoFilter=2).

If your application does not require multiple echos, we recommend to use the last echo (default parameter host_FREchoFilter=1).

To process multiple echos in one scan, we recommend to use the point cloud messages (data type PointCloud2) published in topic cloud_unstructured_fullframe (fields x,y,z,i) or cloud_all_fields_fullframe (all fields incl. x,y,z,i,range,azimuth,elevation,layer,echo).

logesh-gtx commented 3 months ago

Thank you for your response @rostest , it works good in /cloud_unstructured_fullframe