Hello!
I am using a realsense d435 rgbd camera to capture the world around the robot.
I am performing coordinate transformation in the camera callback pcCallback(const sensor_msgs::PointCloud2ConstPtr& cloud_msg)
(in cca every 1 sec, just if a condition is satisfied..)
I perform the transformation with:
success = camTfListener->waitForTransform(REF_FRAME,SOURCE_FRAME,ros::Time(0),ros::Duration(10.0),ros::Duration(0.01),&error_msg);
I only continue with the processing if success is true
(so if the transformation was successful - i assume...)
But what i experience is, that even if the transformation is unsuccessful, the function waitForTransform
returns true
. Is this possible?
So i get in the same time:
1)success=true
and
2)[ERROR]: Lookup would require extrapolation into the future. Requested time 1566215389.147320515 but the latest data is at time 1566215389.029921464, when looking up transform from frame [camera_color_optical_frame] to frame [base_link]
Also since success was true, i my algorithm continues with image processing and i get lots of errors such as [pcl::VoxelGrid::applyFilter] Input dataset doesn't have x/y/z coordinates
, etc...
Can you please give some hints how to solve this issue?
Remark: the camera works on 30 fps, i have also a static_transform_publisher
running on 100Hz - that links the camera_link
to the end_effector
of the robot.
Thank you in advance.
Originally posted by akosodry on ROS Answers with karma: 121 on 2019-08-19
Post score: 0