基于ubuntu1604的ROS安装

编程入门 行业动态 更新时间:2024-10-14 08:23:50

基于ubuntu1604的<a href=https://www.elefans.com/category/jswz/34/1768665.html style=ROS安装"/>

基于ubuntu1604的ROS安装

不同版本的Ubuntu都有对应的ROS版本,不要强行安装不对应的版本,否则遇到问题会很难找到解决方法。此教程也只是基于Ubuntu1604和kinetic版本的ROS。

一、基本流程

以下命令仅记录执行顺序,不要无脑复制执行,重在理解

#基本更新
sudo apt update
sudo apt upgrade##添加ROS下载源
touch /etc/apt/sources.list.d/ros-latest.list
#阿里ros源,将以下语句复制进ros-latest.list即可
deb / xenial main#设置秘钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
#继续执行,curl未安装的先安装curl
curl -sSL '=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -安装ROS完整版,大概2G多,需要等一会儿,ros安装路径在/opt/ros/kinetic/
sudo apt install ros-kinetic-desktop-full
二、rosdep

以上过程较为容易,有不同之处百度下即可解决。下面要进行rosdep初始化,可能会有一些问题,但耐心仔细地跟着网上的教程走一般也能搞定。首先看问题:

sudo rosdep init

大概率会报以下错误:

上面的命令其实就是从指定的地址下载一个文件,如图中所示,但由于国内科学上网的问题没法下载下来,方法也很简单,将需要的文件转移到一个能访问的地址就可以了,或者更直接一点,把文件及源码直接克隆到本地。

git clone .git

如果这个也没法克隆,就先利用码云从github导过来,再克隆到本地,克隆完成后,修改原来需要下载的文件,因为那个文件作用也是指定其他文件地址,很不幸也是几个访问不到的地址,所以也要改为本地地址(或能访问到的网络地址)。

cd rosdistro/rosdep/sources.list.d/
vim 20-default.list

20-default.list这个文件在执行完rosdep init后会被放到/etc/ros/rosdep/sources.list.d/下。
可以看到其内容是关于几个yaml文件网络位置的,我们已经将整套源码包括这几个文件克隆到本地了,所以可以改成本地地址(只需要替换网络位置部分即可)。修改前:

# os-specific listings first
yaml .yaml osx# generic
yaml .yaml
yaml .yaml
yaml .yaml
gbpdistro .yaml fuerte# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

修改后(不要无脑复制,重在理解):

# os-specific listings first rosdep update
yaml file:///home/lxh/rosdistro/rosdep/osx-homebrew.yaml osx# generic
yaml file:///home/lxh/rosdistro/rosdep/base.yaml
yaml file:///home/lxh/rosdistro/rosdep/python.yaml
yaml file:///home/lxh/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/lxh/rosdistro/releases/fuerte.yaml fuerte# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

根据以上经验,只要涉及到无法访问的地址的文件都要改,大概还有一下几个文件需要修改:

/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

需要修改的地方都包含一个我们无法访问的网络地址,直接搜索这个字符串就能找到修改的地方,改后内容(对应上述文件顺序):

DEFAULT_INDEX_URL = 'file:///home/lxh/rosdistro/index-v4.yaml'
REP3_TARGETS_URL = 'file:///home/lxh/rosdistro/releases/targets.yaml'
FUERTE_GBPDISTRO_URL = 'file:///home/lxh/rosdistro/releases/fuerte.yaml'
DEFAULT_SOURCES_LIST_URL = 'file:///home/lxh/rosdistro/rosdep/sources.list.d/20-default.list'

此时再执行

sudo rosdep init
rosdep update

畅通无阻。

三、rosinstall

没什么难度了

##配置环境变量
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc##安装
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
四、测试(小海龟)

要打开窗口界面的,所以需要在ubunutu16桌面打开终端执行,需要三个终端

##相当于服务器,给终端和控制端传递消息
roscore##小海龟终端
rosrun turtlesim turtlesim_node##小海龟控制端,按下方向键控制小海龟
rosrun turtlesim turtle_teleop_key

看到图像界面并且能进行控制说明测试通过,安装完成。

博文参考1
博文参考2

更多推荐

基于ubuntu1604的ROS安装

本文发布于:2023-11-16 01:21:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611070.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ROS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!