ros安装流程
![在这里插入图片描述](https://img-blog.csdnimg.cn/eba796b6c1a848d7876b372bd2185acc.png#pic_center)
python2.7
-
首先检查python版本
因为在python2.7下搭建因此Ctrl+Alt+t
打开终端,输入python -V
查看python版本信息,若不是python2.7请基于软链接更换默认python版本,具体操作方式如下:sudo rm /usr/bin/python sudo ln -s /usr/bin/python2.7 /usr/bin/python
-
配置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 apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
-
更新系统软件源
复制下方内容,打开/etc/apt/sources.list,粘贴进去
即先在终端中运行sudo gedit /etc/apt/sources.list
再将如下部分复制粘贴进文件中
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
保存后执行
sudo apt update
-
安装Melodic
sudo apt install ros-melodic-desktop-full
-
用户环境设置
使用==(注:方便起见建议用该代码,在后续运行roscore时无需再source)==##第一句代码相当于把source /opt/ros/melodic/setup.bash加进.bashrc中 ##第二句是运行 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
或==(注:在后续运行roscore的时候还要再运行一下)==
source /opt/ros/melodic/setup.bash
-
安装包编译依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
-
安装ROS包
sudo apt install python-rosdep
-
初始化 rosdep
-
第一步
sudo rosdep init
-
若不报错直接进行第二步
-
若报错
先检查python版本是否正确不正确请更换
更换后继续执行上述代码,如果仍报错,请新建文件:
sudo mkdir /etc/ros/rosdep/sources.list.d sudo touch 20-default.list sudo gedit 20-default.list
并将下述内容复制粘贴
# 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
重复执行
sudo rosdep init
-
-
第二步
rosdep update
-
若不报错继续10
-
若报错并显示timeout,首先明确一下出现该问题的原因是因为网络问题,以下为最有效的方法
首先修改20-default.list文件(利用https://ghproxy.com/进行资源代理)sudo gedit 20-default.list
在所有的网页前加上https://ghproxy.com/,文件加好之后如下所示:
# os-specific listings first yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx # generic yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml gbpdistro https://ghproxy.com/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
保存好之后继续执行
rosdep update
可以就继续10,若依旧报错并显示timeout,请修改如下文件:
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行 204行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行 311行
/usr/lib/python2.7/dist-packages/rosdistro/_init_.py 68行(注:这里一共是四个下划线)
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
具体修改内容为==(注:请仔细阅读#后的内容并作出相应的修改)==:
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行 204行#找文件 sudo find / -name gbpdistro_support.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py #36行网页的前面加上https://ghproxy.com/ #204行加上gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url #这里注意换行后不要使用tab键,请输入8个空格否则会出现error
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行 311行
#找文件 sudo find / -name sources_list.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py #72行网页的前面加上https://ghproxy.com/ #311行加上url="https://ghproxy.com/"+url
/usr/lib/python2.7/dist-packages/rosdistro/_init_.py 68行(注:这里一共是四个下划线)
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行#找文件 sudo find / -name __init__.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py #68行网页的前面加上https://ghproxy.com/ #找文件 sudo find / -name rep3.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py #39行网页的前面加上https://ghproxy.com/
保存好之后继续执行
rosdep update
如果出现下图即为成功
-
-
-
为保险起见再设置以下环境变量
source ~/.bashrc
-
检查是否成功
执行:roscore
Ctrl+Alt+t
打开新的终端输入:rosrun turtlesim turtlesim_node
Ctrl+Alt+t
打开新的终端输入,光标在新的terminal中利用方向键可以控制小乌龟移动:rosrun turtlesim turtle_teleop_key
pthon3.6
-
首先检查python版本
因为在python3.6下搭建因此Ctrl+Alt+t
打开终端,输入python -V
查看python版本信息,若不是python3.6请基于软链接更换默认python版本,具体操作方式如下:sudo rm /usr/bin/python sudo ln -s /usr/bin/python3.6 /usr/bin/python
-
配置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 apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
-
更新系统软件源
复制下方内容,打开/etc/apt/sources.list,粘贴进去
即先在终端中运行sudo gedit /etc/apt/sources.list
再将如下部分复制粘贴进文件中
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
保存后执行
sudo apt update
-
安装包编译依赖
sudo apt-get install python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential sudo apt install -y python3-dev build-essential sudo -H pip3 install rosdep rospkg rosinstall_generator rosinstall wstool vcstools catkin_tools catkin_pkg
-
初始化 rosdep
-
第一步
sudo rosdep init
-
若不报错直接进行第二步
-
若报错
先检查python版本是否正确不正确请更换
更换后继续执行上述代码,如果仍报错,请新建文件:
sudo mkdir /etc/ros/rosdep/sources.list.d sudo touch 20-default.list sudo gedit 20-default.list
并将下述内容复制粘贴
# 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
重复执行
sudo rosdep init
-
-
第二步
rosdep update
-
若不报错继续10
-
若报错并显示timeout,首先明确一下出现该问题的原因是因为网络问题,以下为最有效的方法
首先修改20-default.list文件(利用https://ghproxy.com/进行资源代理)sudo gedit 20-default.list
在所有的网页前加上https://ghproxy.com/,文件加好之后如下所示:
# os-specific listings first yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx # generic yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml gbpdistro https://ghproxy.com/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
保存好之后继续执行
rosdep update
可以就继续10,若依旧报错并显示timeout,请修改如下文件:
/usr/lib/python3.6/dist-packages/rosdep2/gbpdistro_support.py 36行 204行
/usr/lib/python3.6/dist-packages/rosdep2/sources_list.py 72行 311行
/usr/lib/python3.6/dist-packages/rosdistro/_init_.py 68行(注:这里一共是四个下划线)
/usr/lib/python3.6/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python3.6/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
具体修改内容为==(注:请仔细阅读#后的内容并作出相应的修改)==:
/usr/lib/python3.6/dist-packages/rosdep2/gbpdistro_support.py 36行 204行#找文件 sudo find / -name gbpdistro_support.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python3.6/dist-packages/rosdep2/gbpdistro_support.py #36行网页的前面加上https://ghproxy.com/ #204行加上gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url #这里注意换行后不要使用tab键,请输入8个空格否则会出现error
/usr/lib/python3.6/dist-packages/rosdep2/sources_list.py 72行 311行
#找文件 sudo find / -name sources_list.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python3.6/dist-packages/rosdep2/sources_list.py #72行网页的前面加上https://ghproxy.com/ #311行加上url="https://ghproxy.com/"+url
/usr/lib/python3.6/dist-packages/rosdistro/_init_.py 68行(注:这里一共是四个下划线)
/usr/lib/python3.6/dist-packages/rosdep2/rep3.py 39行#找文件 sudo find / -name __init__.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python3.6/dist-packages/rosdistro/__init__.py #68行网页的前面加上https://ghproxy.com/ #找文件 sudo find / -name rep3.py #将找到的文件修改,文件可能不同,这里根据自己的内容修改 sudo gedit /usr/lib/python3.6/dist-packages/rosdep2/rep3.py #39行网页的前面加上https://ghproxy.com/
保存好之后继续执行
rosdep update
如果出现下图即为成功
-
-
-
创建ros工作空间
mkdir ~/ros_catkin_ws cd ~/ros_catkin_ws
-
这里下载编译ros-melodic-desktop-full版本,当然也可以下载ros-comm版本
rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall wstool init -j8 src melodic-desktop-full.rosinstall
这里可能会出现error,也是网络问题,请打开创建的文件夹ros_catkin_ws中的melodic-desktop-full.rosinstall文件
利用快捷键将
Ctrl+h
将文件中的https://github.com/
全部替换成https://ghproxy.com/https://github.com/
保存后执行wstool update -j4 -t src
如果还中断请多执行几次
wstool update -j4 -t src
,大概再执行3次即可。 -
修改/src/catkin/bin下面的文件的第一行环境为python3
-
安装ros所需要的依赖库
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
-
编译并安装ros
export ROS_PYTHON_VERSION=3 sudo ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/melodic -DCMAKE_BUILD_TYPE=Release #--install-space /opt/ros/melodic 参数是指定安装到/opt/ros/melodic目录
-
设置环境变量
source /opt/ros/melodic/setup.bash
-
检查是否成功
执行:roscore
Ctrl+Alt+t
打开新的终端输入:rosrun turtlesim turtlesim_node
Ctrl+Alt+t
打开新的终端输入,光标在新的terminal中利用方向键可以控制小乌龟移动:rosrun turtlesim turtle_teleop_key
.csdnimg.cn/20190405111730182.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NoYW5wZW5naHVp,size_16,color_FFFFFF,t_70)Ctrl+Alt+t
打开新的终端输入,光标在新的terminal中利用方向键可以控制小乌龟移动:rosrun turtlesim turtle_teleop_key