最近由于需要重新安装了一遍ros操作系统,遇到了一些困难,特此做个全面的总结!
1 换源
在ubuntu软件里搜索 软件与更新 打开,勾选图上的选项,并打开 “下载自” 选择其他站点,点击“选择最佳服务器” 等待系统选择完点击确定。
设置源 :
以下是清华源(也可使用其他源)
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
2 输入密钥
ctrl+alt+T打开终端,输入密钥:(这里提供几种密钥可供选择,任选其一即可)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
3 安装ROS-melodic(这里一定注意对应Ubuntu的版本,这篇文章基于Ubuntu18.04写的)
1 更新
sudo apt-get update
sudo apt-get upgrade
这里的第一条命令会访问源列表的每个网址,并读取软件列表,通过该命令进行这里更新列表。
这里的第二条命令会将本地安装好的软件与刚下载的软件进行对比,如果刚下载的软件版本过低的话会提示你进行更新。
(update是更新软件列表,upgrade是更新软件)
4 2 安装ROS-melodic
这里需要注明:
14.04对应indigo,16.04对应kinetic,
18.04对应melodic,20.04对应noetic
对应代码中的版本(这里Ubuntu18.04对应melodic,其他版本自行修改即可)
sudo apt-get install ros-melodic-desktop-full
sudo apt-get install ros-melodic-rqt*
第一条命令是安装Ros桌面完整版。
第二条命令是安装rq4t工具。
4 初始化(这里是出错最多的地方!!!)
rosdep update 最主要的问题就是raw.githubusercontent.com无法访问
sudo rosdep init
rosdep update
ERROR 1:sudo rosdep 找不到命令;
原因是:没有安装python-rosdep包
解决办法:
sudo apt-get install python-rosdep
ERROR 2:
解决办法1:
1、获取etc中的权限
sudo chmod 777 /etc
2、打开文件夹进入etc文件之后右键打开终端(一定要手动创建)
mkdir ros #创建ros目录 cd /etc/ros #进入ros文件夹 mkdir rosdep #创建rosdep文件夹 cd /etc/ros/rosdep #进入rosdep文件夹 mkdir sources.list.d #创建sources.list.d文件夹 cd /etc/ros/rosdep/sources.list.d/ #进入sources.list.d文件夹 touch 20-default.list #创建20-default.list文件
3、进入文件后会发现是空白文档,将以下内容粘贴进去
# os-specific listings first yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx # generic 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 # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
4、在桌面打开终端,执行以下命令:
sudo gedit /etc/hosts
将面代码插入图示位置
151.101.76.133 raw.githubusercontent.com #也可以换成 151.101.84.133 raw.githubusercontent.com # GitHub Start 52.74.223.119 github.com 192.30.253.119 gist.github.com 54.169.195.247 api.github.com 185.199.111.153 assets-cdn.github.com 151.101.76.133 raw.githubusercontent.com 151.101.108.133 user-images.githubusercontent.com 151.101.76.133 gist.githubusercontent.com 151.101.76.133 cloud.githubusercontent.com 151.101.76.133 camo.githubusercontent.com 151.101.76.133 avatars0.githubusercontent.com 151.101.76.133 avatars1.githubusercontent.com 151.101.76.133 avatars2.githubusercontent.com 151.101.76.133 avatars3.githubusercontent.com 151.101.76.133 avatars4.githubusercontent.com 151.101.76.133 avatars5.githubusercontent.com 151.101.76.133 avatars6.githubusercontent.com 151.101.76.133 avatars7.githubusercontent.com 151.101.76.133 avatars8.githubusercontent.com # GitHub End 此处参考:https://blog.csdn.net/hl_tt_an/article/details/105632447
(出现黄色的警告不用担心)
(继续执行sudo rosdep init 后执行 rosdep update 的时候出现问题一般是网络问题,建议使用手机热点。)这里参考:https://blog.csdn.net/weixin_44692299/article/details/105869229
解决方法 2:
出现这个问题的原因是被墙了,解决方法就是将需要的文件下载到本地,然后修改原文件中的链接,指向本地仓库,即可解决。
1、新建一个文件夹,并进入文件夹
sudo mkdir -p /home/one/git/ cd /home/one/git/
下载项目:
sudo git clone https://gitee.com/one_DS/rosdistro.git
2、 备份原文件
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/main.py /usr/lib/python2.7/dist-packages/rosdep2/main.py.bak sudo cp /usr/lib/python2.7/dist-packages/rosdep2/rep3.py /usr/lib/python2.7/dist-packages/rosdep2/rep3.py.bak sudo cp /usr/lib/python2.7/dist-packages/rosdistro/__init__.py /usr/lib/python2.7/dist-packages/rosdistro/__init__.py.bak sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py/usr/lib/python2.7/dist-packages/rosdep2/sources_list
3、 替换原文件到本地下载
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/main.py sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
4、初始化命令
sudo rosdep init
5、备份并运行
sudo cp /etc/ros/rosdep/sources.list.d/20-default.list/etc/ros/rosdep/sources.list.d/20-default.list.bak sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list rosdep update
参考自:https://blog.csdn.net/weixin_50060664/article/details/121781535
解决方法 3:(这是一位大佬写的rosdepc,亲测nice!)
1、安装pip或pip3
sudo apt-get install python3-pip #pip可以改成pip3
2、安装rosdepc
sudo pip install rosdepc
3、 进行初始化
sudo rosdepc init rosdepc update
4、 结束(特别推荐)!!!!
参考自:
5 安装Rosinstall
sudo apt-get install python-rosinstall
6 安装catkin编译器
sudo apt-get install ros-melodic-catkin python-catkin-tools
7 配置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
ERROR 1:在执行第二步的时候如果出现 bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录 这个错误的时候。
解决办法 :
1、 在终端输入以下命令,进入文件后,下拉到最后一行。
gedit .bashrc
2 、 将以下命令添加到文件最后一行
source /opt/ros/melodic/setup.bash
8 启动小乌龟
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
以上就是在ubuntu18.04下安装ros的基本方法!
另外还有一些不常见的坑,也在这里做个总结!
ERROR1:
运行sudo apt-get update由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
解决方法:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
ERROR2:
使用apt-get install E: 无法定位软件包问题
解决方法:
1、备份源镜像
cd /etc/apt/ sudo cp sources.list sources.list.old
2、 使用vim修改
sources.list
文件sudo vim sources.list
如果vim命令没找到的话先安装vim
sudo apt-get install vim; // gedit也是一样的做法
弹出sources.list文件后删除替换成镜像源后保存退出。
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
3、 更新软件包
sudo apt-get update
4、 就可以安装你想下载的软件了
sudo apt-get install ...
ERROR3:
执行apt-get update报错:404 Not Found [IP: 91.189.91.38 80]
解决方法:
sudo mv /etc/apt/sources.list /etc/apt/sources.list_backup sudo vim /etc/apt/sources.list
执行以上命令后,将以下信息填进去。
deb http://old-releases.ubuntu.com/ubuntu/ groovy main restricted deb http://old-releases.ubuntu.com/ubuntu/ groovy multiverse universe deb http://old-releases.ubuntu.com/ubuntu/ groovy-updates main restricted deb http://old-releases.ubuntu.com/ubuntu/ groovy-updates multiverse universe deb http://old-releases.ubuntu.com/ubuntu/ groovy-backports main restricted deb http://old-releases.ubuntu.com/ubuntu/ groovy-backports multiverse universe deb http://old-releases.ubuntu.com/ubuntu/ groovy-security main restricted deb http://old-releases.ubuntu.com/ubuntu/ groovy-security multiverse universe
参考自:https://blog.csdn.net/weixin_42135087/article/details/122585036https://blog.csdn.net/weixin_42135087/article/details/122585036
ERROR4:
解决ROS系统 rosdep update超时问题的简单方法
参考自:https://blog.csdn.net/weixin_44023934/article/details/121242176
注:如果有侵权请联系!