ROS(十六): 手眼标定(二)

1、运行机械臂

roslaunch jaka_ros_driver start.launch

2、下载鱼香ROS的手眼标定程序

git clone https://gitee.com/ohhuo/handeye-calib.git

3、更改aruco里面的launch文件

第一个是realsense驱动的相机,第二个是USB相机

aruco生成的网站(选择original(必选))

Online ArUco markers generator (chev.me)

4、更改标定文件

眼在手外选第二个,眼在手上选第一个。改了第5行,机器人位姿话题名称(前面有介绍)

5、编译

catkin_make

6、打开相机

roslaunch handeye-calib aruco_start_realsense_sdk.launch

7、打开标定程序

roslaunch handeye-calib online_hand_to_eye_calib.launch

8、结果

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
【资源说明】 基于ROS手眼标定程序包源码(c和c++)+项目使用说明.zip 包含基础标定程序包,提供多组机器臂工具坐标和Marker坐标即可完成标定 - 包含JAKA、AUBO机械臂标定程序 - 本程序在`ros kinetic melodic`平台测试通过 >本程序包目前仅针对眼在手上的标定,通过输入两组以上的机械臂姿态信息(x,y,z,rx,ry,rz)和装在机械手上的相机所识别的标志物的姿态信息,经过程序计算可输出,机械臂末端和相机之间的坐标变换矩阵。 ```mermaid graph LR A[机械臂位姿] -->C[手眼标定] B[相机中标定板位姿] -->C C --> F[末端与相机位姿] ``` ## 使用指南 ### 1、基础使用 基础使用是在得到多组机械臂位姿与机械臂末端相机位姿之后直接使用本程序进行计算机械臂末端与相机之间的位姿关系。 - 机械臂位姿可以通过示教器或者SDK进行获取 - 相机中标定板位姿我们可以通过ArUco或者ArTookit等工具获得,可以参考这里。 > 我们使用一般读到的`(X,Y,Z,RX,RY,RZ)`六个数据表示 #### 安装测试 1. 下载编译 ``` git clone http://10.55.16.230/sangxin/handeye-calib.git cd handeye-calib catkin_make or catkin build ``` 2. 修改base_hand_on_eye_calib.launch文件中,base_handeye_data参数为从机械臂位姿和标定板位姿所在的配置文件所在的绝对目录,可以使用launch文件的`find`。 ``` <launch> <!-- <arg name=&quot;base_handeye_data&quot; default=&quot;The file path of handeye data.&quot; /> --> <arg name=&quot;base_handeye_data&quot; default=&quot;$(find handeye-calib)/config/base_hand_on_eye_test_data.csv&quot; /> <node pkg=&quot;handeye-calib&quot; type=&quot;base_hand_on_eye_calib.py&quot; name=&quot;base_hand_on_eye_calib&quot; output=&quot;screen&quot; > <param name=&quot;base_handeye_data&quot; value=&quot;$(arg base_handeye_data)&quot; /> </node> </launch> ``` 3. 运行程序 ``` source devel/setup.bash roslaunch handeye-calib base_hand_on_eye_calib.launch ``` 4. 查看结果 程序会根据配置文件中的坐标进行计算,最终输出如下数据(单位毫米,弧度制): 数据包含不同算法下计算结果,以及计算结果的标准差和方差等数据。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
ROS单目手眼标定程序: 1. 安装ros-indigo-opencv3软件包,这个软件包提供了OpenCV的3.0版和各种OpenCV的工具。 2. 确认相机是否能够被ROS识别,并且能够成功的运行和捕捉图像。如果能够正常运行,可以使用usb_cam软件包来进行设置。 $ sudo apt-get install ros-indigo-usb-cam $ rosrun usb_cam usb_cam_node 3. 计算相机的内参矩阵,并从相机标定板上收集特定数量的棋盘格图片,这个步骤需要使用OpenCV。可以使用以下命令进行相机内参矩阵的计算: $ roscore $ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/usb_cam/image_raw camera:=/usb_cam 4. 使用手眼标定工具包,计算手眼关系。该工具包依赖于OpenCV的手眼标定算法,可以在openCV的contrib模块中找到。可以使用以下命令安装工具包: $ sudo apt-get install ros-indigo-moveit-ros-robot-interaction ros-indigo-moveit-ros-perception ros-indigo-moveit-ros-planning-interface $ sudo apt-get install ros-indigo-ros-control ros-indigo-ros-controllers $ cd catkin_ws/src/ $ git clone https://github.com/ethz-asl/kalibr.git $ cd kalibr $ git checkout $YOUR_TAG (这里需要输入kalibr的版本号) $ cd ~ && mkdir -p HandEyeCalibration_ws/src && cd HandEyeCalibration_ws/src $ cp -r ~/catkin_ws/src/kalibr/HandEyeCalibration . $ cp -r ~/catkin_ws/src/kalibr/example . $ cd ~/HandEyeCalibration_ws && catkin_make 5. 运行手眼标定程序。确保相机和机器人都启动,并且他们可以正常运行。在命令行中运行: $ cd ~/HandEyeCalibration_ws $ source devel/setup.bash $ roslaunch example kinect_vrep_handeye_calibration.launch 6. 将结果存储在ROS包中。 这里就一一进行说明,可能比较晦涩难懂,但是大致原理就是这样: 首先,需要安装ROS软件,并且准备好相机可以被ROS识别,并能够正常的捕捉图像。然后,使用OpenCV计算相机内参矩阵,并从相机标定板上收集特定数量的棋盘格图片。接下来,使用手眼标定工具包,计算手眼关系,并将结果存储在ROS包中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宸静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值