移動機器人入門篇

從零九年開始接觸機器人研發,不得不說,有必要寫一篇長文了。html

 

我在接觸機器人前,接觸過單片機,那時候的單片機仍是5一、PIC16這種,當時就特別好奇:機器人一個關節須要幾顆這樣的芯片?這個問題我記得最清楚,由於作了機器人,發現根本不用芯片,整個機器人一個芯片就夠了。不過隨着認知的不斷提高,這個問題很難回答。那咱們就開始咱們的機器人之旅。linux

 

機器人解釋爲機器得到了一些人的特色。電視裏常常看到的變形金剛、鋼鐵俠、鐵膽火車俠都具備人的形狀,更容易被人理解;算法

 

《特種部隊》裏出現的機器蜜蜂、《Agents of S.H.I.E.L.D》中的飛行器說是機器人咱們也能夠承認,由於這些仿生機器人科技含量很高;編程

 

波士頓動力(www.bostondynamics.com)的大狗系列也能夠說是機器人,即使它是機器人狗。安全

 

不過你們必定記得機器人瓦力,這部08年安德魯斯坦頓編導的《機器人總動員》,在無數科技愛好者內心埋下了機器人的種子。瓦力的特色是移動能力依靠履帶,視覺能力靠兩顆眼睛,具備兩個機器人手臂,大腦發達。這種履帶式的移動方式,也被目前的不少機器人採用,不過更適合野外,對於室內或者地面情況比較好的情景中,輪式以其高度的靈活性被普遍應用。這就像汽車裏只有挖掘機相似的採用履帶,而多數汽車都採用輪子。服務器

 

輪式移動機器人在移動機器人應用中佔有很大的比例,最近火的一塌糊塗的申通小黃人(http://tv.fanjian.net/110237.html),表明了移動機器人在智能分揀系統中的應用,機器人的規模你們能夠根據我國16年313億件快遞量推算。各大物流公司、電商都在積極佈局,挖掘人才以及引入技術(http://www.agvbaike.com/cangchujiqiren/2017-03-28/6523.html)。electron

 

其實這些移動機器人在物流以及電商火以前就存在,只不過名字不一樣,好比AGV(https://en.wikipedia.org/wiki/Automated_guided_vehicle),在20世紀就開始服役。如今倉儲物流火了,各大AGV公司開始了變形計。編程語言

 

再放眼國內外的機器人競賽,輪式移動機器人絕對是隨處可見。高等院校競賽中Robocon(http://www.cnrobocon.org/)是亞太區的一項機器人競賽,由日本發起,目前舉辦了16屆,前面連接是國內賽連接,這項比賽難度高,技術含量高,門檻高,已是一個三高狀態,在行業內的承認度也高,每一年爲社會輸送機器人技術人才數以千計。十幾年來,在各個機器人公司的關鍵崗位,都有Robocon人。參加院校能夠是985/211,也能夠是高職,下面是16年參賽院校。ide

 

 

下面附上16年比賽視頻,2017年比賽會在5月末開始。函數

 

國內決賽東北大學VS成都電子科技大學

http://www.iqiyi.com/w_19ruippw4l.html

 

國際賽東北大學VS日本

https://v.qq.com/x/page/e0322raz6tf.html

 

Robocon技術含量高,不過卻在行外不爲人知。雖然也在CCTV播放,不過在節目強調價值觀與娛樂性的今天,娛樂性強的真人秀備受追捧,跑男一個明星至少要幾個攝影師,多臺錄像機以及手持設備。而咱們比賽場上,科技精英們的做品被表現的卻差強人意。

 

另外一項機器人比賽Robomaster(https://www.robomasters.com/zh-CN)這幾年很火,這項比賽發起者是06年Robocon隊員。這位隊員建立了大疆公司,目前年營業額過百億。這項比賽觀賞性比較強,行業內廣泛認爲技術含量較Robocon低,不過這項比賽我並無太多瞭解,因此沒法過多評價。不過能夠肯定的是,這項比賽一樣培養了一批優秀的機器人精英。

 

此外,Robotac(http://www.robotac.cn/)是面向高等職業院校的機器人競賽。

 

中小學比賽FLL、WER、VEX、NOC等等,都是移動機器人項目。不得不提,目前機器人行業中,惟有中小學教育這一塊是發展的好。公司旁邊就有家作樂高機器人培訓的,作的有模有樣(公衆號:小張老師)。

 

移動機器人多種多樣,不過移動部分大同小異,咱們將它叫作移動底盤或者移動單元。

 

移動底盤主要由幾部分組成:主控制器、電機(馬達),電機驅動器,傳感器,輪子,機械底盤組成。

 

主控制器主要負責機器人移動的控制,包括了傳感器數據的採集,走行決策以及路徑的規劃。目前主控芯片尚未大一統,有MCU、MPU、PLC、電腦等,MCU具體有意法半導體的STM32系列、恩智浦LPC系列、Arduino系列(分到這裏不太妥)、51系列等。不得不說兩家公司,一個是偉大的ARM,一個是意法半導體。

 

ARM公司(http://www.arm.com/)是一家芯片受權公司,本身不生成銷售芯片,從之前的ARM7~ARM11,再到ARM CORTEX-A系列和M系列,A系列佔領了大部分手機市場,能夠說大部分手機內核都手機芯片廠商從ARM拿的受權;M系列也厲害,基本代替了之前的8位、16位單片機,M0系列主打低功耗,幹掉TI的MSP430,M三、M4是單片機中的戰鬥機,高性能。

 

這裏意法半導體(http://www.stmicroelectronics.com.cn)的STM32系列就是一個贏家。當年各個芯片廠家都有本身的MCU IP,不過意法半導體率先採用ARM M3/M4,配合大量的市場推廣,致使如今幾乎不多人知道其餘廠商M3/M4 的MCU。對於大學市場,意法半導體作到了讓不少同窗可能不知道ARM,卻知道STM32。Cortex-M系列確實適合於新興的機器人、智能家居、物聯網、智能穿戴等領域。

 

單片機這塊編程主流採用C語言,部分彙編;由於沒有MMU以及資源不足,沒法運行相似linux等操做系統,不過freertos、usos、mqx等小型OS仍是能夠的。編程軟件目前多采用IDE,好比Keil、IAR等,不過也有不少人直接使用tool train來開發。

 

單片機外設豐富,包括能夠控制LED的IO、控制蜂鳴器的PWM、檢測開關狀態的IO、讀取測距傳感器數值的AD、多軸協調控制抗干擾的CAN、串行總線SPI、UART、I2C、用來即時的Timer。總之,多種多樣的傳感器以及其餘設備,均可以使用這個控制器來處理。目前能夠根據需求採購不一樣型號的MCU,而後本身設計SCH、PCB,手焊或者SMT,不過也能夠採購開發板,開發板功能全,個大,學習用很是適合。既然提到了硬件設計,那就提下硬件設計的主流的幾個軟件:altium designer,cadence,pads,protel等等。

 

PLC咱們能夠理解爲穩定性特別高的單片機。1968年爲了取代汽車中大量的繼電器,PLC應運而生,不過到如今咱們把它定義爲穩定的單片機也並不過度。PLC在工業中被普遍使用,其編程方式也更加適合於電氣工程師,就像Arduino更適合於設計同樣,相似咱們這些計算機的老幫子來說,不喜歡!PLC內部的資源並無單片機那樣豐富,爲了提升穩定性,不能什麼都搞一堆,單片機中動輒上百的IO,在這裏少的可憐。PLC價格也不菲,如今幾百塊能買一塊很好的開發板,不過差很少的PLC得幾千上萬。PLC的編程語言包括如下五種:梯形圖語言(LD)、指令表語言(IL)、功能模塊圖語言(FBD)、順序功能流程圖語言(SFC)及結構化文本語言(ST)。梯形圖用的多,不過對於我來說,更喜歡ST。若是你的機器人穩定性要求特別高,那麼用PLC吧。

 

固然,這幾年流行起來的Arduino(http://www.arduino.org/)和樹莓派(https://www.raspberrypi.org/)也能夠用在機器人中。

 

Arduino是爲設計師開發的,也能夠認爲是給一些創客開發的,不須要多少基礎,就能完成一個小發明。Arduino只是定義了電路板的封裝接口和軟件編程接口,因此芯片能夠是任意可以知足這些要求的,這裏更正下你們對於Arduino的見解:Arduino性能必定很low,這個不對的。對於Arduino編程來說,真是簡單透了,一個setup函數,一個loop函數就搞定了。

 

樹莓派就是一個微型電腦,以下圖,輕鬆鏈接顯示器。因此樹莓派和Arduino不一樣,其目的是像小電腦同樣馳騁在須要它的戰場上。有人用樹莓派搭建了服務器集羣,不過我想說樹莓派也能夠用在機器人控制上。最近很火的SLAM技術,不少人能夠經過ROS(www.ros.org)體驗SLAM的帥呆,這個ROS就能夠運行在樹莓派上。目前不少自主定位導航機器人基本採用了ROS。樹莓派接口豐富,已經出了三代,樹莓派3價格也就幾百塊,只有掌心大小。

                                                     

 

 

筆記本電腦、工控機也會出如今機器人移動底盤上,不過並很少見。

 

輪子輪式機器人不得不提輪子,有了輪子配合一部分機械件就能夠想象出機器人的移動底盤了。這個也容易理解,生活中給一個輪子就是獨輪車,兩個輪子自行車,三個輪子三輪車,四個輪子轎車….

 

機器人中也有生活這種輪子,咱們叫它普通輪子。

 

 

 

這種輪子主要用在差速控制中,也就是兩輪同速走直線,不一樣轉彎走弧線。下面這個玩具機器人就是採用的這樣的輪子,一樣申通的機器人也是採用的這樣的結構。這個輪子由於有電機(馬達)帶動,因此咱們叫作驅動輪。

 

 

 

輪子輪轂能夠採用金屬也能夠是塑料材料,輪胎採用橡膠或者聚氨酯材料。聚氨酯輪的壽命和負載能力是橡膠輪的4~5倍。

差速輪詳細走行算法能夠參考http://mp.weixin.qq.com/s/8jT51bC_hCeTmAM8jdYTVg

 

差速輪沒法實現機器人的平移,也就是咱們倒車入庫費勁的主要緣由。而下面這個輪子結構,就可讓倒車入庫簡單。

 

 

 

這兩種輪子的共同點是輪轂上還有小輥子,第一個叫作全方位輪,另外一個是麥克納姆輪。全方位輪上面的小輥子和輪子方向成90°,而麥克納姆輪成45°。全方位輪能夠組成三輪、四輪結構,而麥克納姆輪只能成對出現,至少4個。這種輪子能夠組成這樣的機器人移動底盤。

 

 

三輪結構靈活,不須要浮動機構,不過相對四輪驅動能力和速度弱一些。具體控制方法參考http://mp.weixin.qq.com/s/2dLgQ_i4nnWEZCmaFIxo0g

 

 

四輪結構須要額外的浮動設計,不一樣性能好不少,控制方法參考http://mp.weixin.qq.com/s/mgRoaRcUELwfDqg4JkFcjw

 

 

 

這個像不像一臺小轎車?停車很方便,,這種輪子可以作到大負載,如今不少工業叉車採用這種。具體控制方法參考http://mp.weixin.qq.com/s/5V0Ie1KLDlOjtRt_NivWvQ

 

這幾個移動底盤均可以實現任意方向的平移以及旋轉,若是把它用到《速度與激情》裏,漂移會編程什麼樣?

 

輪子還沒完,輪式機器人中,地面經過與輪子摩擦給機器人提供牽引力。因此不少時候,驅動力不足就是小馬拉大車,不過驅動力十足而摩擦力不夠,也是件頭疼的事情。另外,因爲控制緣由,讓驅動輪不打滑很難作到,只是打滑多少的問題。

 

電機(馬達)電機這東西有意思,你能夠叫它電機,也能夠叫它馬達。不過常常叫他電機的人會瞧不起叫它馬達的人,其實不必。馬達是motor的音譯,而電機是對motor原理上的翻譯。在機器人中,電機很常見,馬達也很常見。就在咱們的移動底盤中,它又要登場了。咱們要拋卻單驅、雙驅、四驅這些概念,由於在咱們這裏,咱們要全驅,也就是有輪子就要有電機。因此上面的底盤用到幾個電機你們數數就知道。

 

這裏咱們只考慮直流供電的電機,由於目前大部分機器人是這樣的,使用的電池供電。直流電機中分爲有刷電機和無刷電機。

 

有刷電機換向是經過碳刷或者稀有金屬刷等完成的,這種機械換向的方式控制簡單,不過壽命短、噪音大、耗電多。相對無刷,缺點真是一大把,因此無刷也是趨勢,目前來看有刷控制太簡單了,整個產業鏈還並無被無刷替代。

 

直流有刷電機能夠簡單到玩具車裏的普通直流馬達,也能夠複雜到精密儀器裏的伺服電機。他們從控制方式上的區別是一個開環控制,一個閉環控制;硬件上的區別就是電機的指標:功率密度、扭矩、轉速、機械時間常數、電壓等等。因此5塊錢能買到馬達,並不稀奇,上萬塊買到一個電機也要驚訝。一般來說,玩具包括如今大部分中小學教育機器人、大部分機器人競賽用的都是普通直流電機,而用做伺服的電機由於比較貴,在大衆眼中並很少見。

 

因此直流有刷電機的驅動器也能夠簡單到只實現一個H橋電路板,亦能夠複雜到是一個系統。價格是從幾十塊到上萬塊都有。國外貴的典型美國Copley http://www.copleycontrols.com/和以色列ELMO http://www.elmomc.com/

 

 

安川電機 http://www.yaskawa.com.cn/

MAXON電機http://www.maxonmotor.com

 

固然若是對性能有要求卻又支付不起伺服電機,能夠到一些平臺淘二手,有些成色仍是能夠的。

 

對於機器人移動底盤,咱們一般比較關心兩點:速度和加速度。因此在已知機器人重量後,選擇電機不能隨便算,要根據機器人速度、加速度需求進行計算電機的扭矩和轉速,根據系統的電源電壓選擇合適的電機。電機選好後,選擇驅動器也要仔細,第一要看的就是最大持續電流以及溫升。最大持續電流必定要知足上面計算好的電機的須要,爲何提溫升呢?電機驅動器也是有電子器件組成,一般溫升10度,器件壽命會減半,這也就是有名的10度原則。因此驅動器選型這一塊,可能不少驅動都能作大這個持續電流,不過溫升極可能不同。另外就是驅動器控制響應是否快速,是否精準,這些都是驅動器的基本性能指標。

 

無刷電機採用電子換向,因此不是兩個電源線,是三根。驅動器有規律的給三根線電壓,來控制電機旋轉。沒有刷的束縛,效率提升了,壽命提升了,不過這些也提升了軟件控制難度,若是容易的話,當初也不會發明有刷,而不是無刷。有了驅動器,主控制器能夠忽略電機是有刷的仍是無刷的,由於這個對於主控制器來講透明。主控制器只須要告訴驅動器讓電機如何運動就好了。

 

 

上面斷斷續續的提了電機驅動器,咱們這裏只提伺服驅動器。什麼叫作伺服呢?伺服就是主控制器讓電機怎麼運動,電機和驅動器合夥要保證這個,不讓主控大人操心,而且要準確,還要迅速,不能拖拖拉拉。因此對於那些性能賊差的電機咱們就不要作伺服了,對於那些不須要精確控制的好比遙控玩具車,咱們也不要用伺服了。伺服電機必定是電機中的精英,機電時常數小、線性度高、始動電圧低。

 

那麼這樣的電機確定不須要豬同樣的隊友,驅動器要穩、準、快。也就是對於速度、位置或者力矩的控制要穩、要準、要快。這也就是咱們常說的驅動器的速度環控制、位置環控制以及力矩環控制。

 

 

主控制器想要控制電機,只須要經過通信接口向驅動器發送命令就能夠了,這些命令能夠簡單到是一個模擬信號,一個pwm數字信號,也能夠複雜到CAN信號等。無論是什麼,根據驅動器和主控制器的說明,一步一步作就能夠了。

 

上面要進行伺服控制,電機都須要帶傳感器來測量速度和位置。傳感器能夠增量式數字編碼器、霍爾傳感器、絕對式數字編碼器等。不過增量式數字編碼器較爲常見。一般安裝在電機軸上。

 

那麼若是咱們要作一個三輪全方位的移動底盤,須要一個主控制器,三個輪子,三個電機,三個驅動器(也有一個驅動器能夠驅動多個電機的,在此不討論)。不過還缺乏電源,若是要錦上添花,還須要些傳感器。不過我火燒眉毛的要上傳下咱們還沒作好的一個底盤。

 

 

上面多了一個定位系統,少了一個主控。另外,圖上歐巴不是我。

 

 

鋰電池咱們仍是繼續說電池吧。目前機器人電池已經基本都是鋰電池了,鎳氫、鉛酸基本不用了,不過前幾年的irobot用的是鎳氫電池。

 

鋰電池學問也很多,首先安裝包裝來分有圓柱和軟包。話說特斯拉用了7200多個圓柱18650拼成了密密麻麻的電池系統。圓柱裏面是液態鋰化合物,而軟包裏是固態鋰聚合物。鋰電池有燃燒、甚至爆炸的危險,這裏咱們認爲燃燒要比爆炸溫柔。因此不少業內人士說圓柱液態鋰電池危險,由於它會爆炸,而軟包聚合物電池只會燃燒不會爆炸。這個說法好像一直都被大部分人承認,直到三星事件那些少部分人才找到了有力的理由。

 

 

 

鋰電池從多方面具備先天的優點,因此如今鋰電池才能在大部分場景替換掉了老大哥們。能量密度高,無記憶效應,壽命長等。不過在介紹不一樣的鋰電池前,咱們要提下鋰電池的兩個缺點,第一個大倍率充放電容易膨脹,第二個不耐低溫。

 

鋰電池有不少指標:內阻、標稱電壓、容量、充放電截止電壓、充放電倍率、循環壽命、能量密度、功率密度等。這些一旦電池材料選好,基本就是根據供應商的差別而不一樣了。

 

下面說下不一樣材料鋰電池區別。

鈷酸鋰:大規模生產,價格昂貴,容量較低,存在必定的安全性問題;

鎳酸鋰:成本較低,容量較高,但製備困難,材料性能的一致性和重現性差,存在較爲嚴重的安全問題;

三元鎳鈷錳酸鋰:集成上面有點,可逆容量大,結構穩定,安全性較好,循環性能好,合成容易;

磷酸鐵鋰:不含貴重元素,原料廉價,資源極大豐富;工做電壓適中(3.4V)平臺特性好,電壓極平穩理,論容量大(170mAh/g);結構穩定,安全性能極佳,高溫性能和熱穩定性明顯優於已知的其它正極材料;循環性能好,無毒。成本、高溫性能、安全性方面具備突破。可是能量密度低。

 

咱們關心的電池壽命,標稱800次循環,指的是充滿後,放電到截止電壓算一個循環。

 

標稱容量是隻1C放電,當達到截止電壓時,時間應該達到1小時。

 

鋰電池的使用,一般應該是充好電後,靜置一段時間再使用。不用時,應該充電儲藏,置於充電多少,手冊都會給出。

 

據調查,機器人市場,目前採用三元鋰和磷酸鐵鋰居多,軟包和圓柱均有。

 

傳感器一般咱們採用的傳感器多種多樣,上面的這些選好後,機器人移動底盤已經能夠移動了!不過,也只是可以移動,加個遙控能夠手動遙控。要想自動還差一些工序。機器人若是想室內定位,也就是知道本身在哪裏,那麼得須要定位的傳感器,這個時候gps、北斗等室外定位方式確定不行了,這個能夠本身研發了,目前市面上室內定位的也就是上面底盤上那個定位系統了,不過那個使咱們開發的,你們也能夠本身開發,是基於mems的。

 

臂章呢?簡單的就加一圈光電傳感器,但是距離2米,這樣也行,這些傳感器是二值化的,就是有東西就輸出高電平,沒有東西就低電平;發現哪一個方向有障礙物,那就趕忙躲開。不過這個不許,咱們能夠用紅外測距傳感器測量障礙物的距離,只有距離近時才躲避。這些傳感器沒法保證無死角,若是障礙物就在扇形盲區,麻煩就大了。那咱們試試激光雷達,能夠簡單理解爲一個可以360度掃描的傳感器,掃描距離10米,一秒鐘掃描5圈,這回應該夠了。因此能夠在移動機器人底盤上加個激光雷達來避障。

 

若是把機器人底盤DIY後放在家裏,能夠添加溫溼度傳感器來測量溫溼度,用一個小的顯示屏或者語音播報模塊播出來。也能夠添加一個煤氣檢測模塊,一旦檢測到煤氣泄漏,就用蜂鳴器報警。這些傳感器均可以鏈接到主控制器上。移動機器人的好處在於,一旦作好,一切東西均可以作到上面去,編程移動的。再好比放個攝像頭,就是一個移動的監控哦~

 

固然也能夠安裝機械手,不過機械手不是傳感器範疇,屬於執行器。能夠在底盤上添加語音識別模塊,而後讓機器人幫咱們作些事情。

 

咱們只拋磚引玉,下面是上面未完成底盤的哥哥還有他的女友。

 

 

相關文章
相關標籤/搜索