1. ROS項目開發流程?
參照古月大神寫的ROS探索總結系列:http://blog.exbot.net/archives/619
具體項目設計可看看《程序員》雜志的最新一篇文章《基於ROS的 系統》,是百度無人車的首席架構師等人寫的無人車的架構的選型設計,值得參考借鑒,正在聯系授權轉載,無法提供鏈接,可自己找一下。
2. ROS有哪些常用的、有用的工具?
常用工具有rqt rviz等,請經常關注官方WIKI或者論壇,一般有新的工具,在這些地方也都會有介紹。參考《ROS機器人編程》第三章講了調試和可視化工具,此書第二版已由Exbot翻譯完成,希望下半年早日出版,未來課程中可給大家發一些參考書。
3. 如何從零搭建機器人?
這個問題比較寬泛,建議先買個開發板一步步學,比如樹莓派、odroid等,先學會一些基礎的技術,明白一些基本原理了后確定你想要實現的功能,再在網上查找各種資料,去動手搭建機器人。亦可關注開源機器人項目HandsFree(wiki.exbot.net),涵蓋了從嵌入式控制器的開發到SLAM ROS編程。
4. 硬件平台的購買或開源實現?
wiki.exbot.net有相關配件推薦的淘寶鏈接。
開源實現室內可參考HandsFree(wiki.exbot.net),室外可參考CarBot(wiki.exbot.net)。
也可以網上購買ROS官方的Turtlebot的原型機或者自己采購相關的配件來搭建(如底盤可以用IROBOT的掃地機,有開發的控制接口)。
硬件設計方面,首先要選用支持ubuntu系統的硬件:
- X86平台,建議使用,相對比較成熟。有問題網上也比較多解決方案。
- arm平台,可以運行功能比較強的方案有Inforce IFC6410 (Qualcomm® Snapdragon™ 600 Processor)和Nvidia Jetson TK1,簡單功能的有Raspberry Pi 2,Odroid C1, X, U2, U3, XU3 and XU4等。
- 如果需要底盤運動的話,可以直接購買ROS官網的turtlebot硬件平台,不過比較貴。另外也可以自己搭建,可選用IROBO的ROOMBA系列的,如roomba 528,它有一個開發的控制接口協議,ROS上也有直接控制它的例子程序。方便開發者使用。
關於攝像頭采集電路,可以采用雙目攝像頭,不過需要校准,運算量也大些。現在市場上有一些深度攝像頭,信價比相對比較好的是kinect,華碩的Xtion PRO,intel也出了比較小型的F200和R200,這幾個都有針對ROS系統的驅動和應用,可以在WIFI ROS上找到。另外也可以選也國產的,如奧比中光的,不過暫時沒有直接針對ROS的應用,需要自己去完成。
5. 傳感器的推薦型號?
kinect,華碩的Xtion PRO,intel也出了比較小型的F200和R200,這幾個都有針對ROS系統的驅動和應用,可以在WIFI ROS上找到。另外也可以選也國產的,如奧比中光的,不過暫時沒有直接針對ROS的應用,需要自己去完成。
6. SLAM原理部分
原理可參考ros wiki的導航教程:
http://wiki.ros.org/navigation
網上有不錯的教程:
推薦清華大學高翔博士的SLAM教程,已經轉過來了。
http://blog.exbot.net/archives/1129
http://blog.exbot.net/archives/2308
7. SLAM技術的相關資料
建議把ROS wiki上的教程過一遍,ROS只是一個平台工具,學習了相關教程后,最后還是需要回歸到算法的研究和研發。SLAM做為機器人中的重要技術,專業性強,一定要閱讀相關的論文,可參考導航教程[1-3,11-12]; Gmapping的原理可參考資料[4-6]; ACML可參考資料[7-8]。Hector mapping的資料可參考[9-10]。
教材推薦《概率機器人學》,據悉中文譯本國內也馬上會出版。
[1]. http://wiki.ros.org/navigation.
[2]. http://blog.exbot.net/archives/1129
[3]. http://blog.exbot.net/archives/2308
[4]. http://wiki.ros.org/gmapping
[5]. https://www.openslam.org/gmapping.html
[6]. Improved techniques for grid mapping with rao-blackwellized particle filters.G Grisetti, C Stachniss, W Burgard. Robotics, IEEE Transactions on 23 (1), 34-46
[7]. https://www.openslam.org/gmapping.html
[9].http://tedusar.eu/cms/sites/tedusar.eu.cms/files/Hector_SLAM_USAR_Kohlbrecher_RRSS_Graz_2012.pdf
[10]. http://wiki.ros.org/hector_mapping
[11]. https://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/SLAMTutorial1.pdf
[12]. https://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/SLAMTutorial2.pdf
其他問題:
8. 編程技術涵蓋量較少,希望了解更多?
參照:http://blog.exbot.net/archives/619 可以有了基本了解。
9. 建圖與路徑規划內容較少,可以詳解。
原理可參考ros wiki的導航教程:
http://wiki.ros.org/navigation
網上有個不錯的教程:
http://blog.exbot.net/archives/1129
http://blog.exbot.net/archives/2308
10. 基本偏向軟件介紹,硬件平台涉及少,希望了解更多。
當前ROS的發行版是基於UBUNTU系統的,所以在開發使用ROS時建議也使用UBUNTU來開發,方便問題的查找得解決。
11. RVIZ具體的用法
- RVIZ是ROS中一個最重要的可視化工具,功能非常強大,主要用來可視化傳感器數據,機器人模型,導航等功能。
- RVIZ使用的教程:
http://wiki.ros.org/rviz/Tutorials
最好把教程的例子實踐一遍
12. Gazebo
參考:http://wiki.ros.org/gazebo
13. urdf的使用
看看別人的例子程序。http://blog.csdn.net/sujun3304/article/details/18962719
14. tf
參考:http://www.guyuehome.com/279
15. 在嵌入式產品中的應用
ROS基於UBUNTU操作系統,所以理論上只要能運行UBUNTU系統的嵌入式平台都可以安裝ROS.但因為兼容性,依賴包缺失等問題,有些ROS功能包可能無法使用.所以在嵌入式平台的選型上盡量選擇官方推薦的開發板.
16. 新設計一個機器人或者傳感器,如何設計package
請先參考官方文檔http://wiki.ros.org/,熟悉package的設計,再有針對性地提問題
17. 通信框架代碼講解
簡單來講,ROS內部采用RPC來進行通信,MASTER提供各節點的注冊並跟蹤,實現節點間的通信.
dynamic-reconfigure
使用 parameter server
service
官方WIKI有service編寫示例,請參考
http://wiki.ros.org/ROS/Tutorials/WritingServiceClient(c%2B%2B)
18. AMCL不懂呀
AMCL(Adaptive Monte Carlo Localization),自適應蒙特卡羅定位。簡單的說是知道了先驗地圖下的機器人定位。
AMCL的原理可參考《概率機器人》資料:
http://www.probabilistic-robotics.org/
如何在ros下使用AMCL,請參考ros wiki的使用教程:
http://wiki.ros.org/amcl
19. RVIZ具體的用法
RVIZ是ROS中一個最重要的可視化工具,功能非常強大,主要用來可視化傳感器數據,機器人模型,導航等功能。
RVIZ使用的教程:http://wiki.ros.org/rviz/Tutorials
最好把教程的例子實踐一遍
20. 對建模的思想要講的清楚一些
建模的思想需要很多的知識,最好先學習相關的基礎知識和論文。