前言
二维码清单
第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
展开