赞
踩
切记第一步一定要执行,否则后面会遇上错误
ubuntu18.04 软件与更新(software & update)的位置没有在设置(setting)里面,而是在这个地方:
打开后进行勾选及更换:
如果忽略这步,Ros相关软件包安装下载时需要很长时间,更换为国内软件源后会大大加快软件下载以及update的速度。
首先,修改源文件,输入命令:
sudo gedit /etc/apt/sources.list
打开后把配置文件内容修改如下:
- # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
- deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
- deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
- deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
- deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
- deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
- deb http://mirrors.aliyun.com/ubuntu/ xenial universe
- deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
- deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
- deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
- deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
- deb http://archive.canonical.com/ubuntu xenial partner
- deb-src http://archive.canonical.com/ubuntu xenial partner
- deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
- deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
- deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
- deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
-
- deb http://mirrors.aliyun.com/ubuntu/ bionic main universe restricted multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ bionic main universe restricted multiverse #Added by software-properties
- deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main universe restricted multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main universe restricted multiverse #Added by software-properties
- deb http://security.ubuntu.com/ubuntu/ bionic-security main universe restricted multiverse
- deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main universe restricted multiverse #Added by software-properties
sudo apt-get update && sudo apt-get upgrade
输入以下命令:
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.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
输入以下命令:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
首先,更新系统软件:
sudo apt update
然后正式安装,为了避免之后出现缺少软件包的问题,在这里直接下载完整版Ros-Melodic软件包
sudo apt install ros-melodic-desktop-full
此步会耗时较长,需要耐心等待,如果一边结束后显示有某些软件包漏掉未下载或下载失败,再次运行该命令即可,可能是因为下载某些软件包时网络问题。
执行中出现错误,解决方法参考连接:
解决方法参考:
解决ros-melodic-desktop-full安装过程中未满足的依赖关系问题_杰哥亡命天涯的博客-CSDN博客_ros-melodic-desktop-full
我是执行了4次n后成功的。
运行命令:
- sudo apt-get install python-rosdep
- sudo rosdep init
安装上面的显示运行:
rosdep update
出现错误:
解决方法:
造成该问题的原因是:
raw.githubusercontent.com实际上就是github的用户数据服务器
rosdep程序下载的就是从github.com/ros/rosdistro这个repo里的yaml文件
虽然raw.githubusercontent.com服务器无法访问,但是yaml文件可以直接从git clone的repo中获得
第一步
将rosdistro clone到本地
git clone https://github.com/ros/rosdistro.git
如果卡住了,可以百度云下载
链接: https://pan.baidu.com/s/1BwAskFFs_Qd7Fp_gZX-GdQ
提取码: as59
解压到home下,我的用户名是kxn,那么这个文件夹的地址就是
/home/kxn/rosdistro
第二步,更改4个文件
终端打开刚刚下载(clone)下来的rosdistro文件夹
以下的所有yourname 都改成你们自己的用户名!!!!
文件1:
- cd /home/yourname/rosdistro/rosdep/sources.list.d/
- sudo gedit 20-default.list
改为、:
- # os-specific listings first
- yaml file:///home/yourname/rosdistro/rosdep/osx-homebrew.yaml osx
-
- # generic
- yaml file:///home/yourname/rosdistro/rosdep/base.yaml
- yaml file:///home/yourname/rosdistro/rosdep/python.yaml
- yaml file:///home/yourname/rosdistro/rosdep/ruby.yaml
- gbpdistro file:///home/yourname/rosdistro/releases/fuerte.yaml fuerte
-
- # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
文件2
- cd /usr/lib/python2.7/dist-packages/rosdep2/
- sudo gedit gbpdistro_support.py
替换为以下内容
- FUERTE_GBPDISTRO_URL = 'file:///home/yourname/rosdistro/' \
- 'releases/fuerte.yaml'
文件3
- cd /usr/lib/python2.7/dist-packages/rosdep2/
- sudo gedit rep3.py
替换为以下内容
REP3_TARGETS_URL = 'file:///home/yourname/rosdistro/releases/targets.yaml'
文件四:
- cd /usr/lib/python2.7/dist-packages/rosdistro/
- sudo gedit __init__.py
- (我的电脑里是 __init__.py,但是原作者的是init.py,大家可以自己查看)
同样的替换,如下
- DEFAULT_INDEX_URL = 'file:///home/yourname/rosdistro/index-v4.yaml'
-
最后一步,将su权限下的文件更改
执行
- sudo su //输入你的密码切换至root
- sudo mkdir -p /etc/ros/rosdep/sources.list.d
- cd /etc/ros/rosdep/sources.list.d
- sudo gedit 20-default.list
替换
- #os-specific listings first
- yaml file:///home/yourname/rosdistro/rosdep/osx-homebrew.yaml osx
- #generic
- yaml file:///home/yourname/rosdistro/rosdep/base.yaml
- yaml file:///home/yourname/rosdistro/rosdep/python.yaml
- yaml file:///home/yourname/rosdistro/rosdep/ruby.yaml
- gbpdistro file:///home/yourname/rosdistro/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
参考博文:
问题成功解决的显示为:
- echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
-
- source ~/.bashrc
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
roscore
安装成功的话显示的内容为:
首先打开一个终端,先输入roscore启用ros master,不要关闭该终端
之后再开一个terminal输入rosrun turtlesim turtlesim_node启用小乌龟,
再开一个terminal输入rosrun turtlesim turtle_teleop_key启用键盘控制。
这样就可以控制小乌龟
所以其命令的格式为:
- 格式
- rosrun 功能包 节点
通过上面的代码,可以启用turtlesim(功能包)里面的两个节点。首先先看下roscore 的terminal,之前仅是启用ros master但是没有去分析terminal里面的信息的含义。打印的信息基本上是版本信息。其中有比较重要的信息,如图,有个http,由于ROS是分布式的,因此ros master可能存在于任一主机中,因此需要标记下。ROS分布式的优点就是可以使得不同的功能模块在不同的主机上面运行,可以节省计算资源,提高效率等。
用rqt_graph查看一下计算图,可以看到有两个节点。图中两种输入方式皆可。
如果不想使用界面的方式看结点,可以输入以下的命令:
前提是将上面rqt_graph查看计算图得我终端关闭
- rosnode list
- rostopic list
对该部分的详细的分析可以看下面博文的链接:
使用小乌龟绘制一个正方形的方法
重新打开一个终端输入:
rosrun turtlesim draw_square
开两个终端
首先打开一个终端,先输入roscore启用ros master,不要关闭该终端
再开一个终端,输入:
roslaunch turtle_tf turtle_tf_demo.launch
显示下面图中的结果:
开始时会有两只turtle,一只在图中心,一只在别的位置但是会向着另一只移动,一会儿就在图中心重合了。
重新开启一个终端,输入如下的命令。启用键盘控制,可以看到图中蓝色的turtle追着绿色的turtle。
rosrun turtlesim turtle_teleop_key
重新开启一个终端, 用rosrun tf view_frames
生成一份PDF,文件里描述了两只turtle的关系。文件在home目录下。
在terminal中输入rviz
可以可视化查看二者的坐标关系。
打开后的RVIZ是这样的,需要加点东西才能看到效果。
可以看到有红色报错的地方,通过下图的改正,将fixed frame更改为world就可以将错误修复。
在修改第一个fixed frame为world之后可以看到红色的报错部分也没了。之后点击add按键,添加三个坐标系,如图设置,再加上一个tf。
之后可以打开键盘控制小海龟移动,看看RVIZ里面的坐标系变化情况和小海龟的移动情况,将小海龟移到中间栅格的世界坐标系,不难发现世界坐标系对应的是海龟界面的左下角。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。