1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Ubuntu20.04安装ROS教程(虚拟机/双系统 含报错解决)

Ubuntu20.04安装ROS教程(虚拟机/双系统 含报错解决)

时间:2022-07-12 13:58:13

相关推荐

Ubuntu20.04安装ROS教程(虚拟机/双系统 含报错解决)

最近在配置ROS环境时遇到了一些问题,遂在本文做个记录。主要解决了如何通过虚拟机的方式实现ROS的配置。

环境:宿主机:Windows10双系统:Ubuntu18.04虚拟机:Ubuntu20.04

文章目录

1.虚拟机安装 Ubuntu20.041.1 安装VMware Workstation 16 Pro1.2 下载Ubuntu20.04镜像1.3 安装Ubuntu20.04虚拟机2. Win10、Ubuntu双系统2.1 Ubuntu16.04配置2.2 Ubuntu18.04配置3. Ubuntu18.04 配置ROS3.1 创建虚拟环境 virtualenv3.2 配置ROS软件仓库3.3 安装 ROS3.4 初始化 rosdep3.5 报错解决3.6 `rosdep update` time out error(未解决)4. Ubuntu20.04虚拟机配置ROS(成功!)4.1 换源4.2 基础软件安装4.3 配置ROS环境4.3.1 安装显卡驱动4.3.2 安装虚拟环境4.3.3 安装noetic(对应ubuntu20.04)4.4 通过桥接解决 `rosdep update` time out error4.4.1 虚拟机选择桥接(校园网选择NAT):4.4.2 打开 allow lan:4.4.3 宿主机查看ip地址:4.4.4 Ubuntu设置proxy:4.4.5 Ubuntu安装proxychains4.5 测试小海龟参考:

1.虚拟机安装 Ubuntu20.04

1.1 安装VMware Workstation 16 Pro

下载地址:/cn/products/workstation-pro/workstation-pro-evaluation.html

最后一步选择第一项,输入激活密钥

1.2 下载Ubuntu20.04镜像

下载地址:/focal/

直接下载镜像比较慢,使用迅雷通过种子下载比较快。

1.3 安装Ubuntu20.04虚拟机

选择创建新的虚拟机

选择自定义

选择:

选择下载的镜像.iso文件

输入信息

选择安装位置

根据本机情况设置

选择推荐虚拟内容容量

使用桥接连接网络

使用校园网拨号上网,Ubuntu18以后不支持拨号,配置PPPOE不管用,设置桥接可以上网。

默认选项

SCSI控制器的英文名称是“Small Computer System Interface”,中文翻译为"小型计算机系统专用接口";顾名思义,这是为了小型计算机设计的扩充接口,它可以让计算机加装其他外设设备以提高系统性能或增加新的功能,例如硬盘、光驱、扫描仪等。

选择

设置磁盘容量

默认

默认

等待安装

右击左侧边栏的虚拟机,选择设置,选择NAT模式,这样就把win10下的网络桥接到虚拟机系统了。

2. Win10、Ubuntu双系统

虚拟机耗内存,有卡顿,使用体验不好,装双系统使用体验更好。

这部分之前配置过了,不再赘述。相关教程比较多,对照着配置一般不会出问题。可能出问题的地方是开机界面卡死,主要是安装显卡驱动不正确导致的。

之前配置的教程记录:

2.1 Ubuntu16.04配置

基于 Ubuntu 16.04 从零开始配置深度学习主机(一)–基础配置

基于 Ubuntu 16.04 从零开始配置深度学习主机(二)–显卡驱动\CUDA\CUDNN配置

基于 Ubuntu 16.04 从零开始配置深度学习主机(五)–Darknet配置与训练

2.2 Ubuntu18.04配置

Ubuntu18.04下 GPU版本 Tensorflow2.0+CUDA10.0 / Tensorflow2.1+CUDA10.1 虚拟环境配置

3. Ubuntu18.04 配置ROS

3.1 创建虚拟环境 virtualenv

安装虚拟环境及扩展包:

pip install virtualenvpip install virtualenvwrapper

创建用来存放虚拟环境的目录:

//home目录下运行mkdir .virtualenvs//非home目录下运行mkdir ~/.virtualenvs

编辑home目录下的.bashrc文件,添加下面两行内容:

//打开.bashrc文件命令//vi ~/.bashrc 或者 nano ~/.bashrcexport WORKON_HOME=$HOME/.virtualenvsexport VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenvsource ~/.local/bin/virtualenvwrapper.sh

注:ubuntu18及以上版本,virtualenvwrapper.sh被安装到了home目录下的.local/bin/中,非原来的/usr/local/bin/中。

运行.bashrc,使其生效

//home目录下运行source .bashrc//非home目录下运行//source ~/.bashrc

创建虚拟环境

//创建pyhton2的虚拟环境mkvirtualenv name//创建python3的虚拟环境mkvirtualenv -p python3 name

激活虚拟环境

workon name

退出虚拟环境

deactivate

查看虚拟环境中的包

pip list

查看所有虚拟环境:

lsvirtualenv

删除虚拟环境

rmvirtualenv name

卸载虚拟环境

sudo apt-get remove virtualenvsudo apt-get remove virtualenvwrapper

3.2 配置ROS软件仓库

创建虚拟环境:

mkvirtualenv -p python3 ros

激活虚拟环境

workon ros

配置Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库。

设置电脑以安装来自的软件。

sudo sh -c 'echo "deb /ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna./ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

如果依旧遇到连接问题,请尝试为Ubuntu apt换源。

设置密钥

sudo apt-key adv --keyserver 'hkp://:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

若无法连接到密钥服务器,可以尝试替换上面命令中的hkp://:80hkp://pgp.mit.edu:80

Linux在安装软件时,需要通过源列表去寻找对应的软件,Ubuntu默认的软件列表是没有ROS的,需要把网站配置到软件仓库列表内才能下载ROS,不然显示的是没有这个软件。

配置公网密钥,这一步是确保系统认为这个路径是安全的,下载文件是没有问题的。不然下载的东西会立刻被清除掉。

3.3 安装 ROS

首先,确保你包索引是最新的:

sudo apt update

在 ROS 中有很多不同的库和工具。ROS提供了四种默认选项。你也可以单独安装 ROS 的软件包。

桌面完整版(推荐): : 包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。

sudo apt install ros-melodic-desktop-full

桌面版: 包含 ROS,rqt,rviz 和机器人通用库

sudo apt install ros-melodic-desktop

ROS-基础包: 包含 ROS 包,构建和通信库。没有图形界面工具。

sudo apt install ros-melodic-ros-base

单独的包: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):

sudo apt install ros-melodic-PACKAGE

如:

sudo apt install ros-melodic-slam-gmapping

3.4 初始化 rosdep

在使用 ROS 之前,需要初始化 rosdep。rosdep 能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

sudo apt install python-rosdep2sudo rosdep init

执行成功之后,提示输入以下指令:

rosdep update

如果出现Error,可能是网络导致的,多执行几次命令即可。

添加到环境变量:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc

启动:

roscore

3.5 报错解决

由于网络原因, 可能会报以下错误:

ERROR: cannot download default sources list from:/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.

解决办法,执行如下命令:

cd /etcsudo nano hosts

在文件末尾添加:

151.101.84.133

然后查询的IP地址,并替换151.101.84.133

resolves to the following 4 IPv4 addresses:185.199.108.133185.199.109.133185.199.110.133185.199.111.133

如果遇到有些包下载不完全,之后又重新sudo rosdep init时,可能会遇到如下错误:

ERROR: default sources list file already exists:/etc/ros/rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize

![在这里插入图片描述](https://img-/0409183144963.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTY1Mzk0OA==,size_16,color_FFFFFF,t_70#pic_center

解决办法,执行如下命令:

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

然后再重新运行命令sudo rosdep init即可解决。

.增加TIMEOUT时间

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

搜索

DOWNLOAD_TIMEOUT=45.0

3.6rosdep updatetime out error(未解决)

困扰了我四五天,现在还没解决。

尝试过手机热点,安卓和ios都不行,校园网不可以。

尝试配置拨号连连接,未成功。

尝试Science上网,SS和CLASH均配置失败。

遂暂时用虚拟机配置···

在虚拟机上解决了该问题,大概思路就是:通过桥接网络,在宿主机器上科学上网,通过配置虚拟机的proxy,实现虚拟机的科学上网。

4. Ubuntu20.04虚拟机配置ROS(成功!)

4.1 换源

参考:/p/14944

备份:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

打开/etc/apt/sources.list文件,在前面添加如下条目,并保存。

sudo gedit /etc/apt/sources.list

#添加阿里源deb /ubuntu/ focal main restricted universe multiversedeb-src /ubuntu/ focal main restricted universe multiversedeb /ubuntu/ focal-security main restricted universe multiversedeb-src /ubuntu/ focal-security main restricted universe multiversedeb /ubuntu/ focal-updates main restricted universe multiversedeb-src /ubuntu/ focal-updates main restricted universe multiversedeb /ubuntu/ focal-proposed main restricted universe multiversedeb-src /ubuntu/ focal-proposed main restricted universe multiversedeb /ubuntu/ focal-backports main restricted universe multiversedeb-src /ubuntu/ focal-backports main restricted universe multiverse#添加清华源deb https://mirrors.tuna./ubuntu/ focal main restricted universe multiverse# deb-src https://mirrors.tuna./ubuntu/ focal main restricted universe multiversedeb https://mirrors.tuna./ubuntu/ focal-updates main restricted universe multiverse# deb-src https://mirrors.tuna./ubuntu/ focal-updates main restricted universe multiversedeb https://mirrors.tuna./ubuntu/ focal-backports main restricted universe multiverse# deb-src https://mirrors.tuna./ubuntu/ focal-backports main restricted universe multiversedeb https://mirrors.tuna./ubuntu/ focal-security main restricted universe multiverse# deb-src https://mirrors.tuna./ubuntu/ focal-security main restricted universe multiverse multiverse

更新源

sudo apt-get update

如出现依赖问题,解决方式如下:

sudo apt-get -f install

更新软件:

sudo apt-get upgrade

4.2 基础软件安装

chrome下载:/chrome/

搜狗拼音下载:/linux/?r=pinyin

安装参考:

/ubuntu20-04-install-sogou.html/linux/help.php

网易云下载:/#/download

错误:Gtk-Message: 03:59:19.540: Failed to load module "canberra-gtk-module"

解决:

sudo apt-get install libcanberra-gtk-module

启动:

切换:cd /usr/bin执行:./netease-cloud-musicTypora

参考:https://typora.io/#linux

# or run:# sudo apt-key adv --keyserver --recv-keys BA300B7755AFCFAEwget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -# add Typora's repositorysudo add-apt-repository 'deb https://typora.io/linux ./'sudo apt-get update# install typorasudo apt-get install typora

4.3 配置ROS环境

参考CH3.1——CH3.5

4.3.1 安装显卡驱动

参考:Ubuntu20.04显卡驱动安装

4.3.2 安装虚拟环境

sudo apt install python3-pippip3 install virtualenvwrapper

4.3.3 安装noetic(对应ubuntu20.04)

参考:在Ubuntu20.04中安装ROS Noetic

sudo apt update

sudo apt-key adv --keyserver hkp://ha.pool.sks-:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

sudo apt install ros-noetic-desktop-full

在使用 ROS 之前,需要初始化 rosdep。rosdep 能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

sudo apt install python3-rosdepsudo rosdep init

报错:

(ros) datazero@ubuntu:~$ sudo rosdep initERROR: cannot download default sources list from:/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.

解决:

cd /etcsudo nano hosts

在文件末尾添加:

151.101.84.133

然后查询的IP地址,并替换151.101.84.133

resolves to the following 4 IPv4 addresses:185.199.108.133185.199.109.133185.199.110.133185.199.111.133

如图:

执行成功之后,提示输入以下指令:

rosdep update

报错:

reading in sources list data from /etc/ros/rosdep/sources.list.dERROR: error loading sources list:The read operation timed out

我是校园网,如果依然报错,请尝试桥接!!!!!!具体解决如下:

4.4 通过桥接解决rosdep updatetime out error

过程如下(按顺序):

4.4.1 虚拟机选择桥接(校园网选择NAT):

4.4.2 打开 allow lan:

设置端口号,clash默认为7890。

4.4.3 宿主机查看ip地址:

打开cmd,ipconfig查看宿主机ipv4地址(一般为第一部分内容之中的ipv4地址):

4.4.4 Ubuntu设置proxy:

4.4.5 Ubuntu安装proxychains

在ubuntu命令行使用代理,需要安装proxychains:

sudo apt-get install proxychains

配置端口:

sudo nano /etc/proxychains.conf

添加以下内容:

socks5 宿主机ip地址 端口号

例如:

设置软链接

首先查找文件

find /usr/lib/ -name libproxychains.so.3 -print

将查找到的内容复制,对下述文件进行修改:

sudo gedit /usr/bin/proxychains

宿主机不要选择全局模式,而要选择RULE模式。

如果要使用代理,命令行中的命令前添加proxychains即可!

运行命令:

proxychains rosdep update

成功解决如图:

4.5 测试小海龟

运行:

roscore

测试:打开第二个终端,运行如下命令,出现一只小海龟

rosrun turtlesim turtlesim_node

如果希望小海龟移动,打开第三个终端,并运行:

rosrun turtlesim turtle_teleop_key

然后在运行该命令的命令行窗口选中的情况下,使用键盘的上下左右控制小海龟运动。

如图:

至此安装成功!!!

参考:

ROS基础系列教程2:ROS环境的搭建在 Ubuntu 中安装 ROS MelodicUbuntu18.04安装ROS MelodicUbuntu20.04安装virtualenv方法ROS初始化 sudo rosdep init失败VMware虚拟机走主机代理【VM/VBOX】使用桥接和NAT布置代理,实现虚拟机利用宿主机局域网共享

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。