Ubuntu16.04 Ros下使用各种摄像头获取图像(踩坑总结)(转载)

128 篇文章 13 订阅

摘自:https://blog.csdn.net/zbr794866300/article/details/100113594

Ubuntu16.04 Ros下使用各种摄像头获取图像(踩坑总结)

berry丶 2019-08-28 11:56:41 1499 收藏 10

分类专栏: Ros视觉

版权

最近再ros下尝试获取摄像头的图像,参照《Ros by Example 1》,但是有些依赖在kinetic下有些不能使用,再连续踩坑的过程中,总结了一套能够使用的方法。

1.安装rbx1包以及相关的基础包

书上是对应的是hydro版本的基础包,有几个再16.04的版本下都找不到了,我就把能够成功安装下载的罗列出来:

 
  1. sudo apt-get install ros-kinetic-turtlebot-*

  2. sudo apt-get install ros-kinetic-openni-camera ros-kinetic-openni-launch

  3. sudo apt-get install ros-kinetic-uvc-camera

  4. sudo apt-get install ros-kinetic-laser-*

  5. sudo apt-get install ros-kinetic-audio-common ros-kinetic-joystick-drivers

  6. sudo apt-get install ros-kinetic-orocos-kdl ros-kinetic-python-orocos-kdl

  7. sudo apt-get install gstreamer0.10-pocketsphinx python-setuptools python-rosinstall

  8. sudo apt-get install ros-kinetic-opencv3 ros-kinetic-vision-opencv

  9. sudo apt-get install ros-kinetic-depthimage-to-laserscan ros-kinetic-arbotix-*

  10. sudo apt-get install git subversion mercurial

这是我在Ubuntu16.04 kinetic opencv3版本上测试安装的,都可以实现,如果不能安装的更新下软件包列表。

然后安装rbx1包到自己的工作空间去:

 
  1. cd ~/catkin_ws/src

  2. git clone https://github.com/pirobot/rbx1.git

  3. cd ..

  4. catkin_make

  5. source devel/setup.bash

2.安装摄像头驱动

网上现在相关的资料博客常提到的有三款驱动:

(1)uvc_cam:这个驱动现在已经不更新了,对于高版本来说,感觉有些小问题,(我下载了这个驱动但是连编译都有问题,毕竟书上是比较老的版本了)

(2)usb_cam:这个驱动配合自带的launch文件可以直接显示电脑摄像头和usb摄像头的图像,参考:usb_cam调用摄像头显示图像。但是我不用launch文件,直接启动roscore,然后运行usb_cam_node节点时,就读取不到图像,全是错误的显示:

所以也没有使用该驱动。

(3)usb_camera:这个驱动的节点是可以直接使用显示图像,因此就选择这个驱动。

安装uvc_camera:

 
  1. cd ~/catkin_ws/src

  2. git clone https://github.com/ktossell/camera_umd

  3. cd ~/catkin_ws

  4. catkin_make

  5. source devel/setup.bash

测试uvc_camera:

新开一个终端输入:

roscore

然后再开一个终端输入:

rosrun uvc_camera uvc_camera_node device:=/dev/video0

然后笔记本摄像头会亮,显示了一串数据,然后就再等待状态。这时再开一个终端,输入rostopic list查看话题名称,找到图像那个名称/image_raw,再输入:

rosrun image_view image_view image:=/image_raw

测试成功,该节能够成功使用。

3.修改launch文件测试

此时,我们要让rbx1_vision动起来,还要做个主题映射把/image_raw -> /camera/rgb/image_color还要修改 rbx1_vision/launch/uvc_cam.launch 文件中调用的 driver node : pkg=uvc_cam; node name=uvc_cam_node。

找到rbx1/rbx1_vision/launch文件夹内,只有名为usb_cam.launch的文件,此时重新创建一个文件取名为:uvc_camera.launch

然后再里面添加以下内容:

 
  1. <launch>

  2. <arg name="device" default="/dev/video0" />

  3.  
  4. <node name="uvc_camera_node" pkg="uvc_camera" type="uvc_camera_node" output="screen">

  5.  
  6. <remap from="image_raw" to="/camera/rgb/image_color" />

  7.  
  8. <param name="device" value="$(arg device)" />

  9. <param name="image_width" value="640" />

  10. <param name="image_height" value="480" />

  11. <param name="frame_rate" value="30" />

  12. <param name="pixel_format" value="mjpeg" />

  13. <param name="contrast" value="32" />

  14. <param name="brightness" value="32" />

  15. <param name="saturation" value="32" />

  16. <param name="autofocus" value="true" />

  17. <param name="camera_frame_id" value="camera_link" />

  18.  
  19. </node>

  20. </launch>

直接沾过去如果运行的时候显示launch文件错误的话就是汉字字母的格式问题。

建议将launch文件中自带的usb_cam.launch的内容沾到uvc_camera.launch中去,然后只是修改了node_name的内容就可以了(我就是这么做的)

4.最终测试

我外接了一个sub摄像头,可以通过命令查看:

ls /dev/video*

电脑自带的一般为:/dev/video0  外设的:/dev/video1

试着运行这个launch文件,然后使用image_view工具查看话题camera/rgb/image_color的数据:

roslaunch rbx1_vision uvc_camera.launch  device:=/dev/video1

然后打开一个新的终端:

rosrun image_view image_view image:=/camera/rgb/image_coror

整体就OK了

 

参考文献:

https://blog.csdn.net/sonictl/article/details/48053597/

https://blog.csdn.net/heyijia0327/article/details/41623419

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ubuntu 16.04 ROS 安装教程: 1. 首先,打开终端,更新软件包列表: sudo apt-get update 2. 安装 ROS Kinetic: sudo apt-get install ros-kinetic-desktop-full 3. 初始化 ROS: sudo rosdep init rosdep update 4. 设置环境变量: echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc 5. 安装 ROS 工具: sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential 6. 创建工作空间: mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make 7. 设置环境变量: echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 8. 安装 ROS 包: cd ~/catkin_ws/src git clone https://github.com/ros/ros_tutorials.git cd ~/catkin_ws/ catkin_make 9. 测试安装: roslaunch roscpp_tutorials talker_listener.launch 以上就是 Ubuntu 16.04 ROS 安装教程的全部内容。 ### 回答2: Ubuntu16.04是一款非常流行的开源操作系统,它可以让用户轻松进行各种开发任务。其中ROS是一款非常强大的机器人操作系统,它可以帮助用户在实现机器人的开发、控制、监管等各个方面。在这里,我们将为大家介绍Ubuntu16.04上ROS的安装教程。 一、前期准备 在开始配置ROS系统之前,我们需要先做好一些准备工作。首先确保你的Ubuntu已经更新到最新版,这可以通过以下命令来完成。 sudo apt-get update sudo apt-get upgrade 然后我们需要安装ROS的软件源。 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 接着,我们需要下载ROS的秘钥。 sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116 最后,更新你的软件清单。 sudo apt-get update 二、安装ROS 在上面的准备工作完成之后,我们可以开始安装ROS了。如果你想要安装完整版的ROS系统,那么可以通过以下命令来完成安装。 sudo apt-get install ros-kinetic-desktop-full 在安装过程中,你需要输入一些配置信息,例如ROS的版本号和安装目录等。在完成安装之后,我们需要初始化ROS系统。 sudo rosdep init rosdep update echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc 三、创建工作空间 接下来,我们需要创建一个ROS的工作空间。这个工作空间是用来存储ROS的程序和代码的。 首先,创建一个工作空间的目录。 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src 然后,初始化ROS工作空间。 catkin_init_workspace cd ~/catkin_ws/ catkin_make 在以上的命令执行完毕之后,你就已经成功地创建了ROS的工作空间。 四、添加依赖项 在开始编写ROS程序之前,我们需要添加一些依赖项来辅助我们进行程序的编写工作。以下是添加依赖项的命令。 sudo apt-get install ros-kinetic-ros-tutorials sudo apt-get install ros-kinetic-geometry-msgs sudo apt-get install ros-kinetic-rosbag sudo apt-get install ros-kinetic-tf 五、测试ROS系统 在完成以上的步骤之后,我们来测试一下ROS系统。使用以下命令启动ROS系统。 roscore 接着,打开新的终端,并输入以下命令启动ROS回声程序。 rosrun roscpp_tutorials talker 在新的终端中再次输入以下命令启动ROS回声程序。 rosrun roscpp_tutorials listener 最后,运行一下以下命令,确认ROS回声程序是否正确运行。 rostopic echo /chatter 在你输入以上命令之后,可以看到ROS回声程序的输出信息。 通过以上步骤,我们已经成功地在Ubuntu16.04上安装了ROS系统,并进行了基本的测试工作。同时,你还可以通过ROS来进行更加全面和强大的机器人开发工作。 ### 回答3: Ubuntu操作系统是开源免费的操作系统,其中ROS是开源机器人操作系统,可以用于控制、仿真和编程机器人。下面将介绍如何在Ubuntu16.04上安装ROS。 1. 更新Ubuntu:首先需要更新Ubuntu操作系统,运行以下命令: sudo apt-get update sudo apt-get upgrade 2. 添加ROS软件源:运行以下命令添加ROS源 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 3. 安装ROS:安装ROS时,可以选择ROS版本(Kinetic / Melodic / Noetic等),其中Kinetic较为稳定,我们选择Kinetic进行安装,运行以下命令: sudo apt-get update sudo apt-get install ros-kinetic-desktop-full 4. 初始化ROS:安装完成后,需要先初始化ROS环境变量,运行以下命令: echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc 5. 安装ROS工具包:根据需求安装相关的ROS工具包,例如rosdep和rosinstall等。 sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential 6. 初始化rosdep:运行以下命令初始化rosdep。 sudo rosdep init rosdep update 7. 测试ROS:安装完毕后,可以运行以下命令来测试ROS是否正常运行: roscore 以上为在Ubuntu16.04上安装ROS的通用步骤,但在安装ROS的过程中可能会出现各种各样的问题,可以通过ROS社区和其他相关的技术支持网站了解相关的解决方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值