机器人操作系统(ROS)入门&基本命令
任务摘要
1、什么是ROS?
2、ROS产生、发展和壮大的原因和意义?
3、实践练习:
在Ubuntu16或18系统中,安装对应版本的ROS软件;熟悉ROS基本命令;运行小海龟demo例子,通过键盘控制小海龟运动。记录整个实验过程。
一、走近ROS
1.ROS简介
ROS(Robot Operating System)是一个机器人软件平台,它能为异质计算机集群.提供类似操作系统的功能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人.STAIR而建立的交换庭(switchyard)项目。到2008年,主要由威楼加拉吉继续该项目的研发。
2.基本内容
ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。目前ROS主要支持Ubuntu。
ROS可以分成两层,低层是上面描述的操作系统层,高层则是广大用户群贡献的实现不同功能的各种软件包,例如定位绘图,行动规划,感知,模拟等等。
ROS(低层)使用BSD许可证,所有是开源软件,并能免费用于研究和商业用途。而高层的用户提供的包则可以使用很多种不同的许可证。
3.ROS解释
1.通道:ROS提供了一种发布-订阅式的通信框架用以简单、快速地构建分布式计算系。
2. 工具:ROS提供了大量的工具组合用以配置、启动、自检、调试、可视化、登录、测试、终止分布式计算系统。
3. 强大的库:ROS提供了广泛的库文件实现以机动性、操作控制、感知为主的机器人功能。
4. 生态系统:ROS的支持与发展依托着一个强大的社区。ros.org尤其关注兼容性和支持文档,提供了一套“一站式”的方案使得用户得以搜索并学习来自全球开发者数以千计的ROS程序包。
二、ROS产生、发展和壮大的原因和意义
当今语境下的机器人技术是一门跨学科、跨领域、需要许多先验知识的庞杂的学问
。机器人以及其他的一些智能系统,被市场以及人们的直觉赋予了许多智能化的需求。们开始呼唤具备真正智能的机器人的出现,特别子2006年以来,科学技术在人工智能、计算机算力、电源技术、复杂的规划/决策算法取得了重大突破,人们对机器人的智能化有了更多的合理化诉求
。
正如ABIResearch的调研报告里所提到的,机器人不仅要实现基本的数据搜集与移动能力,还需要在对数据的有效分析、感知世界、实时通讯、智能思考并决策、协助或主导完成实际有效的工作等方面具备必要的技能。而为了达到这样的目标,那么一些新兴的技术,诸如无线通信、大数据、云计算/边缘计算、物联网以及无处不在的人工智能,将无一例外地被划归机器人技术的应用战场。
面对涵盖如此庞杂技术的一个领域,需要解决的难题有很多,而首当其冲的,是需要有一个能够理顺这些关系的框架来定义并约束各个不同的功能模块,确保各个模块各司其职又能高效合作。
由此,ROS(机器人操作系统)应运而生,填补了这一块的空白,并逐渐成为事实上的行业标准。
三、Ubuntu18.04上安装ROS
1、Ubuntu不同版本对应ROS不同版本
操作系统为Ubuntu 18.04 LTS 64bit
应采用ROS版本为ROS Melodic
。
2、配置Ubuntu软件库
配置Ubuntu存储库以允许"main", “restricted” ,“universe,” and “multiverse”
,如图所示
3、安装过程详解
设置安装源
为避免出现无法定位软件包的错误,这里ROS提供了国内的安装源
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'
设置密钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
若密钥服务器
hkp://ha.pool.sks-keyservers.com:80
无法添加成功,则可以尝试hkp://pgp.mit.edu:80
或者hkp://keyserver.ubuntu.net:80
更新Ubuntu 18.04 LTS的最新可用软件包列表
sudo apt update
在此步骤中出现报错
解决方法,终端执行如下命令
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
成功解决
开始安装ROS Melodic
执行命令
sudo apt-get install ros-melodic-desktop-full
等待安装,如果觉得网速慢可以选择更换镜像源。
初始化rosdep
sudo rosdep init
出现上图所示问题,解决方法
执行下面指令
sudo apt install python-rosdep
出现报错
解决方法
执行指令
cd /etc
sudo gedit hosts
在文件末尾添加
151.101.84.133 raw.githubusercontent.com
保存退出即可。重新执行命令
解决方案二
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.
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get install ca-certificates -q
sudo c_rehash /etc/ssl/certs
如果执行了上诉三个命令依旧不行
先执行以下命令再重新执行上述命令
sudo apt-get update
对于不同电脑可能有不同的解决方案,网上有很多方法可以自行百度,慢慢试。
执行rosdep update更新
rosdep update
ERROR: error loading sources list:
(‘The read operation timed out’,)
如果出现上面错误就是网络原因,重复多次执行指令即可。
如果多次执行指令,还是无法正常运行,可以试试下列解决方案(本人就是多次不行,换网也没有用)
终端执行以下命令
sudo vim /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo apt install vim
sudo vim /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
指令:i,将15改成115
指令:Esc,退出编辑模式
指令::wq,保存,退出
改后再执行rosdep update指令,就可以了
添加ros环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
第一次启动ROS时,需要进行环境变量配置,执行如下命令
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
四、ROS基本命令及demo实例(小海龟)
1.ROS常用命令
ROS shell 命令
roscd:移动ROS目录
rosls:ROS文件列表
rosed:ROS编辑命令
ROS执行命令
roscore:运行roscore
rosrun:运行ROS节点
roslaunch:运行多个ROS节点
rosclean:检查及删除ROS日志
ROS信息命令
rosnode:ROS节点
rostopic: ROS话题
rosservice:ROS服务
rosparam:ROS参数
rosmsg: ROS消息信息
rossrv:ROS服务信息
rosbag:ROS日志信息
ROS catkin命令
ROS功能包命令
2.小海龟demo实例
第一个终端命令
roscore
打开第二个终端,也可
以利用 8Ctrl+Shift+T 快捷键打开一个新的终端,运行如下命令,这时你会看见一只静止的小海龟
rosrun turtlesim turtlesim_node
如果希望小海龟能够移动,打开第三个终端,利用Ctrl+Shift+T快捷键再打开一个新的终端,启动turtlesim的键盘控制节点turtle_teleop_key
,运行如下命令
rosrun turtlesim turtle_teleop_key
小海龟移动终端按钮说明
上下左右 | 移动情况 |
---|---|
上 | 前进 |
下 | 后退 |
左 | 原地左转 |
右 | 原地右转 |
在当前终端下,按住方向键即可控制小海龟移动
小海龟移动图像展示:
随便移动的,感觉挺好玩的,大家可以试试。
五、总结与参考资料
1、总结
随着技术的发展及人们需求的提高,机器人集成了越来越多的功能、传感器,对用户来说这越来越方便,人们对智能机器人的需求越来越迫切。ROS系统入门实践,其中也遇到了很多的问题,卡的比较久,通过百度都可以解决。在未来的时代,机器人将应用于愈加广泛的领域。
2、参考资料
ROS:发展中的机器人操作系统.
ROS机器人操作系统的发展历史与特点介绍.
Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤).
ROS- 解决 rosdep update 出现的错误.