色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

兩輪平衡機器人DIY圖解

454398 ? 來源:wv ? 2019-09-26 11:00 ? 次閱讀

步驟1:硬件

兩輪平衡機器人DIY圖解

我嘗試了多種IMU,電機,電動機驅動器,車輪和電源

原型視頻中顯示的內容包括:

MPU6050

Pololu低功率直流電動機(2282:590 rpm,9.68:1,17 oz-in)

霍爾編碼器464.64 cpr(齒輪后為48 cpr)

Pololu輪120 x 60 mm(通行節拍器)

Arduino UNO

Seeed Studio 4A電機罩

大沽藍牙模塊(HC06)

Raspberry Pi 2B +

2x UltraBorg板,用于讀取Raspberry上的超聲波傳感器

2x DFRobot LiPo 7.4 V電池

HOBBYWING 3A開關模式UBEC 5V 6V

慣性測量單元(IMU)

視頻中的機器人使用基于InvenSense MPU6050芯片的基本且成本非常低的模塊。我還嘗試了基于MPU9150和MPU9250的多個SeeedStudio模塊和版本。后者的芯片名為10DOF(自由度),因為它在陀螺儀(3軸),加速度計(3軸)和磁力計(3軸)上增加了氣壓計(單軸)。

所有3種芯片上都裝有數字運動處理器(DMP)。使用此處理器有很大的優勢。它在計算垂直角度(傳感器融合和濾波)時節省了大量代碼。其次,它具有內置的校準程序。最后但并非最不重要的一點是:它節省了Arduino的CPU和內存的使用。

如果您想將DMP與Arduino結合使用,即使在“開發人員專區”中,InvenSense文檔也無濟于事。 Jeff Rowberg在這里發布了有關MPU6050寄存器的出色技巧。該庫僅適用于MPU6050和MPU9150。 MPU9250的寄存器配置不同。在使用MPU9150芯片進行測試時,DMP偶爾會停止工作(可能是該芯片)。最后,MPU6050給出了最佳結果。 (其他優點:這些模塊是最小,最薄且價格非常低的模塊。)

如果MPU6050產生錯誤的數據,則可能需要校準傳感器的x,y,z偏移量。可以在此處找到用于校準偏移量的Arduino草圖

我經歷過,調整偏移量可以提高小角度的精度,但也會降低大角度的精度。到最后,芯片默認偏移量在大多數情況下效果最好。

電動機,編碼器,電動機驅動器和車輪

我使用的電動機(全部為Pololu):

大功率Micro no 1101,990 rpm,齒輪:100.37:1,失速扭矩:30 oz/in

大功率Micro no 2271,990 rpm,齒輪:9.68:1,失速扭矩: 39 oz/in

大功率no 2274,210 rpm,齒輪:100:1,失速轉矩:80 oz/in

小功率no 2282,590 rpm,齒輪:9.68 :1,失速轉矩:17 oz/in

除微型版本外,所有電機均隨附霍爾編碼器。它們產生易于操作的分辨率,取決于齒輪比,分辨率為464至2248節拍。對于微型馬達,我使用了產生48個刻度的光學編碼器。

在我看來,在室內使用扭矩不太重要。我也經歷了高功率版本,因為調音更難。它們具有更大的靜摩擦力(“死功率區” =開始移動所需的功率),因此,我發現很難以很小的平衡差(即小的垂直角度)來調節功率。轉速與最大速度直接相關。在我看來,對于首次建立平衡器也不太重要。但是,極低的轉速幾乎不可能達到穩定的平衡。我的建議:使用普通電動機,最好以600 rpm左右的速度運轉。

總體而言,盡管來自相同系列的直流電動機顯示出不同且不一致的靜摩擦力。內置差動控制被證明是必不可少的。也許步進電機將減少此問題(它們移動直到到達某個位置或角度)。步進電機也消除了對編碼器的需求。

我已經使用L298N雙(2A)電動機控制器板和Seeed Studio 4A電動機控制器護罩進行了測試。我更喜歡后者,因為它是盾牌。易于安裝,占用空間少。此外:我發現屏蔽罩4Amp可以更好地緩沖大功率電機的堵轉電流。 (注意:請注意我的Arduino草圖中的引腳排列。我體驗到的屏蔽線與Seeed示例不同。)

輪子 您的生活輕松。我使用的直徑分別為4.2、9和12厘米。大輪轂帶來更大的穩定性。這也適用于表面上的抓地力。我的最愛:“野生ump擊器”車輪(12x6厘米)。

身高和體重 對機器人的行為也很重要。較大的重量會使機器人保持惰性:反應緩慢,因此一開始會顯示較大的過沖。當然也需要大功率的電動機。重心(COG)較高將使機器人更加穩定,但也可能會導致后果。高度加上頂部的重量也會使機器人保持惰性。因此,這完全是調整的問題。當機器人保持穩定平衡時,如果發現它在向前或向后移動時反應緩慢,請嘗試減輕重量和/或減輕重量。

電源

該機器人由兩節LiPo電池供電。一種用于為Arduino和電機供電。一種用于為Raspberry供電,并通過它與HC-SR04超聲波傳感器配合使用。我從所有組件的一個來源開始。當電動機處于“重載”狀態時,它們吸收了太多電流,以至于超聲波讀數變得錯誤,甚至RPi有時也會復位。為RPi和Ultraborgs使用單獨的LiPo解決了這一問題,但我必須添加UBEC才能獲得5V 3A的穩定電流。

步驟2:邏輯和編碼

網上有很多有關平衡機器人和/或倒立擺的信息。但是,我使用了一個非常簡化的邏輯,并具有以下假設:

1-電機軸應該旋轉的角度(至少)與機器人掉落的角度相同。因此,請嘗試控制電動機軸的角度,而不是距離和/或速度。 (如前所述,使用步進電機可能更容易實現。)

2-為了平衡,需要控制角度及其導數,即電機軸的角速度。這可以通過使用PD控制回路來完成。它不像PID回路那樣常見,但是由于運動方向會迅速變化,因此使用積分因子幾乎沒有用處。

3 –要保持位置,必須控制水平移動和速度。這可以通過將傳感器(編碼器)輸出轉換為補償角度來完成。出于與垂直控制相同的原因,所需的控制循環也是PD循環。

可以簡單地將2和3的結果相加,但是最好在水平方向使用嵌套(級聯)控制循環控制回路為垂直控制回路產生目標角度。

按照這些假設進行操作可以節省機器人的高度和質量(甚至是線速度)的計算負擔(如上所述:這些是重要因素,但可以輕松調整)。這樣,在不更改(大部分)編碼參數的情況下調整機器人的高度和COG相對容易。

保持機器人直面是通過差動控制(轉彎)完成的,并且可以獨立于機器人水平和垂直控制。輸入可以來自編碼器(即滴答聲數量的差異)或來自IMU(即偏航數據)。后者所需的編碼要少得多。

要對其進行總結,為了平衡,需要:

1將水平位移轉換為垂直位移角度

2補償該角度與測得的角度之差

3將電機軸移動此補償角度

要翻譯成代碼,需要機器人的某些功能:

最大電動機速度以編碼器刻度表示。這是編碼器可以在特定電機上產生的最大滴答聲。在公式中: RPM/60 *每轉刻度數

編碼器刻度數和度之間的關系。在公式中: 360/每轉刻度數

使用這兩個公式,我們可以推論度數與電動機功率之間的關系(PWM值0-255)。

Arduino草圖作為具有以下功能的機器人“固件”運行:

根據車輪編碼器的輸入進行水平控制

垂直和差分基于IMU輸入(俯仰和偏航)的控制

用于調整,輸出監視和運動測試的藍牙通信

與Raspberry Pi的串行通信

草圖在這里。用于遠程控制和調整的android應用程序是使用MIT App Inventor開發的,可以在此處找到這些塊。用于在Raspberry和Arduino之間進行通信和控制的Python腳本位于同一存儲庫中。我不會在此贅述,因為該帖子僅用于平衡基本面。

有關Arduino草圖的注釋很好。因此,我將只介紹一下其功能。

初始化

UNO的插針已被占用,沒有將傳感器連接到Arduino的空間很大(pwm,中斷和模擬引腳已售罄)。

一些機器人/電機常數進行計算(如上所述)。

松弛或靜摩擦常數。通過試用和測試收集。我從草圖開始,以獲取空載條件下的平均值。您會在這里找到它。在實踐中,我在測試平衡和運動的同時根據觀察結果對它們進行了重大調整。這些常數就足夠了,但是在很大程度上取決于電動機的性能。跳過這些功率量會使機器人在(很小)小角度時反應更快。但是將這些值設置得太高會在調整控制循環時帶來一些挑戰!

maxAngle

假設無法進行補償的角度。用于確定機器人是站立還是躺下。

間隔

穩定的間隔對于控制回路至關重要。在Arduino站點上有一個“ TimedAction”庫,但是一個計時器的直接編碼非常簡單,并且節省了一些內存。

pitchOffset

通過調整IMU獲得。最簡單的方法是將機器人固定在絕對90度的位置(由頂部的數字水平儀測量)并讀取IMU值。

cogOffset

沒有此常數,控制回路也將獲得平衡。第一個原型機帶有8個超聲波傳感器,這使它的前部有點沉重。正如您在視頻中看到的那樣,控制循環通過讓機器人稍微向后傾斜來進行調整。使用 cogOffset 可以補償傾斜,并使機器人前進時更加靈活。

序列。 begin()和Bluetooth.begin()

與RPi的通信通過USB串行進行。 SoftwareSerial接線庫用于與Android應用進行藍牙通信。

wdt_enable(WDTO_500MS)

初始化IMU錯誤時,設置了Averdude看門狗定時器,這將強制Arduino復位。

resetRobot()

每次運行時都會初始化所有變量(并停止電動機)機器人放下。這對拾起機器人很有幫助。

loop()

只要機器人站立時,將檢查所有輸入。當間隔過去后,將執行控制循環。我嘗試了不同的時間間隔。最佳選擇取決于傳感器和所用電機的類型。超過100Hz(《0.01秒)時,我遇到了錯誤的編碼器數據,并且機器人的動作也太“辣”了。在50Hz時,機器人變得“笨拙”。在大多數情況下,100Hz環路效果最佳。

horizontalControl()

檢查是否已經確定了目標距離,并向目標刻度添加了速度偏移。速度偏移是在間隔內以特定速度進行的滴答聲數量。如果未設置距離和速度目標,則在機器人上升時設置目標刻度數。這使機器人可以返回其位置(如果命令移動一定距離,則可以返回新位置)。

differentialControl()

這對于IMU的偏航輸出有點特殊在這里使用。 IMU返回-π《=偏航《=π(弧度)。

getAngles() 例程將讀數轉換為以度為單位的角度0-360范圍。

resetRobot() 例程將機器人上升時的偏航角設置為yawTarget(基本上是360度刻度上的角度偏移量) )。

最后一個角度讀數和偏移之間的差被視為錯誤。

冒充360度的刻度(例如在指南針上)可以輕松確定最小角度(=旋轉方向)。可以根據向機器人補償的方向(左/右)以及機器人必須移動的方向(向前/向后),簡單地將結果添加到發送到各個電動機的功率中或從中減去。

僅當在 getMessage() 例程中通過藍牙或從Raspberry接收命令時,才會執行以下3個例程。

setSpeed()

取一個電機一次可產生的最大滴答聲的百分比( = RPM/60 *每轉刻度數*時間間隔(秒)。)

setDistance()

將以米為單位的行駛距離乘以每米的刻度數( =每轉刻度數/以米為單位的車輪周長)

setTurn()

為偏航偏移量添加所需的度數,將新目標調整為360度并重置轉彎命令以防止連續轉彎。

傳感器和電機例程非常簡單。 resetEncoders() 例程可防止由于編碼器“翻轉”(編碼器輸出為整數)而引起的事故。

交互例程檢查串行和藍牙隊列中是否有新命令,如果有,則通過通用的案例結構對其進行處理。

第3步:調整控制循環

出于明顯的原因,PID調整有時被稱為“黑手藝”。這個過程可能非常繁瑣和令人沮喪。盡管有許多獲取控制器值的半結構化方法,但為獲得機器人平衡,幾乎總是不可避免地要進行手動調整。

一些注意事項將在這里有所幫助:

此過程需要耐心和觀察:如果更改增益值,可以觀察到哪種行為?

比例收益代表補償的 P 下位。即所供應的電動機功率。

微分增益代表 D 放大所供電功率的效果。

請記住,這一切都與加速度有關。所提供的動力很快就會加速。

從兩個增益都為零開始,然后以小步長開始增加 P (向下)。當漫游器自行停留或多或少時停止。也許太“搖晃”或“搖擺”,但它應該使自己保持幾秒鐘。 (通常稱為“ 穩定振蕩”。)

如果您真的無法獲得穩定振蕩,則可能是物理原因造成的。某些可能的信號是:振幅不均勻(可能表示齒輪,質量或高度問題)或僅沿一個方向移動(可能是缺乏電機動力)

機器人在劇烈振動時(機器人向前和向后移動),并且移動變得越來越野,加速度太大,因為已經提供了太多的動力。

當機器人開始越來越快地運行時,在一個方向上以崩潰告終,由于電力供應不足,機器人無法充分加速。

穩定振蕩意味著不斷的超調,就像坐在秋千上一樣。添加 D (放大)后,過沖將減少(并最終消失)。

使用小步長,將值保持盡可能小,并徹底觀察效果。

當可以從外部調整增益時,生活會變得不那么艱難。草圖(否則必須一遍又一遍地編輯,重新編譯和重建草圖)。我從2個微調電位器開始調整增益。我發現它們很難使用。因為我一開始對增益值一無所知,所以我不得不多次編輯草圖以進行新的縮放(?。????:1024),并且在沒有直接視覺反饋的情況下,我不知道這些更改我是通過轉動花盆來做的。

Android應用最適合我:幾乎所有常量都可以通過輸入一個值來更改。屏幕頂部概述了所有當前值。在屏幕底部,可以得到誤差或角度本身的圖形顯示。請注意,這樣的顯示只是一個延遲的指示(串行和Wifi),而不是真實的實時反饋。該應用程序還可以用于測試一些命令(距離,速度,轉彎)。

一旦我達到了球場標準,我就需要一些半自動化的測試工具,因為幾乎所有更改機器人或其代碼或多或少需要重新調整。特別是在水平控制回路上工作需要多次。

我編寫了一個Python腳本,該腳本使用了通常稱為“旋轉”算法的協調上升算法。可以在這里找到Sebastian Thrun(Udacity,Google,Stanford)對算法的解釋

可以在此處找到腳本:twiddleVert.py

我嘗試在其中構建算法Arduino草圖。盡管它只是安裝在可用的32K內存中,但它使整體周期延遲太多。因此,該腳本旨在在Raspberry上運行,并使用其他一些Python腳本:

control.py,用于向Arduino和與UltraBorgs的I2C通信發送命令。如果未附加Ultraborg,則最好將導入和初始化注釋掉。否則,還需要UltraBorg.py。

messaging.py是用于與Arduino進行實際通信的線程類

linkingStorage.py,它充當主腳本與主腳本之間的共享內存。線程腳本

measurements.py,用于收集,顯示和保存所有測試數據。

注意:

Python腳本將根據進一步的實驗而更改。如果您想避免更改,請克隆存儲庫。

我認為現在已經涵蓋了所有基本知識,并有望幫助您構建自己的平衡器。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    211

    文章

    28522

    瀏覽量

    207531
  • Arduino
    +關注

    關注

    188

    文章

    6472

    瀏覽量

    187347
  • 樹莓派
    +關注

    關注

    117

    文章

    1710

    瀏覽量

    105722
收藏 人收藏

    評論

    相關推薦

    人形機器人“造車”,車企扎堆布局!

    人形機器人率先落地于汽車制造應用已被看好,這將加速人形機器人的商用進程。 ? 圖源:廣汽集團 ? 廣汽 GoMate 多項零部件自研 ? GoMate是一款全尺寸的足人形機器人,全身
    的頭像 發表于 12-30 01:31 ?1705次閱讀
    人形<b class='flag-5'>機器人</b>“造車”,車企扎堆布局!

    【「具身智能機器人系統」閱讀體驗】2.具身智能機器人的基礎模塊

    具身智能機器人的基礎模塊,這個是本書的第二部分內容,主要分為四個部分:機器人計算系統,自主機器人的感知系統,自主機器人的定位系統,自主機器人
    發表于 01-04 19:22

    【「具身智能機器人系統」閱讀體驗】+本互為支持的書

    最近在閱讀《具身智能機器人系統》這本書的同時,還讀了 《計算機視覺之PyTorch數字圖像處理》一書,這本書完全可以視為是互為依托的姊妹篇。《計算機視覺之PyTorch數字圖像處理》是介紹
    發表于 01-01 15:50

    Qorvo助力電動兩輪車性能提升

    電動兩輪車已經成了中國人的出行神器,輕巧便捷,即停即走,接娃買菜輕松拿捏,讓高油價和停車難不再是事。截至2023年底,中國電動兩輪車市場擁有4.2億輛的保有量,幾乎每四就有一輛,且市場仍未見頂。據預測,隨著2023年新國標修訂
    的頭像 發表于 11-15 15:59 ?252次閱讀

    【開源項目】你準備好DIY一款功能強大的機器人了嗎?

    歡迎來到DIY SMARS Robot 機器人制作教程!在本教程中,將教你制作這款功能強大的機器人,它配備了OLED顯示屏、RGB LED燈和可播放旋律的蜂鳴器等新功能。一起來設計電路、組裝PCB
    發表于 11-08 10:53

    七騰機器人:防爆輪式機器人-四八驅全新上線

    今日,七騰機器人有限公司(以下簡稱“七騰機器人”)推出全新產品:防爆輪式機器人-四八驅。該款產品是七騰輪式巡檢機器人產品系列的最新成員,防
    的頭像 發表于 10-21 16:32 ?203次閱讀
    七騰<b class='flag-5'>機器人</b>:防爆輪式<b class='flag-5'>機器人</b>-四<b class='flag-5'>輪</b>八驅全新上線

    兩輪電動車系統介紹與THVD8000在兩輪電動車上的應用

    電子發燒友網站提供《兩輪電動車系統介紹與THVD8000在兩輪電動車上的應用.pdf》資料免費下載
    發表于 09-27 11:12 ?0次下載
    <b class='flag-5'>兩輪</b>電動車系統介紹與THVD8000在<b class='flag-5'>兩輪</b>電動車上的應用

    常見的電動兩輪車BMS架構應用說明

    電子發燒友網站提供《常見的電動兩輪車BMS架構應用說明.pdf》資料免費下載
    發表于 09-12 09:28 ?0次下載
    常見的電動<b class='flag-5'>兩輪</b>車BMS架構應用說明

    維頂機器人獲得B融資

    維頂機器人,一家深耕智能裝備制造領域,以機器人應用為核心,致力于為客戶提供全方位自動化解決方案的高新技術企業,近日宣布成功完成B融資。本輪融資的具體金額雖未對外披露,但吸引了包括沈陽科投在內的多家知名投資機構參與,彰顯了資本市
    的頭像 發表于 08-27 15:45 ?397次閱讀

    Al大模型機器人

    金航標kinghelm薩科微slkor總經理宋仕強介紹說,薩科微Al大模型機器人有哪些的優勢?薩科微AI大模型機器人由清華大學畢業的天才少年N博士和王博士團隊開發,與同行相比具有許多優勢:語言
    發表于 07-05 08:52

    大象機器人完成Pre-B融資,致力打造全新機器人生態!

    近日,深圳市大象機器人科技有限公司(以下簡稱「大象機器人」)近日完成Pre-B融資,本輪融資由清輝投資領投、云卓資本跟投,資金將用于人形機器人產線升級及持續研發迭代。義柏資本擔任長期
    的頭像 發表于 05-22 14:46 ?928次閱讀

    魯大師2023兩輪電動車行業調研報告

    自2021年3月起,魯大師已經連續年發布涵蓋了電動自行車、輕便電動摩托、中高端電動摩托等品類的《電動兩輪車行業報告》。如今,在持續進軍兩輪電動車評測的基礎上,通過線上線下多維度深入調研……
    的頭像 發表于 05-15 10:08 ?334次閱讀
    魯大師2023<b class='flag-5'>兩輪</b>電動車行業調研報告

    兩輪電動車遙控解鎖方案

    兩輪電動車遙控解鎖方案
    的頭像 發表于 05-09 09:33 ?1250次閱讀
    <b class='flag-5'>兩輪</b>電動車遙控解鎖方案

    基于ACM32 MCU的兩輪車充電樁方案,打造高效安全的電池管理

    隨著城市化進程的加快、人們生活水平的提高和節能環保理念的普及,越來越多的人選擇了電動車作為代步工具,而兩輪電動車的出行半徑較短,需要頻繁充電,因此在城市中設置兩輪車充電樁就非常有必要了。城市中的充電
    發表于 03-06 15:10

    工業機器人廠商九眾九完成天使融資

    近日,高工機器人獲悉,九眾九機器人有限公司(下文簡稱“九眾九”)已完成天使融資。九眾九在接受高工機器人調研時表示,此融資資金將主要用于以
    的頭像 發表于 01-23 11:09 ?1388次閱讀
    主站蜘蛛池模板: 亚洲乱亚洲乱妇在线观看| 欧美日韩亚洲一区二区三区在线观看| 国产欧美一本道无码| 男人网站在线观看| 亚洲欧美国产视频| 国产白色视频在线观看w| 蜜桃日本免费观看MV| 影音先锋男人资源813.| 国产精人妻无码一区麻豆 | 亚洲国产精品一区二区动图 | 在线观看国产视频| 精品午夜视频| 亚洲日韩在线观看| 精品蜜臀AV在线天堂| 亚洲男同tv| 精品久久久爽爽久久久AV| 亚洲精品123区| 精品AV综合导航| 一个人免费完整观看日本| 久久国产欧美日韩精品免费| 伊人久久99热这里只有精品| 久久精品中文字幕| 中文成人在线| 暖暖免费 高清 日本社区中文| 中文字幕日本在线mv视频精品| 久久视频在线视频观品15| 2019午夜福利757视频第12集| 麻豆精品乱码WWW久久密| 99精品日韩| 人妻插B视频一区二区三区| 成人免费小视频| 爽爽影院免费观看| 国产香蕉视频在线播放| 夜月视频直播免费观看| 久久一本综合| YELLOW在线观看高清视频免费| 日韩亚洲视频一区二区三区| 国产午夜在线观看视频| 中国老太60old mantv| 欧美乱妇日本无乱码特黄大片| 国产 亚洲 中文字幕 在线|