- ROS 2機器人開發:從入門到實踐
- 桑欣
- 2109字
- 2024-10-14 16:11:31
Preface 前言
為什么寫這本書
大家好,我是本書的作者小魚。我在學生時代就開始接觸并使用ROS,隨后參加工作,在工作中又進一步使用ROS進行機器人開發。2020年一個偶然的機會,公司安排我來調查ROS的缺陷,以及替代方案,就在那時我被ROS 2的強大功能所吸引,為其提供的機器人開發工具而興奮,于是開始學習ROS 2。
在后續的學習和使用過程中,我深感ROS 2的中文資料少之又少,于是在2021年7月發起了魚香ROS社區,開始分享機器人和ROS 2的相關知識。在學習ROS 2的過程中,我深知動手實踐的重要性,就發布了“動手學ROS 2”一系列在線教程,希望讀者可以通過動手實踐來掌握ROS 2,同年又與睿慕課合作發布了相應的視頻教程。
隨著學習“動手學ROS 2”課程的小伙伴越來越多,我收到了大量的反饋,通過反饋深知初學者入門ROS 2和機器人開發的困難,以及“動手學ROS 2”系列課程的不足之處。恰逢此時,編輯找到我,我們一拍即合,打算從ROS 2入門角度出發寫一本書,帶領讀者通過學習ROS 2來入門機器人系統開發。所以在本書中,不僅有ROS 2的基礎知識、機器人建模和仿真知識、還有從零實現一個真實機器人系統的開發教程。
本書主要內容
本書的內容按照知識結構可以分為五個部分。
第一部分對應第1~5章,主要講解ROS 2的基礎軟件庫和工具集的使用,通過該部分的學習,可以讓你快速掌握ROS 2的核心部分。
第二部分對應第6章,主要結合ROS 2常用的建模工具,從零創建一個移動機器人模型,然后在仿真工具中完成模型仿真,同時結合仿真機器人講解ros2_control開源框架。
第三部分對應第7章和第8章,主要介紹基于ROS 2的導航框架Navigation 2,同時在第6章仿真移動機器人的基礎上實現導航,最后在第8章介紹如何在Navigation 2中部署測試自定義的規劃算法和控制算法。
第四部分對應第9章,主要講解如何搭建一個實體機器人,著重介紹移動機器人控制系統實現和使用micro-ROS接入ROS 2,最后介紹實體機器人的建圖和導航實現方法。
第五部分對應第10章,主要介紹ROS 2進階相關知識,包括服務質量QoS、執行器和回調組、生命周期節點、消息過濾器和ROS 2中間件DDS的進階使用。
本書的目標讀者
? 對于非機器人行業中對機器人感興趣并且想要入門機器人開發的讀者,本書穿插講解了學習ROS 2所需的Linux和編程的基礎知識,讓基礎薄弱的讀者也可以輕松學習。
? 對于機器人從業者,不僅可以從本書中學習到ROS 2的基礎知識,還可以通過本書深入學習ROS 2,并將其應用到實際工程中。
? 對于機器人相關專業的高校師生,本書中每一章都涉及大量的動手實踐環節,可以把本書當作機器人操作系統的學習實驗教材。
? 對于那些對機器人感興趣的讀者,可以通過本書學習如何制作屬于自己的仿真和實體移動機器人,并在此基礎上實現自主移動導航。
本書特色
不同于其他書籍,本書更加以讀者的需求為導向。在編寫過程中,我根據原在線教程“動手學ROS 2”的讀者反饋,對本書內容進行了大量的打磨。針對很多ROS 2初學者容易受阻的編程,本書在前面幾章穿插介紹了Linux和Git等知識;針對很多小伙伴反饋學完ROS 2不知道怎么用,本書加入了大量實踐環節,例如,結合ROS 2實現語音合成、人臉識別和界面繪制等,讓讀者可以真正學以致用;針對需要仿真的小伙伴,本書著重介紹了ROS 2仿真建模的過程,同時結合仿真介紹了ros2_control的使用;針對對實體機器人硬件開發感興趣的小伙伴,本書引入了micro-ROS框架,從零介紹了實體機器人的軟件開發流程;針對需要深入使用ROS 2的小伙伴,本書在最后一章深入探討了ROS 2進階相關知識,讓你可以輕松地在實際項目中使用ROS 2。
閱讀指南和配套資源
本書用到的部分開源庫托管到了GitHub,讀者在學習過程中如遇到網絡問題,可以使用本書提供的專用代理工具,工具地址為http://github.fishros.org。在本書的代碼塊中,以“$”開頭表示命令行,使用“---”分割命令和執行結果,對于非命令行的代碼塊,粗體部分表示重點更新,“...”表示被省略掉的不重要代碼。
本書提供了大量的配套資源,如配套視頻、ROS 2中文文檔、官方資料網站等,這些都統一放到了本書的交流社區:https://fishros.org.cn。ROS如此璀璨,本人自知才疏學淺,本書難免有錯誤和不足之處,讀者可以在社區中提出,除此之外,若在學習過程中遇到相關問題,也可以通過社區和我交流。
很多小伙伴都是從公眾號“魚香ROS”開始認識我的,小魚每天都會在公眾號分享機器人和ROS 2相關的文章。因為篇幅所限,本書中刪減掉的內容都會以文章的形式在公眾號中發表,歡迎訂閱獲取。
致謝
本書能夠編寫完成和出版,最要感謝的是廣大“魚粉”對我的支持,沒有你們的反饋和鼓勵,我很難將本書完成。其次要感謝的是一直站在我身邊的家人,感謝來自父親、母親和姐姐的鞭策,感謝幫助我整理稿件的“魚嫂”馬靖雯(也是本書的第一個讀者)的無條件支持。還要感謝在我的成長路上提供很大幫助的老師,他們是高中時期帶我學習編程和參加比賽的老師——趙言言、大學時期的老師——殷華博士、工作時的導師——陳養斌博士,以及趙洋、蘇琦、曾凡國、覃建州等為我提供過幫助的老師。同時感謝機械工業出版社對本書的大力支持。最后要感謝的是機器人和ROS生態的前行者和趕路人,他們是張新宇教授、胡春旭老師、張瑞雷老師、金海華、張鵬、熊穎、侯燕青、李德永等。除此之外,還有很多和我一起交流成長和做出貢獻的愛好者、開發者和教育者,此處無法一一列舉,但我都感恩在心。
小魚
2024年1月于廣東廣州