1.虚拟机设置里面,更改usb;如果是USB2.0,就改为USB3.0,如果是USB3.0,就变为USB2.0;
2.查看虚拟机的摄像头是否开启;也就是USB是否连接:
暗的显示没连接,节接着点击这个摄像头,
接着点击这个摄像头,选择连接,如图摄像头变绿色,连接成功
cheese
sudo apt-get install ros-kinetic-uvc-camera
进入ROS环境(新建终端)
roscore
运行uvc_camera节点(新终端)
rosrun uvc_camera uvc_camera_node
查看话题消息(第三个终端)
rostopic list
以下话题消息显示正在发布相机信息(/camera_info)和图像信息(/image_raw)
打印出相机信息
rostopic echo /camera_info
rqt_image_view image:=/image_raw
打开rviz
rviz
按下图操作
点击image Topic,在点击2有下路况选项,选择/image_raw
结果:
安装相机校准功能包
sudo apt-get install ros-kinetic-camera-calibration
运行roscore
roscore
并在另一个终端窗口中运行uvc_camera_node节点
rosrun uvc_camera uvc_camera_node
打印相机信息
rostopic echo /camera_info
准备棋盘 摄像机的校准是以一个由黑白方块组成的棋盘为基准进行的
进行校正:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/image_raw camera:=/camera
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/image_raw camera:=/camera --no-service-check
用相机对准棋盘,校准将立即 开始。在GUI屏幕的右侧,可以看到一个标有X、Y、Size和Skew的条形控件。这是校准 的进展状态,都以绿色填满意味着校准完成。在校准过程中需要将棋盘对着相机朝着左/ 右/上/下/前/后移动,还需要倾斜棋盘。
校准所需的所有图像都记录下来之后,CALIBRATE按钮会被激活。 点击这个按钮后会进行实际的校准计算,这需要大约1到5分钟。
计算完成后,点击SAVE 按钮保存校准信息。
打开另一个新的终端,创建相机参数文件
下面,我们来创建一个包含相机校准参数的相机参数文件(camera.yaml)。如下例所示,解压缩calibrationdata.tar.gz文件以查看图像文件(*.png)和记录了校准中使用的校准参数的ost.txt文件。
cd /tmp
tar -xvzf calibrationdata.tar.gz
接下来,将ost.txt文件改名为ost.ini,并使用camera_calibration_parsers功能包
的convert节点创建相机参数文件(camera.yaml)。创建完成后,将其保存在~/.ros/camera_info/目录中,则ROS中使用的相机相关功能包会引用此信息。
mv ost.txt ost.ini
rosrun camera_calibration_parsers convert ost.ini camera.yaml
mkdir ~/.ros/camera_info
mv camera.yaml ~/.ros/camera_info/
最后再次运行uvc_camera_node节点;这一次,确保 目前没有出现关于校准文件的警告。
rosrun uvc_camera uvc_camera_node
查看/camera_info话题,则可以看到D、K、R和P参数已被填充:
rostopic echo /camera_info