ros单目手眼标定程序
时间: 2023-05-26 22:03:59 浏览: 159
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包中。