機器人(操作方向)入門路線及參考資料
- 前言
- 1 數理基礎和編程
- 2 機器人學理論
- 3 計算機視覺
- 4 機器人實操
- 5 專攻方向
- 總結
- Reference:
前言
隨著機器人和具身智能時代的到來,機器人越來越受到大家的重視,本文就介紹了機器人(機器人操作方向)的入門路線及重要參考資料,包括數理和編程基礎,機器人操作,計算機視覺,機器人實操以及具體的方向突破。
1 數理基礎和編程
首先需要具備的就是一定的數理基礎和計算機編程能力,這兩項也是工科生最先接觸的知識。
數理基礎包括高數,線代,概率論等。可能很多學生包括博主在內在學習這些數學課程時,并不知道這些數學知識到底和專業之間是什么關系。為了引起大家對數理基礎的重視,這里簡單舉例說明數理知識的重要性。比如力學分析(理力,材力,流力)會用到高數,控制理論會用到高數和線代,計算機視覺會涉及矩陣和概率論,而機器人學則會涉及到以上所有技術。
在學習以上數學知識的同時,可以練習數理推導軟件如Matlab,Mathematica等輔助計算,這些軟件也可用于機器人的計算和仿真。
計算機編程的底層邏輯想通,按照大學培養方案,最先接觸的語言是C語言,重點培養編程的邏輯和程序設計方法。在機器人工程中,用到較多的語言是C++和Python兩種語言,一種語言學會之后,再學其他語言速度就會很快。
2 機器人學理論
對于機器人理論部分,首先需要具備機器人學的基礎知識,如位姿表示與變換,歐拉角和RPY角,機器人的正逆運動學等。可參考的書籍為熊有倫的《機器人技術基礎》。
掌握這些基本概念之后,可以針對專題進行深入研讀,如規劃or控制,操作or移動,工業機器人or服務機器人,不同專題涉及到的技術側重點不同。
本文主要針對機器人操作方向,所以重點介紹一下機器人操作方向。該方向主要是研究機器人基于視覺或觸覺利用末端執行器(剛性或柔性,仿人手或二指夾爪)與被操作對象進行交互(如抓取,放置,推,重定向等)的科學。
人手操作(拾起)盤子的案例 [1]。
從力學角度分類可分為運動學操作,靜態操作,準靜態操作和動態操作,具體概念可以參考卡內基梅隆大學Mason的原著中譯本書籍《機器人操作中的力學原理》。從被操作對象角度可分為剛性物體操作和柔性物體的操作,由于剛性物體操作的力鎖合和形鎖合假設不再適用于柔性物體的操作,所以柔性物體的操作也是當下的研究熱點。
此處,也給出MIT的機器人操作課程的官方鏈接:Robotic Manipulation - Perception, Planning, and Control,供需要的小伙伴自學。
3 計算機視覺
計算機視覺于機器人而言就是機器人的眼睛,可用于機器人的抓取與操作,導航,人機交互等任務中。在機器人操作方面,計算機視覺主要用來識別物體的位姿和狀態估計,抓取點檢測等。
經典的計算機視覺任務包括圖像預處理,圖像的分割,圖像的特征表述等。這些基本的概念需要了解,可以參考張巖等翻譯的中譯本書籍《計算機視覺基礎》。然后在OpenCV上進行實踐,OpenCV提供了豐富的C++和Python語言的API接口,可以直接調用,相關的書籍《學習OpenCV3》和其官方教程https://docs.opencv.org/4.x/d9/df8/tutorial_root.html。
接下來就是學習基于深度學習的計算機視覺,常用的套路如下 [2]:
1 學習吳恩達的《機器學習》和《深度學習》課程,了解一些機器學習的知識。
2 了解一些經典的CV模型,如Alexnet、R-CNN系列、YOLO等。
3 在github上找一些tensorflow、pytorch實現上述模型的開源代碼。
4 下載VOC、ImageNet、COCO、kaggle等數據集。
5 按照開源代碼中的Readme準備數據集,跑一下結果。
傳統視覺和基于深度學習的視覺各有優缺點 [3, 4],在實際項目中,大多數情況下需要結合使用。
4 機器人實操
在了解以上基本概念之后,就可以上手真實機器人實踐了,這里以基于ROS的機器人抓取系統為例,闡述需要掌握知識和要解決的問題。
首先,ROS(機器人操作系統)的一些基本概念要清楚,如節點,話題,功能包等基本概念,以及如何創建發布者和訂閱者以及定義要發布的消息等,這些是機器人操作系統的基本通信的機制。
其次,學會使用ROS中的常用組件,如launch,rqt,rviz,rosbag等常用組件,這些組件是機器人調試時非常方便的工具。
最后,就是針對機器人類型進行建模和仿真,對于機械臂來說,ROS中已經集成了用于機械臂操作的開發平臺——MoveIt,我們可以直接使用MoveIt來控制我們的機械臂。
ROS的參考資料可以參考古月居(胡春旭)的視頻課程ROS入門21講和書籍《ROS機器人開發實踐》。
在掌握了ROS之后,就是在此基礎上進行開發了,包括手眼標定,夾爪通信,機械臂規劃等。下圖所示為京東2017 JRC X機器人挑戰賽上其中一個參賽隊伍的機器人系統 [5],一個基于ROS開發的機器人移動操作系統。
5 專攻方向
當具備基礎知識和實操能力之后,就需要根據具體的專攻方向學習最新的論文,開展工程或者研究工作。如3D感知與操作,類人操作,移動操作,人機交互,柔性物體的操作等。
一般情況下,較新的方向是沒有書籍的,可以先從綜述開始,然后是方向密切相關文獻的精讀。關注專攻方向最新動態,如頂會的Workshop等,還有跟蹤領域內的牛人的發文。
2024年是具身智能到來的時代,當然,具身智能也可以和機器人操作相結合,即將大模型或者Learning應用于機器人操作任務中去,具身智能的入門路線參考具身智能入門學習技術路線。
最后推薦一下機器人操作方向上的媒體號:
關于機器人操作方向,推薦公眾號:機器人操作前沿動態,每周更新全球最新學術進展。
關于柔性物體的操作,推薦博客:機器人的柔性物體操作綜述匯總(持續更新),匯總了近幾年的柔物操作的綜述文章。
總結
以上就是今天要講的內容,本文介紹了機器人操作方向的入門路線,從數理基礎和編程,到機器人學理論和計算機視覺,再到機器人的實操和方向突破,闡述了機器人操作方向所需要的知識體系并給出重要參考資料。當然,入門時,不一定要按照順序學習,邊學邊應用效果更佳。
Reference:
[1] MIT機器人操作課程:Robotic Manipulation - Perception, Planning, and Control
[2] 知乎文章:計算機視覺學習路線
[3] CSDN博客:論文筆記:傳統CV和深度學習方法的比較
[4] O’Mahony N, Campbell S, Carvalho A, et al. Deep learning vs. traditional computer vision[C]//Advances in Computer Vision: Proceedings of the 2019 Computer Vision Conference (CVC), Volume 1 1. Springer International Publishing, 2020: 128-144.
[5] CSDN博客:ROS下實現機器人序列任務的執行控制