-
Notifications
You must be signed in to change notification settings - Fork 15
Incorporate filtering at a ROS node/driver level #39
Comments
Per your note above, I think the proper approach is to provide a nodelet interface and not have these specific filters (and their parameterizations) creep into the driver. To that end, I do not have plans to provide a nodelet interface in this library (PRs are welcome if you would like to do it). However, in the coming weeks ifm3d-ros will provide a nodelet interface. As an aside, if you really need performance and are working with the O3D, you may want to consider running your code directly on the camera and using our low-latency framegrabber -- albeit, this will not be ROS. Some other comments related to your post above...
This can be achieved today, on the camera itself. You can specify it directly in the libo3d3xx JSON dump. The specific constants that map to the filter type can be found here
It depends. If your PCIC schema specifies it (which is the default for this ROS node), the Cartesian data will be computed on the camera and streamed over the wire. However, the point cloud data can always be reconstructed from the Unit Vectors (published on a latched topic), Radial Distance Image, and the Extrinsic Calibration. For concrete examples you can see this C++ example or even look at the ROS unit tests for a Python example. |
@tpanzarella, thanks for the quick reply. I wasn't aware of the I know that spatial filtering can be done on board via config, but the noise around edges negatively effects the filtering. My approach is to remove the noise before applying the spatial filter. Because of this, I would have to apply the filter myself. |
Yes. ifm3d and ifm3d-ros will ultimately replace libo3d3xx and o3d3xx-ros. The
No problem. Yes, we run the filters you are talking about (and much more) directly on the O3D for various applications. However, you should know that the internal processor of the O3D is a bit constrained, so, running things like the PCL SOR filter won't be free. |
Hey Hey |
I would like to incorporate my own filtering techniques on the sensor outputs (pointclouds and potentially 2D images). In order to achieve the best performance, this can be done in two ways:
There are more filtering options with 2D images. Ideally, these would be applied to the 2D images and then the pointcloud recalculated. However, as near as I can tell, the point cloud is calculated on the sensor and not in the ROS node.
The text was updated successfully, but these errors were encountered: