查看ubunut系统信息
cat /proc/version
uname -a
lsb_release -a
我自己的系统信息是:
由于我自己已经迁移了系统至SD卡,所以存储比较富裕:
通过对应的ubuntu版本安装对应的ROS版本,因为我的系统为18.04,所以安装ROS melodic
ubuntu系统安装完后,即可安装ROS啦
0.安装前准备
首先备份 /etc/apt/sources.list文件
sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup
更新一下系统:
sudo apt-get update
安装一些必要的支持包:若果已经有,则直接略过
sudo apt-get install -y wget
sudo apt-get install apt-transport-https -y
为了加快后续的安装进度,建议更还源,我自己使用华为源,个人感觉速度最快了。
华为源:直接执行就替换了,这个只针对ARM内核,其它的也有,需要自己找找
//18.04
sudo wget -O /etc/apt/sources.list https://repo.huaweicloud.com/repository/conf/Ubuntu-Ports-bionic.list
有些人习惯用清华源或者中科大的源。
vim编辑sources.list,注释里面所有内容,或者删掉也行
sudo vim /etc/apt/sources.list
清华镜像
注意:需要对应的CPU指令集,比如TX1应该找ubuntu-ports的镜像源,intel或amd 的找ubuntu镜像源
从对应的镜像中找到对应的ubunut版本的信息,复制到sources.list
类似网上换源的方案有很多,这里就不赘述了。
替换完源后,重新执行更新
sudo apt-get update
安装一些必要的支持包 ,有时候没有VIM
sudo apt-get install -y \
vim \
lrzsz \
curl
1.设置ROS安装源
官方默认安装源:推荐
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
或来自国内清华的安装源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
或来自国内中科大的安装源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
PS:
-
回车后,可能需要输入管理员密码
-
建议使用国内资源,安装速度更快。
2.设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3.安装
首先需要更新 apt(以前是 apt-get, 官方建议使用 apt 而非 apt-get),apt 是用于从互联网仓库搜索、安装、升级、卸载软件或操作系统的工具。
sudo apt update
等待...
3.安装
sudo apt-get install ros-melodic-desktop-full
如果出现安装失败或者连接超时,多试几次该指令
如果出现以下情况:
重新执行
sudo apt-get update
sudo apt-get upgrade
直到安装完成,快半个小时,慢就需要等很久了,看你网络
4.配置环境变量
配置环境变量,方便在任意 终端中使用 ROS。
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
5.安装其它依赖包
如果后续好需要做导航等开发,为了方便期间,建议将下面依赖包也都全部都安装了。也可以不安装,后续再安装
sudo apt-get install -y \
ros-melodic-rosserial \
ros-melodic-gmapping \
ros-melodic-navigation \
ros-melodic-roslint \
ros-melodic-rgbd-launch \
ros-melodic-map-server \
ros-melodic-costmap-2d \
ros-melodic-camera-info-manager \
ros-melodic-image-transport\
ros-melodic-teleop-twist-keyboard \
ros-melodic-robot-upstart \
ros-melodic-slam-karto \
ros-melodic-geographic-msgs \
ros-melodic-rosbridge-suite \
ros-melodic-tf2-web-republisher \
ros-melodic-web-video-server \
ros-melodic-vision-msgs \
ros-melodic-ar-track-alvar \
ros-melodic-audio-common-msgs \
qtcreator \
qt5-default
6.安装构建依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
之后就可以进行初始化rosdep:
sudo rosdep init
rosdep update
问题:目前这一步肯定过不去
在 rosdep 初始化时,多半会抛出异常。
境外资源被屏蔽。 所以要使用国内的gitee切换和改文件。
2.进入"/usr/lib/python3/dist-packages/" 查找rosdep中和raw.githubusercontent.com
相关的内容,调用命令:
#进入目录
cd /usr/lib/python2.7/dist-packages
#执行命令
find . -type f | xargs grep "raw.githubusercontent"
修改相关文件,主要有:
./rosdistro/__init__.py
./rosdep2/gbpdistro_support.py
./rosdep2/sources_list.py
./rosdep2/rep3.py
找到对应长的像的内容做替换,文件中涉及的 URL 内容,如果是:raw.githubusercontent.com/ros/rosdistro/master
都替换成步骤1中准备的gitee.com/zhao-xuzuo/rosdistro/raw/master
即可。
可以使用sudo gedit命令修改文件:
sudo vim ./rosdistro/__init__.py
DEFAULT_INDEX_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/index-v4.yaml'
sudo vim ./rosdep2/gbpdistro_support.py
FUERTE_GBPDISTRO_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/' \
'raw/master/releases/fuerte.yaml'
sudo vim ./rosdep2/sources_list.py
DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/sources.list.d/20-default.list'
sudo vim ./rosdep2/rep3.py
REP3_TARGETS_URL = 'https://gitee.com/zhao-xuzuo/rosdistro/raw/master/releases/targets.yaml'
修改完毕,再重新执行命令:
sudo rosdep init
rosdep update
就可以正常实现 rosdep 的初始化与更新了。
1.2.5 测试 ROS
ROS 内置了一些小程序,可以通过运行这些小程序以检测 ROS 环境是否可以正常运行
-
首先启动三个命令行(ctrl + alt + T)
-
命令行1键入:roscore
-
命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面)
-
命令行3键入:rosrun turtlesim turtle_teleop_key(在3中可以通过上下左右控制2中乌龟的运动)
最终结果如下所示:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)