【遇】ROS中主从机配置中摄像头 问题及解决方法

ROS配置问题记录

首先介绍下实验平台 以及 环境配置信息
本文实验平台为Turtlebot3-waffle_pi
(1)电脑PC中安装了一个Ubuntu16.04 64位的虚拟机;
(2)树莓派3B,安装的是Ubuntu mate16.04 for raspeberry,是armhf架构的,在官网上16.04版本,专为树莓派的系统只找到armhf架构的。摄像头是树莓派官方摄像头( CSI 接口 )。
注:
本文的配置环境参考地址为网址链接,该教程全文是以 Turtlebot3-waffle_pi 小车介绍ROS环境的配置,以及车辆上的雷达、摄像头传感器等功能的配置。

问题1
该问题是在配置摄像头这一环节出错的,出现的问题如下

sudo: raspi-config: command not found

造成的原因就是除树莓派官方提供的系统外的系统事先没有安装 raspi-config

问题1解决方法
首先给出参考解决方案来源:跳转地址链接,该文的解决方案标题针对的是 树莓派4B+Ubuntu20.04,不过不要担心,我的是 树莓派3B+Ubuntu mate 16.04 也可以。具体的解决步骤如下:
(1)安装依赖

sudo apt install whiptail parted lua5.1 alsa-utils psmisc

(2)从Raspberrypi官网下载最新的deb安装包

wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200707_all.deb

这里没有太关注raspi-config的版本问题,这个下载链接的版本是raspi-config_20200707_all.deb,我在网上搜索了相关内容,没看到有关系统 与 raspi-config 版本有特殊对应关系内容,因此直接随便下载一个版本,若不合适,再更换。
(3)安装Deb安装包

sudo dpkg -i raspi-config_20200707_all.deb

执行sudo raspi-configsudo raspi-config看是否可以运行
(4)若装好软件还是提示缺少依赖执行错误的话,就执行下面语句

sudo apt install -f -y

到这里,再执行sudo raspi-configsudo raspi-config运行。

问题2
解决上述问题后,继续按着教程网址链接,执行raspistill -v -o test.jpg语句,测试摄像头是否可以拍照,出现以下报错信息:

mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera' (1:ENOMEM)
mmal: mmal_component_create_core: could not create component 'vc.ril.camera' (1)
mmal: Failed to create camera component
mmal: main: Failed to create camera component
mmal: Camera is not detected. Please check carefully the camera module is installed correctly

通过报错信息,可以大致判断出是系统没有检测到 摄像头 设备。

问题2解决方法
由于是系统没有检测到摄像头设备,因此可能有两种情况导致,一是摄像头没有启动(enable),二是摄像头没有安装正确(插错位置)或者摄像头与树莓派上的接口接触不良。解决步骤如下:
(1)检查摄像头设备状况,命令如下

vcgencmd get_camera

得到结果为 supported=1 detected=0,表示只能检测到有输入,但是不能识别设备。
(2)重新按照启动(enable)摄像头的步骤,将 其它传输协议(SSH、SPI、I2C 等)与 P1 Camera 一样全部启动 (enable),如下图所示
在这里插入图片描述
首先说明,这一步结束后,并没有解决问题(在搜索网上时,很多人说这样可以,但也有人不可以,我就属于不可以一类)。
(3)仔细检测摄像头与树莓派连接情况,看两者的接口是否正确、连接线是否完好,或者 清洁下接口处的灰尘,重新组装。(在组装和清洁过程,记得切断树莓派板子的电源)
最终,通过步骤(3)解决了该问题。此时通过vcgencmd get_camera命令检查,就能得到supported=1 detected=1,再用raspistill -v -o test.jpg就可以拍照了。

问题3
解决上述问题后,继续按着教程网址链接,下载好相关的ROS驱动包,配置好相应的环境后(具体看配置环境的网址链接),启动树莓派上的摄像头,命令如下

roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch 
或
roslaunch raspicam_node camerav2_1280x960.launch

出现如下错误信息:

ERROR:cannot launch node of type [raspicam_node/raspicam_node]: can't locate node[raspicam_node] in 

分析错误提示,原因应该是节点之间的链接关系有问题,导致无法定位节点。
问题3解决方法
尝试重新编译整个项目文件,步骤如下
(1)切换到项目的,网址链接中的目录为~/catkin_ws,原本该文件下只有 src 文件夹,编译后,会多出 devel和 build 两个文件夹。现在删掉这两个文件夹(如果存在这两个文件夹的话)
(2)在~/catkin_ws目录下,重新执行命令 catkin_make
重新编译时,可能会出现报错信息 或者 编译到一部分就卡死了,这些都是正常现象(两种情况,我都遇见了)。
a、若遇到报错,目录下又多出devel和 build文件夹,就删掉,再重新编译;
b、若遇到卡死,键盘、鼠标都不能动或很卡情况,就直接切断树莓派电源,重新启动,切换到~/catkin_ws目录,删除devel和 build文件夹(如果有的话),执行命令catkin_make -j2 ,这可以把编译时使用的cpu核心数降低一点,就不会出现卡死情况【亲测有效】。

最后,在按步骤运行,应该就没有问题了!!!

问题4 [遗漏了一个问题,进行补充]
在执行 rosdep update(官方命令)或者 rosdepc update 【鱼香ROS工具,在前期环境配置中,若rosdep update出错,选择鱼香ROS提供的安装方法参考网址,,原本的rosdep 被替换为 rosdepc,两者功能是一样的( 感觉就类似于linux系统中的 apt-get ),没遇到该问题,请忽略我这一段废话哈】
(1)执行 rosdep update或者 rosdepc update时,可能出现以下问题

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
learning_move: Cannot locate rosdep definition for [move_base]
后边可能还会跟几条类似上边的语句,如
learning_urdf: Cannot locate rosdep definition for [xacro]
learning_tf: Cannot locate rosdep definition for [tf_transformations]

分析错误信息,主要是缺少相关的依赖项,如 learning_xxx开头的语句中,显示不能找到相关包的rosdep definition.

问题4解决方法
我是参考这篇文章解决的,地址为:源出处-点击跳转
具体的解决步骤如下:
(1)下载 缺失的依赖项
格式为:sudo apt-get install ros-安装ros版本(如我的ubuntu mate 16.04,对应的ros版本为kinetic)-依赖包名字,以缺失

learning_move: Cannot locate rosdep definition for [move_base]

为例,缺失项的名称为语句末尾的中括号里的内容 move_base ,命令行输入 sudo apt-get install ros-kinetic-move-base,切记下划线一定要变成英文格式的减号: “ - ” ,如 move_base 要改为 move-base

下边这张图为ROS版本和Ubuntu版本的对应,引用的博客源地址
在这里插入图片描述
(2)按提示的缺失项下载完后,继续运行执行 rosdep update或者 rosdepc update时,可能会更新成功,但也可能会继续 出现 相同的错误,不过错误中提示的缺少项的名称是不同的,按照步骤(1),继续下载相应的缺失项,直至不报错,执行 rosdep update或者 rosdepc update时,提示成功更新

【总结】
本文所采用方法可能不能解决所有表面看上去与本文问题相同的问题(因为造成相同问题的原因有很多,解决方法并不一致)。
若本文对您有用,欢迎评论区留言,以供往后相同问题的 读者 看到 留言后(产生希望),再按此文操作。若无用 或 为您提供思路 ,也请在评论区讨论,共同学习,以供往后读者 作参考。

作者水平有限,若有错误,欢迎读者在评论区指出 或 私信。谢谢!!!

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值