目录
实验目的:
1.什么是ROS? ROS产生、发展和壮大的原因和意义?
2.在Ubuntu16或18系统中,安装对应版本的ROS软件;熟悉ROS基本命令;运行小海龟demo例子,通过键盘控制小海龟运动。记录整个实践过程。
实验环境:Windows10,Ubuntu18.04
参考资料:学习通课程资料,百度百科,别人的博客(点个赞)
一、ROS是什么?
百度解释为:
ROS是机器人操作系统(Robot Operating System)的英文缩写。ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。ROS的原型源自斯坦福大学的STanford Artificial Intelligence Robot (STAIR) 和 Personal Robotics (PR)项目。
其实ROS就是编写机器人软件程序的一个框架。ROS能够让程序员更轻松地开发机器人程序,和C语言的功能类似,帮助程序员完成对机器人软件程序的编写。ROS包含了大量工具软件、库代码和约定协议,旨在简化跨机器人平台创建复杂、鲁,莽的机器人行为这一过程的难度与复杂度。
说得简单一点,ROS就是机器人的高级编程语言和工具。
二、为什么要学习ROS?
1.ROS的产生、发展和壮大的原因
(1)ROS的产生
在ROS诞生之前,很多学者认为,机器人研究需要一个开放式的协作框架,并且已经有不少类似的项目致力于实现这样的框架。在这些工作中,斯坦福大学在2000年年中开展了一系列相关研究项目,如斯坦福人工智能机器人(STandford AI Robot, STAIR)项目、个人机器人(Personal Robots, PR)项目等,在上述项目中,在研究具有代表性、集成式人工智能系统的过程中,创立了用于室内场景的高灵活性、动态软件系统,其可以用于机器人学研究。
2007年,柳树车库(Willow Garage)提供了大量资源,用于将斯坦福大学项目中的软件系统进行扩展与完善,同时,在无数研究人员的共同努力下,ROS的核心思想和基本软件包逐渐得到完善。
(2)ROS的发展
(3)ROS壮大的原因
ROS提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。为了提高生产效率,使用机器人是不错的选择,ROS就一步一步发展壮大。
2.为何学习ROS
因为有这些优点,ROS值得学习了解。
三、ROS安装
(1)安装前准备
设置安装源(国内镜像网站)
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 421C365BD9FF1F717815A3895523BAEEB01FA116
安装公钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
软件更新
sudo apt update
(2)安装ROS
安装ROS
sudo apt-get install ros-melodic-desktop-full
执行初始化
sudo apt install python-rosdep
sudo rosdep init
rosdep update
一般都会被墙(会出错),换成先下载再安装
(3)解决安装ROS的问题
下载这玩意儿
直接解压到home主目录下
更名为rosdistro
修改以下文件
①20-default.list
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
修改内容(里面的xxx换成自己的用户名,如jiang)
# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
注意:如果在/etc里面没有该文件,请自行创建
②sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
注释原DEFAULT_SOURCES_LIST_URL这一行
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
③rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
注释原REP3_TARGETS_URL这一行
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
④__init__.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
注释原DEFAULT_INDEX_URL这一行
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
然后rosdep update
,出现以下结果就可以了
(4)通灵之术——小海龟
打开三个新的终端
分别输入以下内容
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
小海龟出来了!!!