开源机器人操作系统
《开源机器人操作系统:ROS》内容共分九章,覆盖了ROS基本编程的大部分内容。利用现有的因特网上最新资料为蓝本,深入浅出地介绍了ROS的总体架构和涉及的主要领域,全面地对ROS安装及使用过程中常见问题给出了解答。同时《开源机器人操作系统:ROS》附光盘一张,内容包括书中的部分例子源代码和Diamondback及Electric版本安装后在本地硬盘上的全部程序,以便于读者对照自己的安装版本进行调试。开源机器人操作系统一ROS张建伟张立伟胡颖张俊编著衅学出版社北京内容简介目前,ROs( robot operating system)逐步成为机器人研发领域的通用性软件平台。本书是国内第一本全面介绍ROS的中文版图书。ROS是开源的用于机器人的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建立、编写和运行多机整合的程序。本书附光盘一张,内容包括书中的部分例子源代码和 Diamondback及Electric版本安装后在本地硬盘上的全部程序,以便于读者对照自己的安装版本进行调试。本书可作为机器人研究者以及机器人爱好者应用ROs构建机器人软件系统的参考手册。图书在版编目(cIP)数据开源机器人操作系统:ROS/张建伟等编著.一北京:科学出版社,2012ISBN978-7-03-035434-1L.①开…Ⅱ.①张…Ⅲ.①机器人-操作系统Ⅳ.①TP242中国版本图书馆CIP数据核字(2012)第201958号责任编辑:刘宝莉/责任杈对:宋玲玲责任印制:张倩/封面设计:陈敬学出版社出版北京东黄城根北街16号邮政编码:100717http://www.sciencep.com源海印刷有贵锤岔司印刷科学出版社发行各地新华书店经销2012年9月第版开本:B5(720×10002012年9月第一次印刷印张:1934彩插:4字数:417000定价:88.00元(含光盘)(如有印装质量问题,我社负责调换)前言近年来,机器人研发领域对代码复用和模块化的需求越来越强烈,而已有的开源机器人系统又不能很好地适应该需求。2010年 Willow Garage公司发布了开源机器人操作系统ROS( robot operating system),由于其具有点对点设计、不依赖编程语言、开源等优点,很快在机器人研究领域展开了学习和使用ROS的热潮。笔者所在的中国科学院深圳先进技术研究院认知技术研究中心致力于服务机器人的研发,在其面世伊始就开始使用ROS,日前已经近两年。本书是根据研究组人员在学习和使用ROS过程中遇到的问题和经验编写而成,相信对广大同行和机器人爱好者会有所裨益。ROS是开源机器人操作系统,遵循BSD协议,对用户和商业应用免费。本书是国内第一本全面介绍ROS的中文版图书。全书内容共分九章,覆盖了ROS基本编程的大部分内容。利用现有的因特网上最新资料为蓝本,深入浅出地介绍了ROS的总体架构和涉及的主要领域,全面地对ROS安装及使用过程中常见问题给出了解答。书中第一、二章由张建伟执笔;第三、七、八章由张立伟执笔;第三、五章由胡颖执笔;第六章由张俊、胡颖执笔;第九章由张俊执笔。最后由张建伟统稿。其中,刘会芬和陈楠提供了部分实验演示代码。全书结构清晰、合理,语言浅显易懂。对厂大从事机器人、人工智能、计算机视觉等相关领域的科研人员和研究生及高年级本科生等,不失为一本重要的自学、教学参考书。本书相关研究获得中国科学院知识创新工程重要方向项目“下一代自主机器人的关键技术—基于经验的记忆学习”(项日编号: KGCXZ-YW128)以及国家自然科学基金项目(项日编号:61105130、61105132、61175124、61210013)的资助。由于作者水平有限,书中难免存在不足之处,恳请广大读者和同行批评指正。术语列表英文术语中文术语ROS机器人操作系统Package功能包Stack功能包集message消思Service服务Topic题Node节点Master节点管理器Parameter Server参数服务器Bag消息记录包Publisher/Subscriber主题发布者/订阅者Launch启动Talker/Listener消息发布者/接收者Filesystem Level文件系统级Computation Graph Level计算图级Community Level社区级Package Resource Name功能包源名称Graph Resource Name计算图源名称Client Library客户端库Distribution发行版Repositories软件版本仓库Namespace命名空间Base name基本名称Global name全局名称Private Name私有名称Relative Name相对名称NodeHandle节点句柄Timer计时器Transform变换目录术语列表第一章ROS简介1.1ROS简介12ROS安装…………∴13ROS支持的机器人1.4ROs网上资源…第二章ROs总体框架及基本命令21ROS总体框架11466777921.1文件系统级…21.2计算图级………………………………21.3社区级…11214更高层概念…21.5名称…1222ROS基本命令…152.21ROS文件系统命令:::a::::::::..::a::::::::..:日::::::::::::2.22ROs核心命令∴2623工具352.3.13D可视化工具:rviz…………………35232传感器数据记录与可视化工具: rosbag和 rxbag………………45233画图工具: rxplot……………47234系统可视化工具: ograph……………………………:492.3.5 rxconsole………,……………4923.6tf命令5124例子……52241创建ROS消息和服务..·..:·...·,……….52VI*开源机器人操作系统一BOS242记录和回放数据……………………………54243手工创建ROS功能包244大项目上运行 roslaunch24.5在多台机器上运行ROS系统6624.6定义客户消息第三章RoS客户端库………………………………703.1概述……………703.2 roscpp客户端库713.21简单的主题发布者和主题订阅者…………72322简单的服务器端和客户端…323 roscpp中参数的使用…81324从节点句柄存取私有名称83325用类方法订阅和回调服务………………………843.26计时器…………………………85327带动态可重配置及参数服务器的主题发布者/订阅者节点(C++)……87328带动态可重配置及参数服务器的主题发布者/订阅者节点( Python)…95329组合C++/ Python主题发布者/订阅者节点∴…10133 raspy客户端库…101331简单的主题发布者/订阅者…101332简单的服务端和客户端………105333 raspy中参数的使用108334 raspy中 numpy的使用…∴10933.5 raspy运行日志113336 ROS Python Makefile文件i_tt·:整·,·,申·面潘115337设置 PYTHONPATH…………………………116338发布消息·11634 rosis客户端库∴……11735实验阶段的客户端库…1173.5.1 rosava…1173.5.2 roslua.…117目录VIl第四章 OpenCV…1194.1 Inage_common功能包集119411 image-transport功能包……119412 camera_calibration-parsers功能包:.·“··:::·:::::··::::,12441.3 camera__manager功能包………12641.4 polled-camera功能包12742 image-pipeline功能包集……∴…….1274.3 vision_opencv功能包集·∴∴12843.1 opencv2…………128432 cv_bridge…….…,·12843.3image-geometry…∵…∷.13944投影tf坐标系到图像(C++)14045演示例子∴14545.1使用颜色追踪物体·…,,145452识别物体∴,……148第五章SLAM和导航∴………………15051使用t配置机器人∴…………………15052通过ROS发布里程计信息……15453通过ROS发布传感器数据流.,……15854SLAM……,∴…163541SLAM简介,…………………163542 slam-gmapping功能包,………….163543使用记录的数据建立地图…………………………167544模拟器中建立地图∴…………168545模拟器中使用客户定制地图…………………………17055配置和使用导航功能包集,…172551导航功能包集基本操作曲量吾,·丰····,··,····172552在机器人上设置和配置导航功能包集…………1735.53rviz与导航功能包集配合使用……………176554发送日标到导航功能包集………………………178VIll.开源机器人操作系统—ROS第六章抓取操作……1826.1机器人手臂的运动规划1826.1.1安装和配置…18261.2编译手臂导航功能包集………………………………………………1826.1.3启动模拟器和仿真环境…∵………………1836.14启动相关节点…………………………………1836.15控制于臂运动……1856.2运动规划的环境表示2036.21基于臼滤波数据构建碰撞地图…………………2036.2.2检测关节轨迹碰撞∴………2086.23给定机器人状态下的碰撞检测∴……………212624添加已知点到运动规划环境………………2196.25添加物体到机器人本体·22463用于PR2机器人手臂的运动学.23063.1从PR2运动学开始230632从运动学节点获取运动学求解器信息……………………231633PR2手臂运动学正解233634PR2手臂运动学逆解…237635PR2手臂无碰撞运动学逆解∴…….………24064用于PR2机器人手臂的安全轨迹控制…………2456.5使用轨迹滤波节点进行轨迹滤波∴…………………247651生成无碰撞三次样条轨迹……………………………………·247652使用轨迹滤波服务器对关节轨迹进行滤波……………………2486.53学习如何创建自己的轨迹滤波……25366机器人状态和轨迹可视化…∴,,,,,,,::256第七章 Kinect…………,…2607.1 Kinect简介2607.2安装驱动…2617.2. Ubuntu系统上安装 Kinect…………………………………2617.22某于源的安装∴261
用户评论