最近由于需要重新安装了一遍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、 结束(特别推荐)!!!!

参考自:

https://mp.weixin.qq.com/s/VGs8oWdhHH6XsHcx21lN4Q

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  ...

参考自:https://blog.csdn.net/qq_36698189/article/details/115607886?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=1

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

注:如果有侵权请联系!

最后希望大家都能拥有属于自己的小乌龟!!!!!!!!!!! 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐