本人借鉴了许多博主的博客,在此表示感谢。安装这些东西实属不易,踩了不少坑,希望这篇我整理的文章能帮助你们顺利安装,有些安装包下载不了的,可以私聊或在评论区留言。
**
**
sudo apt install ipython
sudo apt install ipython3
sudo apt install ipython-pip
sudo apt install ipython3-pip
sudo apt install qtcreator(不安装cmake)
**
**
终端执行以下命令,打开.bashrc文件sudo gedit ~/.bashrc
然后再文件末尾添加一行文字,然后右上方记得保存:export PATH="/home/felix/anaconda3/bin:$PATH"
最后输入以下命令使配置马上生效:source ~/.bashrc
**
**
在安装之前先将Ubuntu的镜像源调为国内镜像源,这一步是为了让接下来的下载过程中使用中国的服务器,加快下载速度。从桌面左下角“显示应用程序”-》“软件与更新”,配置Ubuntu允许universe、restricted、multiverse这三种安装模式,并把软件源更改为清华大学的源(中国科技大学USTC也行)。
这一步配置将镜像添加到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'
添加秘钥到本地的trusted数据库中并加以验证:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
若密钥服务器hkp://ha.pool.sks-keyservers.net:80无法添加成功,则可以尝试hkp://pgp.mit.edu:80或者hkp://keyserver.ubuntu.com:80,我安装时用的是hkp://keyserver.ubuntu.com:80。
在更新之前,需要安装公钥,否则无法验证签名,这一步有的教程上有有的教程上没有,保险起见我也照着做了,命令如下:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
问题一:
导入秘钥失败:
方法一:
执行:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 76F1A20FF987672F
结果如下:
Executing: /tmp/apt-key-gpghome.uBwlOPqFFF/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 76F1A20FF987672F(这个是你自己的)
gpg: key 76F1A20FF987672F: 1 signature not checked due to a missing key
gpg: 密钥 76F1A20FF987672F:公钥“WineHQ packages <[email protected]>”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1
再执行:
sudo apt-get update && apt-get upgrade
方法二:
下载导入公钥,导入key:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF0E1940624A220 #此处6AF0E1940624A220需要是错误提示的key
此时继续更新发现没有公钥错误提示,但是还是效验存在问题,此时需要打开软件源的界面,将其他软件选项中的Canpnical合作伙伴/独立等四个选项取消勾选,再执行sudo apt-get update
更新Ubuntu 18.04 LTS的最新可用软件包列表:sudo apt update
下面开始安装ROS,推荐安装桌面完整版,这样就可以将ROS、rqt、rviz、机器人通用库、2D/3D仿真器、导航、2D/3D感知等功能一次性安装完成。
安装之前,需要安装其他依赖库,一次性安装如下:
sudo apt install libvtk6-jni libvtk6-java libvtk6-dev libvtk6-qt-dev libpcl-dev
sudo apt install ros-melodic-pcl-conversions ros-melodic-pcl-ros ros-melodic-perception-pcl ros-melodic-perception
**PS:**我在安装时这些依赖库是一个一个安装的,因为网络不稳定,一次性安装容易报错。
最后终于开始安装ROS Melodic,方法如下:
sudo apt install ros-melodic-desktop-full
如果希望安装特定的ROS程序包,则可以首先查看当前可用的程序包列表,然后选择自己需要的程序包进行安装,这里暂且不提。
开始使用ROS之前,还需要安装rosdep,rosdep是ROS一些核心组件的运行基础,会在编译ROS源码时检查和安装程序包依赖。安装ROS方法如下:
sudo rosdep init
# fix-permission限制权限为当前用户
sudo rosdep fix-permissions
# 可能由于网络原因会失败,多运行几次即可
rosdep update
问题一:
安装ROS时执行到sudo rosdep init时出现sudo rosdep:找不到命令提示
解决方法:需要输入:
sudo apt install python-rosdep 或者 sudo apt install python-rosdep2 (推荐输入前面的命令)
然后输入:
sudo rosdep init
问题二:
这里在执行sudo rosdep init指令时报错:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
根本原因是无法解析raw.githubusercontent.com,可参考博客解决sudo rosdep init和rosdep update的错误解决,主要是在hosts中修改IP地址,特别需要注意的是这里要编辑hosts需要先切换至root,不然权限不够会报错。
sudo -i
切换至root后,直接在终端输入:
sudo gedit /etc/hosts
然后再打开的hosts文档最后增加一行内容:
151.101.76.133 raw.githubusercontent.com
此时仍然可能有gedit警告:
(gedit:4287):警告:01:27:40.477:设置文档元数据失败:设置属性元数据::不支持gedit拼写语言
(gedit:4287):警告:01:27:40.478:设置文档元数据失败:设置属性元数据::不支持gedit编码
(gedit:4287):警告:01:27:43.365:设置文档元数据失败:设置属性元数据::不支持gedit位置
12345
这些只是警告,基本上可以无视,如果实在忍受不了,在终端输入下面的指令可以消除:
sudo -H gedit /some/where/file.txt &>/dev/null
问题三:
执行rosdep update时报错(超时)
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit http://github.com/ros/rosdistro/raw/master/rosdep/osx-homebrew.yaml
ERROR: unable to process source [http://github.com/ros/rosdistro/raw/master/rosdep/base.yaml]:
<urlopen error _ssl.c:489: The handshake operation timed out> (http://github.com/ros/rosdistro/raw/master/rosdep/base.yaml)
ERROR: error loading sources list:
The read operation timed out
连手机热点,多试几次,这个问题真的是玄学。
默认情况下,ROS_HOME的路径为"~/.ros",该目录保存着日志文件和测试结果文件。另外,第一次启动ROS时,需要进行环境变量配置,命令如下:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
查看环境变量是否设置正确,命令如下:
env | grep ROS
我运行时查看环境变量结果如下,可以对照检查一下:
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_MASTER_URI=http://localhost:11311
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROS_PACKAGE_PATH=/opt/ros/melodic/share
ROSLISP_PACKAGE_DIRECTORIES=
ROS_DISTRO=melodic
至此,ROS的核心程序包安装完毕。
为了构建和管理开发者自己的ROS工作空间,还需要安装编译依赖,方法如下:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
成功安装后,就可以体验ROS和创建ROS应用了。
打开第一个终端:
roscore
利用Ctrl+Shift+T快捷键打开第二个终端:
rosrun turtlesim turtlesim_node
此时会出现一个画布,画布中有一只小海龟,此时小海龟还不会动。
继续打开第三个终端,
rosrun turtlesim turtle_teleop_key
此时在当前终端下,可以通过键盘上的方向键控制小海龟移动。
问题一:
安装结束后,输入:roscore
报错:
Command ‘roscore’ not found, but can be installed with:
sudo apt install python-roslaunch
根据提示输入:sudo apt install python-roslaunch
报错:
Unable to correct problems, you have held broken packages.
解决方案
指令 “roscore” 之所以能够被执行,首先需要在文件夹 “/opt/ros/indigo/bin/” 里面存在名为 “roscore” 的二进制可执行文件,打开文件夹,检查文件是否存在:
cd /opt/ros/melodic/bin
ls -l
果然没有。
输入:
sudo apt-get install ros-melodic-desktop
cd 进去再看,有了!
执行
source ~/.bashrc
再次启动ROS
roscore
问题二:
ros下载过程中遇到了这个问题,用apt-get安装其他软件都会跳出一些依赖不会安装从而无法下载。
python-rosdep-modules : 依赖: python-rosdistro-modules (>= 0.7.5) 但是它将不会被安装
python-rosdep-modules : 依赖: python-rosdistro-modules (>= 0.7.5) 但是它将不会被安装
E:Sub-process /usr/bin/dpkg returned an error code
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”。
运行
sudo apt --fix-broken install
如果还是不能解决,就输入下面这几行
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk
sudo mkdir /var/lib/dpkg/info
sudo apt-get update
sudoapt-get install -f
然后就可以用apt-get下载了。
首先,Ubuntu下查看Nvidia显卡的详细信息:
nvidia-smi
结果:
$ nvidia-smi
Fri Aug 16 08:46:25 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 940MX Off | 00000000:3C:00.0 Off | N/A |
| N/A 46C P0 N/A / N/A | 183MiB / 2004MiB | 3% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 3038 G /usr/lib/xorg/Xorg 94MiB |
| 0 4709 G /usr/bin/gnome-shell 86MiB |
+-----------------------------------------------------------------------------+
查看cuda 版本:
cat /usr/local/cuda/version.txt
or
nvcc -V
结果:
$ cat /usr/local/cuda/version.txt
CUDA Version 10.1.243
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
如果上述命令你都没有输出,那么请往下看:
第一:Ubuntu下双显卡笔记本如何安装NVIDIA卡驱动
安装显卡驱动
检查自己电脑的gpu是否CUDA-capable
lspci | grep -i nvidia
#没有lspci就安装
apt install pciutils
输出:
NVIDIA Corporation GM108M [GeForce 940M] (rev a2)
禁用nouveau并重启(安装Nvidia显卡的官方驱动和系统自带的nouveau驱动冲突)
lsmod | grep nouveau
#没有lsmod就安装
apt install module-init-tools
如果有输出说明nouveau正在加载
打开禁用列表
sudo gedit /etc/modprobe.d/blacklist.conf
在打开文本的最后一行添加:
blacklist nouveau
options nouveau modeset=0
更新,重启:
sudo update-initramfs -u
reboot
再次查看是否禁用nouveau
lsmod | grep nouveau
重点:
先安装 gcc :
sudo yum -y install gcc-c++
或者
sudo apt install build-essential
删除旧的NVIDIA驱动:
$sudo apt-get remove nvidia-*
$sudo apt-get autoremove
或者:
sudo apt-get --purge remove nvidia-*
# sudo ./NVIDIA-Linux-x86_64-410.57.run -uninstall
sudo update-initramfs -u
sudo reboot now
更新系统软件仓库列表
sudo apt-get update
使用下面的命令查看系统推荐安装哪个版本的N卡驱动
ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:1d.0/0000:3c:00.0 ==
modalias : pci:v000010DEd0000134Dsv000017AAsd000039C8bc03sc02i00
vendor : NVIDIA Corporation
model : GM108M [GeForce 940MX]
driver : nvidia-driver-410 - third-party free
driver : nvidia-driver-415 - third-party free
driver : nvidia-driver-390 - third-party free
driver : nvidia-driver-430 - third-party free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
在上面这些输出中可以看到recommended关键词,说明系统推荐安装的N卡驱动是"nvidia-driver-430"
选择你看到推荐版本安装,本例使用nvidia-driver-430,然后安装几个必要组件,命令如下
sudo apt-get install nvidia-settings nvidia-driver-430 nvidia-prime
我的建议安装的是nvidia-440版本驱动,然后继续在命令行输入:
sudo ubuntu-drivers autoinstall
将会自动安装所推荐的nvidia-440版本驱动
安装双显卡切换指示器
~$ sudo add-apt-repository ppa:nilarimogard/webupd8
~$ sudo apt-get update
~$ sudo apt-get install prime-indicator
重新启动
sudo reboot
新启动后会在右上角看到一个显卡指示器,默认情况下是Nvidia图标,说明现在使用的是N卡,点击这个图标选择"Quick switch graphics…",按下确认后会自动重启桌面,此时就会切换到Intel显卡了,图标也变成了Intel。
大家可以尝试着在两个显卡之间切换,并使用下面的命令查看是否切换成功,然后测试其性能
切换到Intel卡后,查看N卡是否关闭,如果N卡末尾是(rev ff),则表示成功关闭了N卡,现在使用的是I卡,如果末尾不是ff,则说明现在使用的是N卡
~$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation .... (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation .... (rev ff)
如果上面的命令没有看到NVIDIA卡,可以直接使用下面的命令来查看N卡状态
~$ lspci | grep NVI
qyh@qyh-mas:$ lspci | grep NVI
3c:00.0 3D controller: <font color="#EF2929"><b>NVI</b></font>DIA Corporation GM108M [GeForce 940MX] (rev a2)
qyh@qyh-mas: $ lspci | grep VGA
00:02.0 <font color="#EF2929"><b>VGA</b></font> compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
使用下面的命令来测试显卡的性能,数字越大代表显卡性能越好,这条命令可以明显看到N卡的性能强于I卡
glxspheres64
CUDA官网选择适合自己系统的版本下载。
我的系统是Ubuntu18.04、64位,选择CUDA10版本如下:
在命令行中输入:
sudo sh cuda_10.0.130_410.48_linux.run
一直按Enter直至把声明读完
如果驱动是独立安装了,一定要选择不安装驱动!选择如下:
会提示:
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 10.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
这是因为我们在安装CUDA的时候没有选择安装驱动,提示需要安装驱动,忽略就行。
添加环境变量:
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存并退出
source ~/.bashrc
测试是否安装成功
上面的选项选择安装了CUDA例子,运行其中一个来测试是否安装成功:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
在官网下载安装包,需要注册登录才能下载。选择适合自己的版本
下载完成后解压并进入文件夹:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
在终端查看CUDNN版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
系统:Ubuntu 18.04
ROS:Melodic
CUDA:10.0以上
Eigen:3.3.7以上
已经将我的显卡驱动以及CUDA上传到网盘:链接: https://pan.baidu.com/s/1xgPwZVVF18eoJesABWau7g 提取码: qsg9
sudo apt update
sudo apt install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin
sudo apt install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
pip3 install -U setuptools
cd && wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
mkdir eigen && tar --strip-components=1 -xzvf 3.3.7.tar.gz -C eigen
cd eigen && mkdir build && cd build && cmake .. && make
sudo make install
cd && rm -rf 3.3.7.tar.gz && rm -rf eigen
建立workspace
mkdir -p autoware.ai/src
cd autoware.ai
wget -O autoware.ai.repos "https://gitlab.com/autowarefoundation/autoware.ai/autoware/raw/1.13.0/autoware.ai.repos?inline=false"
vcs import src < autoware.ai.repos
$ rosdep update
$ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
$ AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
如果编译ndt_gpu会出现错误:GPU support on Melodic requires Eigen version>= 3.3.7
原因:新安装的eigen和旧版的eigen在Eigen3Config.cmake文件的目录不同,而生效的目录是旧版的目录,所以需要将新安装的Eigen3Config.cmake拷贝到旧版所在的目录中。
解决方法:
在/usr目录下搜索Eigen3Config.cmake文件,/usr/lib/cmake/eigen3目录下与/usr/local/share/eigen3/cmake目录下存在这个文件,区别在于:
/usr/local/share/eigen3/cmake目录下的Eigen3Config.cmake文件第32行为:set (EIGEN3_VERSION_STRING “3.3.7”)
/usr/lib/cmake/eigen3目录下的Eigen3Config.cmake文件第42行为:set (EIGEN3_VERSION_STRING “3.3.4”)
(上面的区别请参考自己的实际文件)
所以只需要将/usr/lib/cmake/eigen3下的全部文件保存到别处后删除,然后将/usr/local/share/eigen3/cmake下的全部文件拷贝到/usr/lib/cmake/eigen3目录下即可。
重新执行上面的命令。
$ source ~/autoware.ai/install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch
这是就可以看到Autoware的界面了。
下载数据:
$ cd ~/Downloads
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
$ wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz
下载完成后,建立.autoware文件夹并解压数据到.autoware。
$ cd ~
$ mkdir .autoware
$ cd .autoware
$ cp ~/Downloads/sample_moriyama_* .
$ tar zxfv sample_moriyama_150324.tar.gz
$ tar zxfv sample_moriyama_data.tar.gz
$ cd autoware.ai
$ source install/setup.bash
$ roslaunch runtime_manager runtime_manager.launch
运行autoware
为了以后能不需要每打开一次autoware就要source一次
sudo gedit ~/.bashrc
然后往最后一行添加
当然,这里也要看看自己的autoware装在哪里,看一下setup.bash的具体位置
source ~/autoware.ai/install/setup.bash
打开autoware
roslaunch runtime_manager runtime_manager.launch