This repository contains pointcloud2_to_costmap node that takes PointCloud2 and decomposes it to classes related to Class Definitions. Then, each group is sent to its own PointCloud2 topic for the costmap layer (costmap_2d).
You can configure the segmentation of data to several groups in the config file. The number of groups and their composition might be chosen on behalf of the task and related to the data consumer. There is a config file structure example:
types:
- {name: sidewalk,
value: 1,
group: example_road}
- {name: human,
value: 11,
group: example_human}
- ...
- name is a description of the class by Class Definitions.
- value is the numeric description of the class.
- group is the name of the group you can set by yourself.
You have to have installed ROS1 (The software was written for ROS Melodic) and contains such packages as navigation/costmap_2d and RViz.
Copy this repository to your cantkin_ws/src directory and do catkin_make command:
~ cd catkin_ws/src/
~ git clone https://github.com/Krenshow/pointcloud2_to_costmap.git
~ cd .. && catkin_make
To run the node you have to run pointcloud2_to_costmap node + run costmap_2d modul + rviz to see the result. As well as the rosbag file or the other source of data has to be started.
pointcloud2_to_costmap node
roslaunch pointcloud2_to_costmap pointcloud2_to_costmap.launch
costmap_2d module + rviz
roslaunch pointcloud2_to_costmap costmap.launch
rosbag file
cd path_to_rosbag_file/
rosbag play file_name
To configure the poincloud2_to_costmap node you can edit config file. Also, params file might be changed to set the costmap layer. You can change observation sources (choose groups of PointCloud2 you want to see at the costmap) or set other parameters of the costmap.
If you run costmap.launch RViz is started automatically. You should see footprint, costmap and /example_human PointCloud2 data. You can switch on other PointCloud2 groups (topics) just by putting a tick in the boxes in the left corner.