ROS机器人编程零基础入门与实践

ROS机器人编程零基础入门与实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书以案例形式深入浅出地介绍了ROS开发相关知识和具体流程。

内容简介

本书是针对ROS(机器人操作系统)初学者的入门教程,内容聚焦于ROS的使用和开发。全书以Ubuntu操作系统安装和使用为起点,依次介绍了ROS安装、实体/仿真机器人搭建、机器视觉、SLAM建图、导航、多机器人系统等知识,最终引导读者独立完成机器人应用开发的任务。

书中的实验环境和代码基于ROS的Noetic版本。

章节目录

版权信息

前言

二维码清单

第1章 学习ROS必备的Linux知识

1.1 Linux操作系统介绍

1.1.1 Linux的诞生

1.1.2 Linux、UNIX、系统、内核和发行版

1.2 Ubuntu环境搭建

1.2.1 VMWare的安装使用

1.2.2 安装Ubuntu系统

1.3 Ubuntu桌面使用

1.3.1 Ubuntu的桌面布局

1.3.2 安装VMware Tools工具

1.4 shell和常用命令

1.4.1 shell、终端和命令

1.4.2 常用shell命令

1.5 Ubuntu安装和卸载软件

1.5.1 使用国内软件源提升下载速度

1.5.2 通过apt管理软件

1.5.3 通过应用商店安装卸载软件

1.6 vim编辑器使用

1.7 Linux文件系统

1.7.1 Linux文件系统结构

1.7.2 目录内容存放规则

1.8 root用户和权限管理

1.8.1 Linux中的权限概念

1.8.2 文件/目录权限查看和修改

1.8.3 启用root用户

1.9 嵌入式单板计算机和Linux

第2章 认识ROS

2.1 ROS是什么

2.1.1 ROS从何而来

2.1.2 为什么要使用ROS

2.2 如何安装ROS

2.3 ROS通信结构

2.3.1 节点和主节点

2.3.2 话题(Topic)

2.3.3 服务(Service)

2.3.4 动作(Action)

2.3.5 参数服务器

2.4 ROS常用shell命令

2.5 ROS常用图形工具

2.5.1 rqt工具箱

2.5.2 rviz

2.6 ROS坐标系和tf变换

2.6.1 ROS中的坐标定义

2.6.2 ROS中的tf变换

2.7 ROS工作空间

2.7.1 ROS工作空间是什么

2.7.2 创建并使用一个工作空间

第3章 ROS编程基础

3.1 ROS开发环境搭建

3.1.1 Ubuntu下安装VSCode

3.1.2 VSCode常用插件安装

3.2 新建一个ROS功能包

3.3 编写一对发布订阅节点(C++)

3.3.1 编写发布节点(C++)

3.3.2 编写订阅节点(C++)

3.4 编写一对发布订阅节点(Python)

3.4.1 编写发布节点(Python)

3.4.2 编写订阅节点(Python)

3.5 编写launch文件用于启动节点

3.5.1 通过launch文件启动C++编译的节点

3.5.2 通过launch文件启动Python节点

3.5.3 在launch文件中调用launch文件

3.6 创建新消息类型并编写节点发布消息

3.6.1 编写自定义消息

3.6.2 验证消息正常产生

3.6.3 编写节点发布自定义消息类型(C++)

3.6.4 编写节点订阅自定义消息类型(Python)

3.7 创建一个服务类型并编写服务端/客户端节点

3.7.1 定义并编写一个自定义服务

3.7.2 通过rossrv验证服务产生

3.7.3 编写自定义服务的服务端(C++)

3.7.4 编写自定义服务的服务端(Python)

3.7.5 编写自定义服务的客户端(C++)

3.7.6 编写自定义服务的客户端(Python)

3.8 tf变换编程入门

3.8.1 通过static_transform_publisher发布静态坐标变换

3.8.2 编写节点实现动态tf变换(Python)

3.8.3 编写节点实现动态tf变换(C++)

第4章 ROS机器人平台搭建

4.1 机器人系统的典型构成

4.2 几种常见的机器人底盘运动学模型

4.2.1 差速转向结构

4.2.2 阿克曼转向结构

4.2.3 全向运动结构

4.3 驱动和电池系统

4.3.1 驱动系统——电动机

4.3.2 电池系统

4.4 控制系统—底盘控制器

4.5 控制系统—车载计算机

4.5.1 车载计算机需要实现的功能

4.5.2 车载计算机的选择

4.5.3 将车载计算机和底盘控制器连接起来

4.6 机器人上常用的传感器

4.6.1 获取机器人运动状态——编码器和IMU

4.6.2 让机器人看见世界——摄像头

4.6.3 让机器人感知世界的“深浅”——立体相机

4.6.4 让机器人具备全向感知能力——激光雷达

4.7 远程连接车载计算机

4.7.1 路由模式和WiFi模式

4.7.2 SSH远程登录

4.7.3 使用远程桌面连接机器人

4.8 底盘启动和控制

4.8.1 启动底盘驱动节点

4.8.2 控制机器人运动

4.8.3 向launch文件中传入变量

4.9 机器人底盘ROS节点源码解析

4.9.1 base_control功能包文件结构

4.9.2 base_control.launch文件解读

4.9.3 base_control.py源码解读

4.9.4 bash脚本与udev规则

4.10 ROS分布式通信配置

4.10.1 分布式通信配置条件检查

4.10.2 分布式通信配置和测试验证

第5章 机器人仿真环境搭建

5.1 为什么要有机器人仿真环境

5.1.1 机器人仿真主要解决的问题

5.1.2 仿真环境中的机器人和真实机器人的联系

5.2 在Stage仿真器中创建机器人

5.2.1 Stage仿真器简介

5.2.2 创建Stage仿真器地图和机器人模型

5.2.3 控制Stage仿真器中的机器人

5.3 在Gazebo仿真器中创建机器人

5.3.1 Gazebo仿真器简介

5.3.2 Gazebo仿真器中的环境模型

5.4 机器人模型和URDF文件

5.4.1 URDF文件

5.4.2 xacro文件和Gazebo插件

5.4.3 通过Solidworks创建机器人模型

第6章 ROS中的OpenCV和机器视觉

6.1 摄像头的驱动和图像话题订阅

6.1.1 启动摄像头

6.1.2 订阅摄像头图像并显示

6.1.3 摄像头参数标定

6.2 连接ROS和OpenCV

6.2.1 ROS图像话题和OpenCV图像格式差异

6.2.2 运行OpenCV官方ROS例程

6.2.3 opencv_apps的二进制包和源码包

6.3 实例—基于OpenCV的机器人巡线

6.3.1 机器人巡线环境搭建和应用启动

6.3.2 机器人巡线代码分析

6.3.3 调整机器人的巡线颜色

第7章 激光雷达SLAM建图和自主导航

7.1 启动激光雷达和数据查看

7.1.1 启动机器人上的激光雷达

7.1.2 rviz中查看激光雷达数据

7.1.3 激光雷达使用注意事项

7.2 机器人运行激光SLAM

7.2.1 启动机器人激光SLAM应用

7.2.2 控制机器人进行建图

7.2.3 切换其他SLAM算法

7.3 机器人运行激光雷达导航和避障

7.3.1 启动激光雷达导航应用

7.3.2 环境中新增障碍物条件下的导航

7.3.3 路径规划算法的切换

7.4 机器人导航的应用

7.4.1 工厂AGV—多目标点导航

7.4.2 巡逻机器人—多点全自动巡航

7.4.3 无地图条件下导航

第8章 ROS多机器人系统

8.1 ROS多机器人系统概述

8.1.1 多机器人系统概述

8.1.2 ROS和多机器人系统

8.2 ROS多机器人系统搭建

8.2.1 ROS多机器人系统通信和时间配置

8.2.2 实体机器人多机器人系统测试

8.2.3 Gazebo仿真环境中的多机器人

8.3 多机器人系统的控制

8.3.1 独立控制系统内的任一机器人

8.3.2 同步控制系统内的所有机器人

8.4 多机器人导航

8.4.1 多机器人导航问题分析

8.4.2 运行多机器人导航

第9章 自己编写程序控制机器人

9.1 机器人控制例程开发

9.1.1 控制机器人做圆周运动

9.1.2 实现机器人前进1m-后退1m循环动作

9.1.3 在rviz中显示机器人运动轨迹

9.2 激光雷达跟随功能开发

9.2.1 激光雷达跟随功能需求分析

9.2.2 编写代码实现激光雷达跟随功能

9.3 将编写的代码传输到机器人上

参考文献

ROS机器人编程零基础入门与实践是2022年由机械工业出版社出版,作者朱有鹏。

得书感谢您对《ROS机器人编程零基础入门与实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
零基础围棋入门 电子书
本书采用“棋图+讲解”的方式,对围棋基础入门知识进行了细致、系统的讲解,包括围棋规则、气、禁入点、死棋和活棋、死亡线、双打吃、枷吃、基础对杀和胜负计算等初学围棋必会的20个重要知识点,并设置了相应的难度适宜的练习题,方便读者巩固学习。本书适合围棋初学者自学使用。
家庭摄影零基础入门与提高 电子书
本书是摄影零基础入门与提高系列的家庭摄影篇。编者通过多个场景、多种题材,详尽地分享了如何拍摄家庭影像及记录家庭日常美好瞬间的摄影技巧。本书主要内容包括身边的城市与园林之美、日常生活与旅游的记录、宠物拍摄技巧、孩子成长过程记录、拍出好看的家庭照、美食的拍摄技巧、静物的拍摄技巧等,通过介绍实用的拍摄技法,教授读者如何抓住不同的时间节点和光线等来进行拍摄,打造丰富且有纪念意义的家庭影集。本书内容系统,配
人像摄影零基础入门与提高 电子书
本书是摄影零基础入门与提高系列的人像篇。人像摄影一直以来都是摄影领域比较火热的门类,本书内容涉及人像摄影的方方面面,不仅介绍了人像摄影的设备选择、构图等基本原理,还详细讲述了不同类型的人像实拍技法。本书主要内容包括人像摄影的镜头类型与选择、人像摄影的构图原理与应用、人像摄影的美姿技巧、主题人像的实拍技法、室内自然光人像的实拍技法、不同灯光条件下的人像实拍技法等。本书内容系统,配图精美,文字通俗易懂
乐高机器人——Scratch与WeDo编程基础实战应用 电子书
本书有26章,从认识Scratch编程,认识WEDO硬件,软件,数字建模,20个模型,编程逻辑,传感器应用,WEDO与Scratch互动游戏,工信部蓝桥杯教师培训题程序讲解。WEDO搭建结构,零件列表。系统全面的讲解从硬件到软件,从模型到编程。从虚拟搭建步骤图到实际搭建,Scratch编程,WEDO科学机器人编程讲解视频。让乐高玩家更全面的了解乐高WEDO科学机器人,Scratch编程。让普通家长
摄影构图与用光零基础入门与提高 电子书
学摄影“零基础入门与提高”系列图书,摄影构图与用光从“菜鸟”到“达人”。