機器人編程,英文(wén)Robot Programming,是編程領域中(zhōng)一個分(fēn)支,指為(wèi)使機器人完成某種任務(wù)而設置的動作(zuò)順序描述。機器人運動和作(zuò)業的指令都是由程序進行控制,常見的編制方法有(yǒu)兩種,示教編程方法和離線(xiàn)編程方法。其中(zhōng)示教編程方法包括示教、編輯和軌迹再現,可(kě)以通過示教盒示教和導引式示教兩種途徑實現。
由于示教方式實用(yòng)性強,操作(zuò)簡便,因此大部分(fēn)機器人都采用(yòng)這種方式。離線(xiàn)編程方法是利用(yòng)計算機圖形學(xué)成果,借助圖形處理(lǐ)工(gōng)具(jù)建立幾何模型,通過一些規劃算法來獲取作(zuò)業規劃軌迹。與示教編程不同,離線(xiàn)編程不與機器人發生關系,在編程過程中(zhōng)機器人可(kě)以照常工(gōng)作(zuò)。工(gōng)業上離線(xiàn)工(gōng)具(jù)隻作(zuò)為(wèi)一種輔助手段,未得到廣泛的應用(yòng)。
編程語言
伴随着機器人的發展,機器人語言也得到了發展和完善,機器人語言已經成為(wèi)機器人技(jì )術的一個重要組成部分(fēn)。機器人的功能(néng)除了依靠機器人的硬件支撐以外,相當一部分(fēn)是靠機器人語言來完成的。早期的機器人由于功能(néng)單一,動作(zuò)簡單,可(kě)采用(yòng)固定程序或者示教方式來控制機器人的運動。随着機器人作(zuò)業動作(zuò)的多(duō)樣化和作(zuò)業環境的複雜化,依靠固定的程序或示教方式已經滿足不了要求,必須依靠能(néng)适應作(zuò)業和環境随時變化的機器人語言編程來完成機器人工(gōng)作(zuò)。
世界上有(yǒu)1500多(duō)種編程語言,都要學(xué)的話是太多(duō)了。目前,在機器人學(xué)中(zhōng)有(yǒu)這4種最流行的編程語言。下面就來了解一下常見的機器人編程語言吧!
-
C/C++
C和C++這兩種語言允許與低級别的硬件進行交互,允許實時性能(néng),是非常成熟的編程語言。C++基本上是C的一種延伸。C/C++并不是像Python或MATLAB那樣簡單易用(yòng)。同樣用(yòng)C來實現相同的功能(néng)會需要大量時間,也将需要更多(duō)行代碼。但是,由于機器人非常依賴實時性能(néng),C和C++是最接近我們機器人專家“标準語言”的編程語言。
-
Python
近年來,學(xué)習Python的人有(yǒu)一個巨大的回潮,特别是在機器人領域。其中(zhōng)一個原因可(kě)能(néng)是Python(和C++)是ROS中(zhōng)兩種主要的編程語言。與Java不同,Python的重點是易用(yòng)性,Python不需要很(hěn)多(duō)時間來做常規的事情,如定義和強制轉換變量類型。這些在編程裏面本是很(hěn)平常的事。另外,Python還有(yǒu)大量的免費庫,這意味着當你需要實現一些基本的功能(néng)時不必“重新(xīn)發明輪子”。而且因為(wèi)Python允許與C/C++代碼進行簡單的綁定。這就意味着代碼繁重部分(fēn)的性能(néng)可(kě)以植入這些語言,從而避免性能(néng)損失。随着越來越多(duō)的電(diàn)子産(chǎn)品開始支持“開箱即用(yòng)”Python(與RaspberryPi一道),我們可(kě)能(néng)會在機器人中(zhōng)看到更多(duō)Python。
-
Java
作(zuò)為(wèi)一位電(diàn)子工(gōng)程師,我總是對一些計算機科(kē)學(xué)學(xué)位課程将Java作(zuò)為(wèi)第一種編程語言讓學(xué)生們學(xué)習感到驚訝。Java對程序員隐藏了底層存儲功能(néng),這讓它比起一些語言(如C語言)來說,編寫要容易些,但這也意味着你會更少地理(lǐ)解底層代碼的運行邏輯。如果你有(yǒu)計算機科(kē)學(xué)背景并轉到機器人學(xué)(很(hěn)多(duō)人是這樣的,特别是在研究領域),你也許已經學(xué)過Java。像C#和MATLAB,Java是一種解釋性語言,這意味着它不會被編譯成機器代碼。相反,Java虛拟機在運行時解釋指令。使用(yòng)Java,理(lǐ)論上讓你可(kě)以在不同的機器上運行相同的代碼,這得感謝(xiè)Java虛拟機。在實踐中(zhōng),這不總是可(kě)行的,有(yǒu)時會導緻代碼運行緩慢。但是Java在一部分(fēn)機器人學(xué)中(zhōng)非常流行,因此你也許需要它。
-
C#/.NET
C#是微軟提供的專用(yòng)編程語言。我把C#/.NET放在這裏,主要是因為(wèi)微軟機器人開發員工(gōng)作(zuò)包(MicrosoftRoboticsDeveloperStudio),這個包的主要開發語言是C#。如果你準備用(yòng)這個系統,那麽你很(hěn)可(kě)能(néng)必須要用(yòng)C#。
對于機器人專家來說,最重要的事情是開拓你的”編程思維”,而不是精(jīng)通一種特定的編程語言。從很(hěn)多(duō)方面來說,從哪種編程語言開始學(xué)習真的無關緊要。你學(xué)習的每種語言提升了你的編程思維,擁有(yǒu)了這種思維,去學(xué)習一種新(xīn)編程語言的時候會容易不少。