ROS运行中的一些常见报错及解法

本文记录了基于Ubuntu系统的ROS应用研究中遇到的经典报错及其解决方案,包括终端启动项设置、依赖问题、软件安装错误等内容,适用于ROS开发者参考。

现行的机器人应用研究,多是基于Ubuntu系统的ROS(Robot Operating System)进行搭建及仿真测试,这里简略记录一些经典报错及相应解法。这些仅是笔者在使用过程中遇到的小坑,水平有限,仅作学习记录之用途。

终端启动项
对于package中的功能包,使用中需要source相应的setup.bash文件,利用以下命令

gedit ~/.bashrc

可以直接编辑终端启动项(即你每次打开新的终端,这里面的命令行就自动运行了,可以直接把source语句放进其中)。

例如加入:

source ~/my_ws/devel/setup.bash

这样每次打开新的终端就相当于source过了。

报错内容(1):
catkin_package( )DEPENDS on the catkin package 'message_runtime' which must therefore be listed as a run dependency in the package.xml

感觉经常出现,原因上应该是某些依赖没加上。

对应解法:

在对应package中的package.xml文件中加上

<build_export_depend> message_generation </build_export_depend>
<exec_depend> message_runtime </exec_depend>

报错内容(2):
E: 无法获得锁 /var/lib/dpkg/lock-fronted - open (11:资源暂时不可用)

原因上是因为上一个apt进程可能还未结束(就被强制关闭了,毕竟有时候安软件网络一波动就直接嗝屁,看着心烦就CTRL+C了…)
换言之,就是正在使用apt install进程,由于它正在运行时会占用软件源更新时的系统锁,此时资源被锁。

对应解法(1):

ps -e|grep apt

会显示

xxx(一串数字) ? 00:00:01 aptd

直接输入

sudo kill xxx(那串数字)

这样可以直接“杀死”之前的进程。

对应解法(2):

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

报错内容(3):

安装软件时报错:

更换介质:请把标有“......”的盘片插入驱动器“/media/cdrom/”再按回车

对应解法:

权限修改/etc/apt/sources.list文件,注释掉deb cdrom: 开头的行
即:

# deb cdrom: .........

报错内容(4):

snap "xxx" has "install-snap" change in progress

xxx软件之前安装过一次,只是没装完就停止了(贼神奇)

对应解法:

snap change

这时候会显示

ID Summary
X install "xxx" snap

直接输入

sudo snap abor X

报错内容(5):

rosdep update 之后报错(有可能是网络问题)

这一点貌似Ubuntu每次更新后就很常见…实在没懂

对应解法:

更改/usr/lib/python 2.7/dist-packages/rosdep2/下面的三个文件的执行时间

三个文件分别是 source_list.py gdpdistro_support.py rep3.py

文件中的DOWN_TIMEOUT 默认是15,改成999就好了。

报错内容(6):

sudo rosdep init报错

对应解法:
cd /etc
sudo mkdir ros
cd ros
sudo mkdir rosdep
cd rosdep
sudo mkdir source.list.d
cd source.list.d
sudo touch 20-default.list
sudo gedit20-default.list

在文件里输入:

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml

gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

万能的加依赖句子

经常缺依赖报错可用

以melodic版本为例,直接用以下语句即可

rosdep install -y --from-paths, --ignore-src --rosdistro melodic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值