手眼标定目录
背景
最近在做机器人抓取的相关研究,卡在手眼标定这一块了。网上也有一些大佬的博客在写,不过没有看到realsense和kinova的相关实验。小弟在此试错一周,奉上此博客,希望对有需要的小伙伴有所帮助。标定大概是,先启动编写完成的launch文件(相机,机器人,moveit,easy_handeye等),然后手动采集20个点,计算得到机器人base到相机的坐标变换关系,然后进行save,会被默认保存在~/.ros/easy_handeye文件夹下的一个yaml文件,然后进行publish就可以将而这的坐标变换发布到tf中。
标定过程
机器人的手眼标定主要参考开源项目easy_handeye,我再稍微罗嗦一下步骤,需要具备一下几个方面的内容。
easy_handeye
cd ~/catkin_ws/src # replace with path to your workspace
git clone https://github.com/IFL-CAMP/easy_handeye
cd .. # now we are inside ~/catkin_ws
rosdep install -iyr --from-paths src
catkin build
需要先进行rosdep。这个过程我就报错了
错误1-缺少库transforms3d

解决方案
pip install transforms3d
运行easy_handeye
参考issue,需要先将calibrate.launch文件中的第十三行move_group的default value改为arm,如下
<arg name="move_group" default="arm" doc="the name of move_group for the automatic robot motion with MoveIt!" />
这里需要编写一个launch文件,启动相机,机器人,moveit-kinova,以及easy_handeye,aruco等工具,我的launch文件放在代码部分
错误2-cv2.CALIB_HAND_EYE_TSAI
这个问题开始怀疑是opencv-python的版本不对,更换了几次,仍然有问题。后在issue74中有大佬给出解决方案,我的解决方案如下
1.首先安装opencv-contrib
python -m pip install opencv-contrib-python
2.在cv2.CALIB_HAND_EYE_TSAI报错的文件中作如下修改
将import cv2修改为
import sys
sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
import cv2
sys.path.append('/opt/ros/kinetic/lib/python2.7/dist-packages')
这一点的理由是:
ros使用的python库的位置与计算机的Python库位置不一样,所以import cv2是从ros的python库环境中导入,而我们的cv2是安装在计算机的python库中,所以需要先屏蔽掉默认的ros库导入,此时python的库已经切换到了计算机的python库。
错误3-Cannot calibrate from current position
这一个错误是由于未能调出image-view,无法采样,但是在rqt中我始终无法找到plugin菜单栏,报错Cannot calibrate from current position最后,不得已,我只能重新开启一个rqt(只需要运行rqt即可),选择空的rqt中的plugin栏目,选择image-view,topic选择**/aruco_track/result**,此时,只要相机视野中有坐标系,就可以进行采样操作了,这个过程由参考链接5得到启发
ros-realsense(d435)
参考ros-realsense自行安装
验证相机可用:
roslaunch realsense2_camera rs_camera.launch
然后就可以看到相机节点信息
kinova机器人ros驱动
参考ros-kinova自行安装
验证机器人可用:
roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s300
另还需要moveit工具进行轨迹规划
验证moveit
roslaunch j2n6s300_moveit_config j2n6s300_demo.launch
这个成功就表明在rviz内虚拟机器人与现实中的机器人的状态是同步的,并且可以在rviz中拖动机器人末端,进行轨迹规划(plan)和执行(execute)
重要:以上步骤配置完成可以看到三个图,见参考链接6,却一不可,如果可以手动进行规划,check starting pose那个图不需要使用,只要点击check starting pose没有错误就可。take sample那里也需要没有错误。
publish
采集完成20个点,计算,然后保存,最后进行publish
roslaunch easy_handeye calibrate.launch eye_on_hand:=true

最低0.47元/天 解锁文章
6916

被折叠的 条评论
为什么被折叠?



