There are this official ROS org website: https://docs.ros.org/en/jazzy/index.html, and this ROS Industrial Training from the Texas training program: https://industrial-training-master.readthedocs.io/en/latest/index.html. The later provides more juicy content.
This blog is focused on my interest in understanding perception in ROS, particularly PCL. The Point Cloud Library (PCL) is a large scale, open project[1] for point cloud processing. The PCL framework contains numerous state-of-the art algorithms including filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation. These algorithms can be used, for example, to filter outliers from noisy data, stitch 3D point clouds together, segment relevant parts of a scene, extract keypoints and compute descriptors to recognize objects in the world based on their geometric appearance, and create surfaces from point clouds and visualize them – to name a few. PCL is released under the terms of the BSD license and is open source software. It is free for commercial and research use. https://pointclouds.org/documentation/.
As mentioned, the industrial training ROS website provided perception chapter, but it is just the barebone, now referencing this Pakistan robotics engineer Muhammad Luqman to see how PCL is applied in ROS.
the github: https://github.com/noshluk2/ros2_learners/tree/main
First in his demo, the PCL data is collected using Lidar in simulation. Then data is saved up, then how to apply?
create a test_node.cpp, and need to modify the CMakelist.txt, then go to PCL official tutorials under the PCL/filters, to copy the cpp files for use. Moving on to ROS2 PCL Point Cloud Voxel Filter and Planner Segmentation.

Note the leafsize decides how much is to be “filtered” the higher the value the more course the output.

his demo shoed how this plane_seg work, the output becomes

play around the parameter esp. distance threshold is essential in output. moving on to Cylindrical Segmentation.
PCL provides powerful manipulation of these kinds of segmentation, but the ultimate goal is to apply to the real world esp. in autonomous driving. How?
Note there is the KITTI dataset free, opensource providing PCL for self-driving. Demo is here how this set of data can be loaded in for use. it opens a whole new world!