新書推薦:
《
骨科康复学(第2版)
》
售價:HK$
250.8
《
笔记启蒙 : 英国皇家学会与科学革命
》
售價:HK$
85.8
《
汉语副词研究论集(第六辑)
》
售價:HK$
107.8
《
干戈之影:商代的战争观念、武装者与武器装备
》
售價:HK$
74.8
《
镶嵌之美:古希腊罗马的马赛克艺术
》
售價:HK$
305.8
《
后希腊化哲学:从斯多亚学派到奥利金的发展研究
》
售價:HK$
76.8
《
别纠结啦:不被情绪牵着走的通透生活指南(“当代一休”小池龙之介治愈新作!附赠精美书签!)
》
售價:HK$
64.9
《
第二人生:找到重新定义人生的智慧
》
售價:HK$
96.8
編輯推薦:
ROS高级用户,大学研究生、教师,工业界相关领域人士
內容簡介:
本书是《ROS入门实例》的进阶篇,介绍一批ROS程序包以及一些在真实机器人上编程所必需的工具:使用SMAC和Behavior Trees这样的可执行任务管理工具,为不同的机器人创造定制的URDF模型,用ROS诊断来监控机器人的健康状况,多控制输入以及为这些控制输入设定优先级,控制多关节机械臂实现移动到指定点和抓取的动作,通过网络浏览器监控和控制机器人,以及在Garebo中运行真实机器人的模拟版。
關於作者:
R.帕特里克戈贝尔R. Patrick Goebel于1991年获得认知心理学博士学位,现担任美国斯坦佛大学网络工程师职务,对机器人的设计构建与编程要深入的研究,并撰写了多部有关ROS(机器人操作系统)的畅销书。
Juan Rojas,墨西哥籍,广东工业大学机电工程学院副教授,从事机器人领域研究超过14年;在范德堡大学(位于美国田纳西州纳什维尔)获学士、硕士及博士学位;2011-2012年在日本产业技术综合研究所(AIST)从事博士后工作,2012-2015年在中山大学任助理教授。
目錄 :
前言
关于本书的纸质版和电子版的说明
从HYDRO到现版本的演变
1. 这一卷书的范围2. 安装ROS-BY-EXAMPLE代码3. 使用ROS执行任务3.1 一个虚拟电池模拟器3.2 运行案例所需的一套常规设定3.3 ROS动作的简短回顾3.4 一个巡逻机器人的案例3.5 使用标准脚本实现的巡逻机器人3.6 脚本方法存在的问题3.7 SMACH还是行为树?3.8 SMACH:将任务作为状态机3.8.1 SMACH回顾3.8.2 使用SMACH巡逻一个正方形区域3.8.3 在ArbotiX模拟器中测试SMACH导航3.8.4 从SimpleActionState中获取结果3.8.5 SMACH迭代器3.8.6 在每个转移上执行命令3.8.7 与ROS主题和服务进行交互3.8.8 回调函数与自省3.8.9 并发任务:将电池检查加入巡逻程序中3.8.10 对进行电池检查的巡逻机器人的注解3.8.11 在状态与状态机之间传递用户数据3.8.12 子任务与分层状态机3.8.13 为房屋清洁机器人添加电池检查3.8.14 状态机的缺点3.9 行为树3.9.1 行为树与分层状态机的对比3.9.2 行为树的关键属性3.9.3 建立一棵行为树3.9.4 选择器与序列器 593.9.5 使用修饰器(元行为)对行为进行自定义3.10 为ROS 和行为树编程3.10.1 安装pi_trees 程序库3.10.2 pi_trees 程序库基本部件3.10.3 ROS-专用行为树类3.10.4 一个使用行为树的Patrol Bot例子3.10.5 一个使用行为树的居家清洁机器人3.10.6 并行任务3.10.7 添加和移除任务4. 为你的机器人创建一个URDF模型4.1 从底座和轮子开始4.1.1 robot_state_publisher和joint_state_publisher节点4.1.2 底座的URDFXacro文件4.1.3 替代base_footprint坐标系的方法4.1.4 把底座加到机器人模型中4.1.5 查看机器人的变换树(tf树)4.1.6 使用网格模型创建底座4.2 简化你的网格模型4.3 添加一个躯干4.3.1 为躯干建模4.3.2 把躯干附着到底座上4.3.3 使用网格模型为躯干建模4.3.4 把网格躯干附着到网格底座上4.4 测量、计算和调整4.5 添加一个相机4.5.1 相机的位置4.5.2 为相机建模4.5.3 在躯干和底座上添加相机4.5.4 查看有躯干和相机情况下的变换树4.5.5 使用网格模型为相机建模4.5.6 使用Asus Xtion Pro替换Kinect4.6 添加一个激光扫描仪(或其他传感器)4.6.1 为激光扫描仪建模4.6.2 添加一个激光扫描仪(或其他传感器)到一个网格底座4.6.3 配置激光节点的启动文件4.7 添加一个可摇移和倾斜的头部4.7.1 用Asus Xtion Pro取代Kinect4.7.2 对摇移和倾斜头建模4.7.3 理解旋转轴4.7.4 使用网格模型的Pi机器人云台头4.7.5 在Pi机器人上使用Asus Xtion Pro网格取代Kinect4.8 添加一条或两条机械臂4.8.1 机械臂的放置4.8.2 机械臂的建模4.8.3 为计划增加一个夹持器坐标系4.8.4 增加第二个机械臂4.8.5 使用机械臂电机和支架的网格4.9 为Box机器人增加一个可伸缩躯干4.10 为Pi机器人增加一个可伸缩躯干4.11 一个桌面的单臂Pi机器人4.12 用ArbotiX仿真器来测试你的模型4.12.1 虚拟Box机器人4.12.2 一个虚拟的Pi机器人4.13 创建你自己机器人的描述程序包4.13.1 从rbx2_description程序包中复制文件4.13.2 创建一个测试启动文件5. 控制伺服电机: 再一次5.1 安装ArbotiX程序包5.2 启动ArbotiX节点5.3 ArbotiX配置文件5.4 在模拟模式中测试ArbotiX关节控制器5.5 在真实伺服电机中测试ArbotiX关节控制器5.6 松弛所有的伺服电机5.7 启用或禁用所有的伺服电机6. 机器诊断6.1 DiagnosticStatus 信息6.2 分析器配置文件6.3 监控Dynamixel伺服电机温度6.3.1 为云台监控伺服电机6.3.2 查看在diagnostics主题上的信息6.3.3 通过监控diagnostics主题来保护伺服电机6.4 监控笔记本的电池6.5 创造属于你自己的诊断信息6.6 监控其他硬件状态7. 动态重置7.1 添加动态参数到你的节点7.1.1 创建.cfg文件7.1.2 让.cfg文件可执行7.1.3 配置CMakeLists.txt文件7.1.4 构建程序包7.2 将动态重置容量加入到电池仿真器节点中7.3 添加动态重配置客户端支持到ROS节点7.4 从命令行动态重配置8. 多话题 with mux & yocs8.1 为mux话题设置启动文件8.2 用虚拟TurtleBot机器人测试mux8.3 使用mux服务切换输入8.4 优先处理mux输入的ROS节点8.5 Yujin机器人的YOCS控制器8.5.1 添加输入源9. 3D世界中的头部追踪9.1 追踪虚构的3D目标9.2 在机器人上追踪一个点9.3 3D头部追踪节点9.3.1 真实的以及虚拟的头部追踪9.3.2 将目标映射到摄像头平面9.4 用真实的伺服电机做头部追踪9.4.1 真实伺服电机以及虚拟目标9.4.2 真实的伺服电机,真实的目标9.4.3 节点和启动文件10. 检测与跟踪 AR 标签10.1 安装与测试ar_track_alvar 包10.1.1 创建你自己的AR标签10.1.2 生成并打印AR标签10.1.3 启动摄像头驱动和ar_track_alvar节点10.1.4 测试标记检测10.1.5 理解ar_pose_marker主题10.1.6 观察在RViz中的标记10.2 访问你的程序中的 AR 标签姿态10.2.1 ar_tags_cog.py脚本10.2.2 用平移和倾斜头跟踪标签10.3 使用标记束跟踪多个标签10.4 跟随一个带有移动机器人的标签10.4.1 在TurtleBot上运行AR跟随者脚本10.5 练习:使用AR标签定位11. 用MoveIt!做机械臂导航11.1 我需要一台有机械臂的实体机器人吗?11.2 自由度11.3 关节类型11.4 关节轨迹和关节轨迹动作控制器11.5 正向和逆向机械臂运动学11.6 逆运动学的数值解法和分析解法11.7 MoveIt!的架构11.8 安装MoveIt!11.9 为你的机器人创建静态URDF模型11.10 运行MoveIt!设置助手11.10.1 加载机器人的URDF模型11.10.2 生成碰撞矩阵11.10.3 添加base_odom虚拟关节11.10.4 添加右臂规划组11.10.5 添加右夹持器规划组11.10.6 定义机器人位姿11.10.7 定义末端执行器11.10.8 定义被动关节11.10.9 生成配置文件11.11 用MoveIt!设置助手创建的配置文件11.11.1 SRDF文件(.srdf)11.11.2 fake_controllers.yaml文件11.11.3 joint_limits.yaml文件11.11.4 kinematics.yaml文件11.12 move_group节点和启动文件11.13 在演示模式下测试MoveIt!11.13.1 探索Motion Planning插件的额外功能11.13.2 重新运行设置助手11.14 用命令行测试MoveIt!11.15 确定关节配置和末端执行器位姿11.16 使用ArbotiX关节轨迹动作控制器11.16.1 在仿真环境里测试ArbotiX关节轨迹动作控制器11.16.2 用真实的电机测试ArbotiX关节轨迹控制器11.17 配置MoveIt!关节控制器11.17.1 创建contorllers.yaml文件11.17.2 创建控制器管理器启动文件11.18 MoveIt!的API11.19 正向运动学:在关节空间进行规划11.20 逆向运动学: 在笛卡尔空间内的规划11.21 把手指向或伸向一个视觉目标11.22 为规划的轨迹设置限制11.22.1 执行笛卡尔路径11.22.2 设置其他路径限制11.23 调整轨迹速度11.24 为规划添加障碍11.25 把物体与工具附在机器人上11.26 拾取和放置11.27 添加一个传感器控制器11.28 在一个真实机械臂上运行MoveIt!11.28.1 创建自己的启动文件和脚本11.28.2 运行机器人的启动文件11.28.3 真实机械臂上的正运动学11.28.4 真实机械臂上的逆运动学11.28.5 真实机械臂上的笛卡尔路径11.28.6 真实机械臂上的拾取-放置11.28.7 指向或伸向一个视觉目标12. Gazebo:模拟世界与机器人12.1 安装Gazebo12.2 硬件图形加速12.3 安装 ROS Gazebo包12.4 安装 Kobuki ROS包12.5 安装 Fetch Robot ROS包12.6 使用Gazebo GUI12.7 在Gazebo里测试Kobuki机器人12.7.1 访问模拟传感器数据12.7.2 为Kobuki添加安全控制12.7.3 运行来自第一卷书的nav_square.py脚本12.8 加载其他世界和对象12.9 在Gazebo测试Fetch机器人12.9.1 Fetch的关节轨迹12.9.2 Fetch和MoveIt!12.9.3 Fetch的取和放12.10 使用simple_grasping感知管道的现实取和放12.10.1 深度摄像头的局限性12.10.2 运行演示12.10.3 理解real_pick_and_place.py脚本12.11 运行Gazebo Headless RViz13. ROSBRIDGE:为你的机器人构建WEB图形用户界面13.1 安装rosbridge程序包13.2 安装web_video_server程序包13.3 安装一个简单的Web服务器(mini-httpd)13.4 启动mini-httpd、rosbridge和web_video_server13.5 一个简单的rosbridge HTMLJavascript图形用户界面13.6 在模拟TurtleBot中测试图形用户界面13.7 在真实的机器人中测试图形用户界面13.8 在网络中的另外一台设备上查看Web图形用户界面13.9 使用浏览器调试控制台13.10 理解简单的图形用户界面13.10.1 HTML布局:simple_gui.html13.10.2 JavaScript代码:simple_gui.js13.11 一个使用jQuery、jqWidgets和KineticJS的更高级的图形用户界面 40513.12 Rosbridge总结附录:ROS的附件及使用USB设备:创建 udev Rules13.13 将你的账户加入dialout组13.14 删除设备的序列号13.15 UDEV 规则13.16 测试一条UDEV规则13.17 在ROS配置文件中使用设备名
內容試閱 :
2013年2月,ROS的管理人员从Willow Garage迁移到了Open Source Robotic Foundation(OSRF)。OSRF的使命是支持发展、分发和接收开源软件以供机器人研究、教育和产品开发使用。OSRF主要监视的两个项目分别是ROS和Gazebo,Gazebo是一款先进的3D机器人模拟器。
新的ROS包继续定期地由个人和来自大学实验室以及机器人产业的团队发布。人们学习ROS的兴趣在继续提升,本书第一卷的受欢迎程度超出了我的预期。然而,要超越基础部分继续学习的成本曲线是很陡的,并且现有更加高级的实例也不是经常容易找到。
这本第二卷的总体目标是介绍一批ROS包以及一些在真实机器人上编程所必需的工具。这些ROS包和工具包括:使用SMACH和Behavior Trees这样的可执行任务管理工具,为不同的机器人创造定制的URDF模型,用ROS诊断来监控机器人的健康状况,多控制输入以及为这些控制输入设定优先级,控制多关节机械臂实现移动到指定点和抓取的动作,通过网络浏览器监控和控制机器人,和在Gazebo中运行真实机器人的模拟版。当我们完成了这些的时候,你将拥有为一个始终在线的机器人编程的必要工具,它将自动监控它的子系统和一系列任务的运行状况,而不需要人工的干预。
请注意本书中所写的代码都是运行在ROS的Indigo版本上的。虽然其中很多也有可能可以运行在较早版本的ROS操作系统中,但强烈建议读者在阅读这本书的时候使用ROS Indigo版本。