小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
TF_OLD_DATA问题
-
@calm 根据我的经验一般是相机没有经过标定造成的
-
@小鱼 感谢回复,因为目前只用到RGB-D相机的RGB相机,所以其中的深度相机确实没有标定,只做了RGB相机的标定。同时是采用OpenNI驱动的相机,之前也尝试过修改OpenNI的launch文件去禁用深度相机,只启动RGB相机,但是奈何改了几次都没成功。后面有空再尝试吧,感谢小鱼!
-
@calm 好的,不过应该就是RGB没标定,导致计算位姿的时候四元数非法造成的,如果你标定了那就是aruco程序没有正确读取到参数
-
@小鱼 我这边是通过openni2_launch启动相机的,在启动过程中,是有显示加载了在.ros/camera_info/****.yaml标定文件的呀,是在aruco程序哪里还需要指定内参文件位置吗?
-
@calm 请提供其中参数文件的内容,有加载不一定内容正确,最好使用ros标定默认生成的,而且一定要确定是加载到rgd相机参数。
另外不清楚你的这个启动程序启动的是相机还是aruco,aruco是程序是默认通过话题来获取相机参数的,所以最好是检查话题数据是否正常,具体话题信息要看你的配置了。
-
@小鱼 图1是参数文件的内容,相机的标定也是参考的教程里面的,图2是我对aruco程序的launch文件做的修改,启动是直接
roslaunch handeye-calib aruco_start_realsense_sdk.launch
启动的。rgb相机标定和aruco程序订阅的rgb相机话题都是/camera/rgb/image_raw
。图4 是查看到的rgb相机信息。麻烦了,谢谢
-
@calm 看起来没问题,这个话题有被aruco订阅到吗?试试rostopic info 看看
-
@小鱼 有的
-
@calm 如果被订到了那可能这个问题我搞错了方向了,再次和你确认一下是都一定是没数据,你可以用rostopic echo /aruco_sigle/result (没记错是这个话题)是否有数据,另外用rqt看看图像是否有识别出码,如果有数据就是rviz问题了,可以不予理睬。
如果不行再看内参,看数据相机的宽高只有1920*1080但是下内参矩阵数据又2099,一般光心都在像素坐标系的一半的位置,所以你标定的时候是否有注意误差。另外关于相机的名字,camera_name这个参数(下次最好复制粘贴文件和代码,方便我这边引用回答)和aruco中的可能参数名称是都需要保持一致,这个你再自行测试下。
-
@小鱼 好的,感谢小鱼
是都有数据的, /aruco_single/result这个话题有数据, aruco码也可以识别,但是只要一检测到aruco码, 所有和ros相关的终端就都会开始一直跳"[WARN] : TF_OLD_DATA ignoring data form the past for frame aruco_marker_frame at time ****** according to authority unknown_publisher."
.
还有个问题需要请教一下就是, 不管这个warn , 做完手眼标定后, 结果好像不大对, 我这边用rviz验证了下. 手眼标定用了4组数据, 测试用的是第一个Tsai-Lenz方法的结果, 将结果填到test_hand_on_eye.launch
.然后用rviz查看tf树, 实际相机是固定在机械臂末端的.
-
@calm 这个看你结果的确是不对的,数据没有拟合起来,还是内参那块出问题可能较大,建议重新标定一下内参。
-
@小鱼 好的,感谢