ROS中使用Kinect摄像头和usb摄像头

1、安装的一些包 

  kinect用的freenect:

$ sudo apt-get install ros-indigo-freenect-launch
$ sudo apt-get install ros-indigo-freenect-camera
$ sudo apt-get install ros-indigo-freenect-stack

  驱动安装好后,首先在终端输入“roscore”,启动节点,然后在新的终端输入“roslaunch freenect_launch freenect.launch”。

显示RGB图像:

  方法一:rosrun image_view image_view image:=/camera/rgb/image_color  即可显示RGB图像。

  方法二:用rviz显示:在终端输入“rosrun rviz rviz”打开rviz,点击add,修改Global Options里的Fixed Frame为camera_depth_frame,选择camera类型,添加成功后选择camera菜单下的Image Topic选项,选择/camera/rgb/image_color.

显示深度图像:

  方法一:在终端输入“rosrun image_view image_view image:=/camera/depth/image_raw”,即可显示深度图;

  方法二:使用rviz显示。在终端输入“rosrun rviz rviz”打开rviz,修改Global Options里的Fixed Frame为/camera_depth_optical_frame,接着点击add添加PointCloud2类型,修改topic为/camera/depth/points。

usb摄像头:

  roslaunch usb_cam usb_cam-test.launch


特别注意:使用虚拟机的话,要设置USB兼容3.0.并在可移动设备里面将usb接口打上沟,如果rgb显示正常,但是深度显示不正常,重新插一下深度usb、然后先打开深度节点,再打开rgb节点,启动rviz,可以选择image,image topic可以选择rgb或者depth,也可以选则pointcloud2,订阅、camera/rgb/image_cloud或者深度对应的。如果此时看不到任何数据,status显示error,修改Fixed Frame参数,将其换成相机或者点云的话题即可

2、usb摄像头标定功能包:

安装标定功能包
$ sudo apt-get install ros-indigo-camera-calibration

启动usb摄像头
$ roslaunch usb_cam usb_cam-test.launch

启动标定程序
$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam

就用书上的标定靶或者打印一份,对着摄像头不断前后左右旋转移动,直到Calibrate按钮变成绿色,此时界面会卡一会儿,千万不要关闭,参数计算完成后见面恢复,终端中会有标定结果的显示,点击SAVE,标定参数保存到默认文件夹中,可以在终端中看到路径,点击COMMIT提交数据并退出,打开/tmp文件夹,,标定结果为calibrationdata.tar.gz,解压找到ost.yaml,复制出来重命名即可使用,然后修改launch文件即可加载标定的yaml

3、kinect标定:

roslaunch freenect_launch freenect.launch
rosrun camera_calibration cameracalibrator.py image:=/camera/rgb/image_raw camera:=/camera/rgb --size 8x6 --square 0.024
rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image_raw camera:=/camera/ir --size 8x6 --square 0.024

加载方式:根据启动时候的报错信息,参数与实际的名称不符合,按提示修改launch文件即可为上述保存的标定文件名称

猜你喜欢

转载自www.cnblogs.com/dingyc/p/10676962.html