温馨提示
本篇文章已经收录在我最新出版的书籍《机器人SLAM导航核心技术与实战》,感兴趣的读者可以购买纸质书籍来进行更加深入和系统性的学习,购买链接如下:
摘要
ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便。我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用。本章节主要内容:
1.ROS是什么
2.ROS系统整体架构
3.在ubuntu16.04中安装ROS kinetic
4.如何编写ROS的第一个程序hello_world
5.编写简单的消息发布器和订阅器
6.编写简单的service和client
7.理解tf的原理
8.理解roslaunch在大型项目中的作用
9.熟练使用rviz
10.在实际机器人上运行ROS高级功能预览
10.在实际机器人上运行ROS高级功能预览
到这里,《ROS入门》这一章节教程就讲完了,由于是为了帮助大家入门ROS,所以教程中的所有内容都只是在我们的调试工作平台(就是PC电脑)上进行的演示。实际的ROS机器人开发中,需要有一个调试工作平台(比如PC电脑)和一个机器人平台(比如安装有ROS的树莓派3、搭载激光雷达、IMU、摄像头,且能移动的机器人底盘)。这样,我们就可以将SLAM建图算法、自主导航算法、语音交互算法、图像算法等放到机器人平台运行;再利用调试工作平台远程连接到机器人平台,就可以非常方便的远程调试SLAM建图算法、自主导航算法、语音交互算法、图像算法等算法了。所以在接下来的教程中将在实际的机器人平台(也就前面提到的我们的miiboo机器人)上展开,这里先提前让大家预览一下机miiboo器人上的ROS编程与算法开发的高级内容:
(1)miiboo机器人上的传感器ROS驱动开发
(2)基于google-cartographer的SLAM建图算法开发
(3)基于ros-navigation的机器人自主导航算法开发
(4)集成语音识别合成和自然语言处理的聊天机器人开发
(5)机器人与人工智能未来展望
后记
------SLAM+语音机器人DIY系列【目录】快速导览------
第1章:Linux基础
1.Linux简介
2.安装Linux发行版ubuntu系统
3.Linux命令行基础操作
第2章:ROS入门
1.ROS是什么
2.ROS系统整体架构
3.在ubuntu16.04中安装ROS kinetic
4.如何编写ROS的第一个程序hello_world
5.编写简单的消息发布器和订阅器
6.编写简单的service和client
7.理解tf的原理
8.理解roslaunch在大型项目中的作用
9.熟练使用rviz
10.在实际机器人上运行ROS高级功能预览
第3章:感知与大脑
1.ydlidar-x4激光雷达
2.带自校准九轴数据融合IMU惯性传感器
3.轮式里程计与运动控制
4.音响麦克风与摄像头
5.机器人大脑嵌入式主板性能对比
6.做一个能走路和对话的机器人
第4章:差分底盘设计
1.stm32主控硬件设计
2.stm32主控软件设计
3.底盘通信协议
4.底盘ROS驱动开发
5.底盘PID控制参数整定
6.底盘里程计标
第5章:树莓派3开发环境搭建
1.安装系统ubuntu_mate_16.04
2.安装ros-kinetic
3.装机后一些实用软件安装和系统设置
4.PC端与robot端ROS网络通信
5.Android手机端与robot端ROS网络通信
6.树莓派USB与tty串口号绑定
7.开机自启动ROS节点
第6章:SLAM建图与自主避障导航
1.在机器人上使用传感器
2.google-cartographer机器人SLAM建图
3.ros-navigation机器人自主避障导航
4.多目标点导航及任务调度
5.机器人巡航与现场监控
第7章:语音交互与自然语言处理
1.语音交互相关技术
2.机器人语音交互实现
3.自然语言处理云计算引擎
第8章:高阶拓展
1.miiboo机器人安卓手机APP开发
2.centos7下部署Django(nginx+uwsgi+django+python3)
参考文献
[1] 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.
序
前言
编程基础篇
第1章 ROS入门必备知识
第2章 C++编程范式
第3章 OpenCV图像处理
硬件基础篇
第4章 机器人传感器
第5章 机器人主机
5.2.1 安装Ubuntu MATE 18.04 120
第6章 机器人底盘
SLAM篇
第7章 SLAM中的数学基础
第8章 激光SLAM系统
第9章 视觉SLAM系统
第10章 其他SLAM系统
自主导航篇
第11章 自主导航中的数学基础
第12章 典型自主导航系统
12.1 ros-navigation导航系统 470
第13章 机器人SLAM导航综合实战
附录A Linux与SLAM性能优化的探讨
附录B 习题