Python / C++
网上有不少关于在ubuntu下uvc相机连接ros的教程,然而双鱼眼相机在ubuntu下连接ros的教程非常少。通过这篇文章我想把具体的操作方法给大家介绍一下,方便大家搞研究或者搞自己干一些有趣的事情,把时间浪费在不必要的地方上。
一. 硬件准备
相机用的是理光的全景相机 (型号: THETA S)网上查了一下价格大概1800左右。具体图片如下。
这里说一下注意事项, 理光相机THETA系列下有好几种型号,之前我用了THETA V型号,一直连接不上好像和uvc驱动不兼容,也尝试了通过wifi连接也失败了。。。 用的ROS包是这个github上面的,出的错和别人的也一样,参见这里。在之后我也试了其他几种方法,也都不行。最后我在某个论坛上发现有人说过用 THETA S 型号通过libuvc这个包可以连接,于是我冒着失败的风险自掏腰包买了 THETA S相机,最后终于成功了! (虽说比 THETA V便宜)
总之就是推荐大家用THETA S型号,THETA V型号比较新,没多少人用过,自己踩坑问题太多。
二. 安装libuvc_camera包和相关连接设置
1. 安装libuvc_camera
ros kinetic版本:
sudo apt-get install ros-kinetic-libuvc-camera
ros melodic版本:
sudo apt-get install ros-melodic-libuvc-camera
2. 写roslaunch文件
安装完libuvc_camera包后,需要写一个roslaunch文件来调用libuvc_camera这个包(这个包好像不在 wifi 下用不了)。
这个文件保存在/catkin_ws/src目录下就行, 我给他取名为 libuvc_camera.launch
, 文件如下直接复制就可以.
<launch>
<node name="libuvc_camera" pkg="libuvc_camera" type="camera_node" output="screen">
<param name="vendor" value="0x05ca" />
<param name="product" value="0x2711" />
<param name="width" value="1280" />
<param name="height" value="720" />
<param name="video_mode" value="mjpeg" />
<param name="frame_rate" value="14.985" />
</node>
</launch>
这里<param name="vendor" value="0x05ca" />
这一行和
<param name="product" value="0x2711" />
这一行分别需要针对自己的设备做一下修改, 这一部分就是指定自己的设备, 让libuvc_camera这个包知道相机的名称, 那么怎么查询自己的相机呢?
把THETA S 通过usb线连接到电脑, 此时非常重要的一步就是把THETA S相机切换到数据线连接模式 , 切换方法为 先按住最上边的电源键
, 然后过1秒后按住最下面的
相机模式切换键
,再过差不多1秒后电源键
松手,最后再过1秒后相机模式切换键
松手. 这时相机回变成下图的样子.
摄像图标下面 Live 亮了就说明模式切换对了.
这时打开电脑的Terminal, 输入