El blog se transfiere de: https://blog.csdn.net/weixin_42005898/article/details/102498358 y ros-percepción
1. Instale el paquete pointcloud_to_laserscan
cd / home / ke / ros / pointcloud_to_laserscan_ws / src git clone https: // github.com/ros-perception/pointcloud_to_laserscan.git cd .. catkin_make
2. Crear un archivo de inicio
<? xml version = " 1.0 " ?> <launch> <! - ejecute pointcloud_to_laserscan node -> <node pkg = " pointcloud_to_laserscan " type = " pointcloud_to_laserscan_node " name = " pointcloud_to_laserscan " > <remap from = " cloud_in " to = " / velodyne_points " /> <rosparam> # target_frame:rslidar # Dejar deshabilitado para generar escaneo en frame de pointcloud transform_tolerance: 0.01 min_height: - 0.4 max_height: 1.0 angle_min: - 3.1415926 # - M_PI angle_max: 3.1415926 # M_PI angle_increment: 0.003 # 0 .17degree scan_time: 0.1 range_min: 0.2 range_max: 100 use_inf: true inf_epsilon: 1.0 # Nivel de concurrencia, afecta el número de puntos en la nube para el procesamiento y el número de hilos utilizados # 0: Detecta el número de núcleos # 1 : Hilo simple # 2 -> inf: Nivel de paralelismo concurrency_level: 1 </rosparam> </node> </launch>
Lo que hay que tener en cuenta aquí es este código: <remap from = "cloud_in" to = "/ velodyne_points" />. Debido a que la información publicada por el nodo lidar es / velodyne_points, debe cambiar la información de suscripción de pointcloud_to_laserscan de la nube predeterminada en / velodyne_points. Yo uso los siguientes paquetes, que se pueden descargar de Internet
Publique el mensaje / velodyne_points, escriba sensor_msgs / PointCloud2
3. Inicie el nodo pointcloud_to_laserscan y use rosbag para reproducir datos láser
#terminal 1 rocore #terminal 2 rosbag plag out.bag
Luego, inicie los nodos rviz y pointcloud_to_laserscan
#terminal 3 rosrun rviz rviz #terminal 4 roslaunch pointcloud_to_laserscan point_to_scan.launch
Los efectos son los siguientes, es decir, nube de puntos 3D, nube de puntos 2D y efectos mixtos
La configuración de rviz es la siguiente