ros-perception / laser_assembler

Provides nodes to assemble point clouds from either LaserScan or PointCloud messages
40 stars 60 forks source link

ROS2 port #17

Open jonbinney opened 5 years ago

jonbinney commented 5 years ago

Creating this issue as a placeholder for discussions about design decisions when porting to ROS2

vandanamandlik commented 5 years ago

Hi, I couldn't find point_cloud_conversion.h file in ROS2 sensor_msgs package. Does anyone know any alternative for this file ?

jonbinney commented 5 years ago

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.

vandanamandlik commented 5 years ago

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 ?

jonbinney commented 5 years ago

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.

vandanamandlik commented 5 years ago

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 ?

jonbinney commented 5 years ago

That should be a separate thread - filters is used in lots of places other than laser_assembler.

vandanamandlik commented 5 years ago

Created separate thread for filters package here https://discourse.ros.org/t/filters-porting-to-ros2/7091

tonaaskarwur commented 3 years ago

Is there any current updates about the ROS2 version of this pkg?

jonbinney commented 3 years ago

This fell off of my radar. I'll take a look later this week.

Marina-Banov commented 2 years ago

Any updates for ROS2?

lukechencqu commented 2 years ago

Currently, only laser_geometry has ros2 version, but when will this laser_assembler will be available for ROS2?

jonbinney commented 2 years ago

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.

JSOV2001 commented 1 year ago

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 value or use a ... suffix to tell

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

aarjan222 commented 7 months ago

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!

jonbinney commented 7 months ago

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?

JSOV2001 commented 7 months ago

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:

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/

jonbinney commented 7 months ago

I see - that makes sense. There's some overlap between a few different packages:

@JSOV2001 Is i it specifically the sensor_msgs/Laserscan to pcl Pointcloud conversion method that you're missing?

JSOV2001 commented 7 months ago

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

jonbinney commented 7 months ago

@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:

Thoughts?

jonbinney commented 7 months ago

(i'm trying to avoid adding an extra package in ROS2 unless it really is necessary)

ucesiox commented 6 months ago

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!

jonbinney commented 6 months ago

@ucesiox i think for now you're best off implementing it yourself, sorry!