ROS机器人程序设计(原书第2版)第1章 ROS Hydro系统入门

简介:

第1章

ROS Hydro系统入门

欢迎开始阅读本书第1章。本章将介绍如何安装ROS系统,它是一种新的标准化机器人系统软件框架。本书是基于ROS Fuerte的《ROS机器人程序设计》一书的升级版。通过ROS,你可以使用大量的示例代码和开源程序轻松地完成机器人编程和控制。同时,你还能够理解如何使用各种传感器与执行器,并为你的机器人增加新的功能,如自动导航和视觉感知等。得益于开源理念,以及持续开发最先进算法并不断提供新功能的开源社区,ROS不断进步完善。

通过本书,你将学习到如下内容:

在特定版本的Ubuntu系统下安装ROS Hydro框架

ROS的基本操作

调试以及数据可视化

在ROS框架下进行机器人编程

连接传感器、执行器和硬件设备以创建机器人

创造三维(3D)模型并进行仿真

使用导航功能包集使机器人实现自主行驶

本章主要介绍怎样在Ubuntu系统中安装完整版本的ROS Hydro。Ubuntu不但能够全面支持ROS,而且是ROS官方推荐的操作系统。当然,你也可以在其他的操作系统中安装ROS。这本书使用的Ubuntu版本是12.04(Precise Pangolin),你可以在http://releases.ubuntu.com/12.04/免费下载安装。

在开始安装之前,我们首先了解一下ROS的历史。

Robot Operating System(ROS)是一个得到广泛使用的机器人系统的软件框架。ROS的基本原理是无需改动就能够在不同的机器人上复用代码。基于这些,我们就可以在不同的机器人上分享和复用已经实现的功能,而不需要做太多的工作,避免了重复劳动。

2007年,斯坦福大学人工智能实验室(Stanford Artificial Intelligence Laboratory,SAIL)在斯坦福AI机器人项目(Stanford AI Robot project)的支持下开发了ROS。2008年之后,其主要在Willow Garage公司支持下与超过20多家研究机构联合研发ROS。

现在已经有很多家研究机构通过增加ROS支持的硬件或开放软件源代码的方式加入ROS系统的开发中。同样,也有很多家公司将其产品逐步进行软件迁移并在ROS系统中应用。一些完全支持ROS系统的平台如下图所示。这些平台往往会开放大量的代码、示例和仿真环境,以便开发人员轻松地开展工作。前三个发布代码的机器人例子是人形机器人。最后一个是由拉斯帕尔马斯大学开发的水下机器人,代码尚未公布。你可以在http://wiki.ros.org/Robots找到很多这样的例子。

 

ROS系统已经支持这些机器人中的传感器和执行器,同时每天ROS软件框架支持的设备也在增加。此外,得益于ROS和开放硬件,大量公司正在创建更便宜和更强大的传感器。Arduino开发板是一个很好的例子,使用廉价的电路板可以添加很多类型的传感器如编码器、光和温度传感器等。

ROS提供了一个标准的操作系统环境,包括硬件抽象、底层设备控制、通用功能的实现、进程间消息转发和功能包管理等。

它基于一个集中式拓扑的图结构,在节点中接收许多传感器、控制、状态、规划、执行器数据进行计算处理,并发送。它的各种库与功能包都是面向类UNIX系统的。

*-ros-pkg作为一种社区化的软件库使开发高级库更为容易。其中,很多功能是和ROS系统绑定的,如导航库和rviz可视化界面都基于这个库。其中的一些库包含很多强大的工具,可以帮助我们方便使用ROS并了解机器人当前的实时状态。其中,可视化工具、仿真环境和调试工具是最重要的几个。在下图中你可以看到两个工具,rviz和rqt_plot。中间是rqt_plot的截图,你可以看到由传感器数据绘制的曲线。另外两个截图是rviz;截图中可以看到真实机器人的三维显示。

 

ROS是一个使用BSD(Berkeley Software Distribution)开源协议的开源软件。无论是商业应用还是科学研究它都是免费的。*-ros-pkg包受到了多个开源协议的限制。

用ROS你可以做更多工作。你可以使用库中的代码,改进后再次共享。这种观念就是开源软件的本质。

ROS已经发布了多个版本,最新的版本是Indigo。在本书中,我们使用的版本是Hydro,因为这个版本更加稳定,而Indigo是实验版本,可能存在错误。

下面会介绍如何安装Hydro版本的ROS。即使在本书中我们使用Hydro,但是在实际工作中,你仍然可能需要安装老版本以便运行一些代码。

如前所述,本书中所使用的操作系统是Ubuntu,全书的内容及教程将以该系统为基础。如果你习惯使用其他操作系统又想完成本书的学习,最好的选择就是安装一个带有Ubuntu的虚拟机。因此,本章末尾会介绍虚拟机的安装方法。

当然,如果你想在其他系统中安装ROS,你可以根据链接http://wiki.ros.org/hydro/Installation中的指导来完成。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
8月前
|
机器人 区块链
区块链数字货币量化交易系统机器人开发合约源码定制详情
event BuyOrderPlaced(address user, uint256 price, uint256 amount); event SellOrderPlaced(address user, uint256 price, uint256 amount);
|
3月前
|
机器人 PHP
QQ云端机器人登录系统php源码
QQ云端机器人登录系统php源码
173 4
|
1月前
|
网络协议 机器人 中间件
单片机和FreeRTOS上跑机器人ROS的应用
单片机和FreeRTOS上跑机器人ROS的应用
51 0
|
6月前
|
算法 机器人
秒合约期权机器人开发/秒合约系统/币币合约/技术开发应用
秒合约期权机器人开发/秒合约系统/币币合约/技术开发应用
|
2月前
|
传感器 监控 安全
植保机器人,尤其是无人机喷雾系统
植保机器人,尤其是无人机喷雾系统
22 1
|
3月前
|
传感器 机器人 C++
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
181 0
|
8月前
|
存储 数据采集 算法
巡检机器人之仪表识别系统
巡检机器人—— 数字表计识别、指针表计识别。
131 0
巡检机器人之仪表识别系统
|
4月前
|
机器人 TensorFlow 算法框架/工具
量化交易机器人系统开发详细策略/需求步骤/逻辑方案/源码设计
auto nhwc_data = nhwc_Tensor->host<float>(); auto nhwc_size = nhwc_Tensor->size(); ::memcpy(nhwc_data, image.data, nhwc_size);
|
4月前
|
机器学习/深度学习 传感器 前端开发
重磅发布!伟景智能推出人形机器人专用立体视觉系统ViEye
伟景智能凭借在工业级立体相机和人形机器人领域多年的技术积累和产品研发,推出了专为人形机器人设计的专业视觉系统——ViEye。搭载这一视觉系统后,伟景智能的人形机器人操作系统实现了“眼到手到”的全面覆盖,完美结合了平面视觉、立体视觉和机械手控制。该系统旨在为人形机器人提供精准且全面的视觉信息,解决了机器人“脑、眼、手”协同融合的难题,为机器人赋予了高精度的感知能力,使其能够更有效地应用于各种场景。这一创新将有助于提升人形机器人在实际应用中的性能和效果。
|
5月前
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
297 0

热门文章

最新文章

推荐镜像

更多