Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: How to use add_transform_check_dynamic_updates #344

Open
Navsea opened this issue Jun 7, 2024 · 4 comments
Open

Question: How to use add_transform_check_dynamic_updates #344

Navsea opened this issue Jun 7, 2024 · 4 comments

Comments

@Navsea
Copy link

Navsea commented Jun 7, 2024

Hi,

We would like to dynamically change the transformation that is applied by the sick multiscan lidar sensor.

As I understand it, by default, you cannot change the add_transform_xyz_rpy once it is set at launch.
When you set the add_transform_check_dynamic_updates parameter to true, I believe that it would listen for parameter updates of the "add_transform_xyz_rpy" parameter.

In the comments of the launch file it states:
Note: dynamical updates of parameter add_transform_xyz_rpy can decrease the performance and is therefor deactivated by default

What causes this performance impact really?
I would think that using ROS parameters would not have a big impact on the processing time.
What impact can we expect?
We would only update it every second at max for example.

Best regards,
Kenneth

@rostest
Copy link
Collaborator

rostest commented Jun 10, 2024

Thanks for your feedback. Your understanding is correct. To dynamically transform the published point clouds, the parameter add_transform_check_dynamic_updates must be set to true. This causes the transformation given by the parameter add_transform_xyz_rpy to be tracked and to reinitialize the setting after parameter changes. It may impact the processing time. The processing time depends on the system and CPU; if in doubt you can just set a pose using parameter add_transform_xyz_rpy, activate add_transform_check_dynamic_updates and check the cpu usage.

In general, we recommend publishing transform (TF) messages to provide ROS with static or dynamic transforms. Alternatively, you can use e.g. pcl_ros::transformPointCloud to transform a point cloud to another coordinate system. This is often more CPU efficient.

@Navsea
Copy link
Author

Navsea commented Jun 10, 2024

Thanks you for the fast reply.

The reason we would like to use the dynamic updates iso TF's, is that we can offload one transformation to the CPU of the lidar iso having to do it on our platform.

We will check if the performance hit is too much for the lidar.
Thanks again for the fast support!

BR,
Kenneth

@rostest
Copy link
Collaborator

rostest commented Jun 10, 2024

Thanks for further information. Please note that transformations given by parameter add_transform_xyz_rpy are computed by the driver, i.e. computed on the CPU running the sick_scan_xd.

@Navsea
Copy link
Author

Navsea commented Jun 10, 2024

Oh, that makes sense.
Then we'll go for that tf approach then.
Thanks again 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants