laser_assembler
laser_assembler copied to clipboard
ROS2 port
Creating this issue as a placeholder for discussions about design decisions when porting to ROS2
Hi, I couldn't find point_cloud_conversion.h file in ROS2 sensor_msgs package. Does anyone know any alternative for this file ?
Not sure - if you haven't already, I'd suggest adding an issue on the ROS2 sensor_msgs package, since that is where it would go.
Hi, In current laser assembler package there is support for both PointCloud and PointCloud2. So Should I keep it as it is or remove PointCloud support ?
It would be good to keep support for both. It looks like ROS2 still has a PointCloud message: https://github.com/ros2/common_interfaces/tree/master/sensor_msgs/msg
The PointCloud message is simpler to use for people who aren't using PCL, since the PointCloud2 is a big binary blob that you have to manually parse.
As laser assembler package is dependent on filters package, We are also working on filters porting. So should we create separate discourse thread for filters or comment under laser assembler thread itself ?
That should be a separate thread - filters is used in lots of places other than laser_assembler.
Created separate thread for filters package here https://discourse.ros.org/t/filters-porting-to-ros2/7091
Is there any current updates about the ROS2 version of this pkg?
This fell off of my radar. I'll take a look later this week.
Any updates for ROS2?
Currently, only laser_geometry has ros2 version, but when will this laser_assembler will be available for ROS2?
Sorry I haven't had time to work on a ROS2 port. If anyone else wants to tackle it, I'm happy to review a PR.
Hi,
I'm using ROS2 Humble for a project. I've been trying to use ros2 branch but It's no working. Can someone help me, please?
This is the error:
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake.
Update the VERSION argument
CMake that the project does not need compatibility with older versions.
CMake Error at CMakeLists.txt:11 (find_package):
By not providing "Findcatkin.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "catkin", but
CMake did not find one.
Could not find a package configuration file provided by "catkin" with any of the following names:
catkinConfig.cmake
catkin-config.cmake
Add the installation prefix of "catkin" to CMAKE_PREFIX_PATH or set "catkin_DIR" to a directory containing one of the above files. If "catkin" provides a separate development package or SDK, be sure it has been installed.
Failed <<< laser_assembler [0.74s, exited with code 1]
Summary: 0 packages finished [1.04s]
1 package failed: laser_assembler
1 package had stderr output: laser_assembler
1 package not processed
hello @JSOV2001 was this problem of yours solved or not because I also needed this package for my project and when I was building with colcon. It failed saying same error as of yours. It might be because the package is instead searching for catkin to build the package.
Had you solved this problem at that time? If you found a solution back then, could you please provide some hints or assistance?
I would be very grateful for your help. Thank you!
Yeah, this still isn't ported to ROS2. Could you each explain your use case so I have a sense for what functionality is most critical, and what might already be covered by other packages?
hello @JSOV2001 was this problem of yours solved or not because I also needed this package for my project and when I was building with colcon. It failed saying same error as of yours. It might be because the package is instead searching for catkin to build the package.
Had you solved this problem at that time? If you found a solution back then, could you please provide some hints or assistance?
I would be very grateful for your help. Thank you!
Hi, @aarjan222
First, I'll make clarification: I had to convert my LaserScan message to PointCloud2 message beforehand. Also, in my case, I used the library PCL to do the PointCloud2 processing. Please, remember that PCL is written in C++ code.
So:
- I took the ROS' PointCloud2 message.
- Then, converted into a PCL's PointCloud2 data.
- Finally I processed the data in the way my application needed.
In my case, I concatenated every current PointCloud2 into a empty PointCloud2, and then, I got the final result.
Link por PCL: https://pointclouds.org/
I see - that makes sense. There's some overlap between a few different packages:
- commoon_interfaces/sensor_msgs : has an iterator for simple access and modification of sensor_msgs without needing a PCL dependency
- perception_pcl/pcl_conversions: contains methods for converting between sensor_msgs/Pointcloud2 message and pcl Pointcloud type
@JSOV2001 Is i it specifically the sensor_msgs/Laserscan to pcl Pointcloud conversion method that you're missing?
I see - that makes sense. There's some overlap between a few different packages:
- commoon_interfaces/sensor_msgs : has an iterator for simple access and modification of sensor_msgs without needing a PCL dependency
- perception_pcl/pcl_conversions: contains methods for converting between sensor_msgs/Pointcloud2 message and pcl Pointcloud type
@JSOV2001 Is i it specifically the sensor_msgs/Laserscan to pcl Pointcloud conversion method that you're missing?
Hi, Jon
In my case, I transformed the ROS' LaserScan into ROS' PointCloud2 with a function of my own
I base my idea from one of the laser_assembler's package, especifically ConvertToCloud
@JSOV2001 your use case does seem to be missing from the packages I mentioned, and it is an important use case. We could add the LaserScan->Pointcloud2 functionality to another package:
- adding it to pcl_conversions would require users to pull in PCL as a dependency, which it sounds like you do anyway, but others might not.
- adding it to sensor_msgs would require that package to depend on laser_geometry, as well as filters if we include the filter plugin aspect
- adding it to laser_filters could work..... it wouldn't add many new dependencies.
Thoughts?
(i'm trying to avoid adding an extra package in ROS2 unless it really is necessary)
Hi there,
I'm just looking for a way to ring buffer point cloud messages of a single livox mid360 so I can get aggregated point clouds over the last n seconds output onto another topic. Don't need any filtering transforming or anything else.
This repo looked like it would have done the job at some point, but wondering what the current state is! Or whether you know of any other packages which might do the job! Or whether I should just do it myself :P
Thanks!
@ucesiox i think for now you're best off implementing it yourself, sorry!