
·前言·
背景
“仙侠”剧中的御剑飞行,剑就像拥有灵魂一样,能自行飞到任何地方。也许,我们很难造出一把神剑,但是我们却可以造出一辆“指哪去哪”的自主移动机器人。本书更像一本“失传已久”的武功秘籍,带你系统学习如何搭建轮式自主移动机器人(文中简称轮式机器人)。
10年前我还是大学生,为了参加全国电子专业人才设计与技能大赛,白天在图书馆一笔一画地抄代码(为了增强理解,将代码抄到本上),晚上到实验室做验证实验,尽管那时候还年轻,精力旺盛,但还是累坏了,尤其是搜索不到感兴趣的智能车制作系列,那段时期过后,感觉像是灵魂出了窍,轮胎放了炮,很久没有精气神。毕业后,在电子、计算机相关行业工作了近10年,通过不断地学习新知识,借助博客和机器人爱好者分享互动等,我对机器人的理解有了一个质的变化,机器人不再是简单的机器人,而是具有自主意识的机器人。后来,众多的网友咨询和鼓励我将博客上的这些技术文章整理成书,经过一年的辛苦整理,终于有了您面前的这本书。
本书内容
本书囊括了约20种算法,仿真实验23次,真车实验上百次,可展示的实验数据和配图几百张,是真正意义上的以实验数据为导向、以调试分析为原则的作品。
本书分为三部分,第1~3章为基础知识部分,介绍机器人的基础知识,包括轮式机器人的底盘结构、驱动结构、开发软件、通信协议等。第4~9章为技术提升部分,涉及内容较多,每章内容都是由浅入深、循序渐进,机器人涉及的核心和关键知识皆有提及,包括建图、路径规划、导航避障等。该部分反复强调 “避障需有图”的原则,讲解常见的算法并编写代码进行验证。本部分的特色在于将云平台融入机器人系统,实现异地远程控制、地图路径规划等。第10~12章为实战案例部分,介绍云平台的相关使用说明、室内建图机器人、ROS的搭建和节点开发,是对前9章知识的总结和验证。
案例
本书涉及的开发语言有C/C++、Python、JavaScript、HTML、Shell等。书中案例主要使用C/C++和Python编写,其中,使用C/C++编写的程序全部在Ubuntu 18.04版和树莓派Raspbian 系统中编译通过,Python程序支持Python 2.7和Python 3.x,书中的原理图和代码可以扫描本书的“案例源代码”二维码下载。

致谢
感谢河北科技师范学院包长春教授对我参赛时的帮助以及写书时的支持!
感谢北京理工大学赐予我“德以明理、学以精工”的治学理念!
感谢我的父母将我养育成人,感谢我的兄长、亲戚、朋友们的支持。
感谢我的爱人杨雪娜在怀孕至哺乳期对娃儿的悉心照料,我才能静心写作,顺利交稿,感谢!
感谢清华大学出版社这个大舞台能让我发光!
感谢网友和同事们的支持!感谢开源作者!
最后,感谢博客上的所有读者,是你们的期待让我动力十足!
本书难免有疏漏和不足之处,恳请各位同行和读者批评指正。
特别感谢奥松机器人于欣龙、吴朝霞、安丽丽、刘金雷、Eric、王航、林瑞和、李杉、李晓波、贾明华、王兴兴、吴功富、 田松召、李歌、王淑芹提出的针对性的建议,以及对部分源代码的审核等帮助。
个人寄托
在编写此书的过程中,查阅了大量的文献,比较有感触的是大部分的知名算法是由国外学者发明,并以他们的名字或者规则命名,希望今后有更多的知名算法能来自国内的学者,并且以他们的姓名或者定义的规则命名,让国内的算法百花争艳!
愿读者在本书的帮助下快速实现自己的自主移动机器人。
愿智能机器人和无人驾驶技术进一步发展,实现更大价值!共勉!
交流
由于编者水平有限,书中难免存在疏漏之处,希望读者指出书中不足,共同进步。
李德
2022年 3月于北京