Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 20866|回復: 22
打印 上一主題 下一主題

[分享]兩輪平衡車

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-10-18 17:17:15 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
畢業後等當兵這段期間真的是有夠閒
剛好去高雄看機器人展有看到兩輪機器人
而樓下又有新版segway可以玩
既然如此 乾脆也弄一台來玩玩吧

材料...說真的要搞起來還必須花不少...
還好我有實驗室的報廢品可以撿來改裝加減用XD
----------------------------------------------------------
首先機體部分..就隨便電子材料行買個鋁製整理盒
馬達部份 兩顆帶有減速齒的DC馬達

輪子的話拿遙控飛機用的輪子擴孔塞進軸裡....

sensor部分的 gyro我拿實驗室摔機壞掉的直升機用陀螺儀剪線接類比訊號出來用
加速規呢..在Y***O拍賣買的  一顆NT250 3軸+/-2G 銲好的封裝

(說實在我也不知道為啥他焊好的還可以這麼便宜 但還不錯用)
只是..需要自己弄放大跟濾波電路..要不然 嘿嘿...一定摔的很難看
A/D 部分用了microchip MCP3208 12bit ADC
馬達控制部份  我用了L293D這顆IC來控正反轉  轉速自己寫code產生PWM

控制部份用了一顆PIC 18F258 超頻成40MHz

而控制率用了fuzzy
---------------------------------------
整體流程 :
1. 收AD資料得到原始加速度跟角速度
2. 加速度求傾角
3. 原始傾角跟角速度進2階互補濾波估測真實傾角
4. 角度跟角速度進控制率
5. 得到的output丟給馬達控制板輸出
6. 回到第一步





目前整體機構總重1.4公斤
有點重 馬達都是40~60%左右在修正(當然我機構設計也不好)
所以還是會在中立點微晃...
但是還站的起來 受到小擾動沒問題
成本除了那顆陀螺儀外其他的應該都不貴...1.5K內可以搞定
甚至IC我都是跟國外microchip要sample不用錢
借此說明希望大家也能建造自己的mini segway囉

不囉唆 看影片吧
影片中間我刻意丟重物在他身上...
http://tw.youtube.com/watch?v=uOy-eOt2QiI
2#
 樓主| 發表於 2007-10-19 00:30:14 | 顯示全部樓層
fuzzy寫法喔
這恐怕不是三言兩語可以寫完的吧
定義歸屬函數範圍形狀 設計規則庫
然後一堆if判斷 然後重心法或其他方法求output
光C程式碼就幾十行了吧
建議去看fuzzy的書  自然會寫
當然我記得有些書會附source code
不過大部分都寫的很複雜..因為要用在各種情況
當然你必須看懂然後消化去簡寫囉

不過如果你只是要學怎嚜寫控制  最簡單的恐怕就是PID了吧
C語言程式碼不超過5行就搞定
3#
 樓主| 發表於 2007-11-13 00:18:22 | 顯示全部樓層
請教white 大大幾個問題
1、您有使用kelman filter嗎?
     ans: 有..後期改良姿態部分是用kalman filter估測
2、您有acceleremeter  是使用  sin-1 (2軸) 還是  tan-1(1軸)  ?
     ans: 正確來說要用atan2   懂INS領域的大概都知道 roll pitch可以用 atan2(ax,az) atan2(ay,sqrt(ax^2+ay^2+az^2))
3、小弟有在您的youtube 裡面發現您有把車子從靜止  直接站起,這是利用全速衝刺讓車身立起嗎?
     ans: 基本上只要馬達夠力 還有姿態不會估的太差就可以這樣 但是我反覆測試還是跟主要的機構配置有關 (輪子大小跟你的重心位置)
4、您假如加入了encoder回授是否可以更穩?
      ans: 沒錯..有encoder就可以定位在同以點...目前我是靠加大了控制器的I gain讓他強制收斂在原地附近
5、您有使用強健系統或是適應性系統嗎?
     ans: 我測過了fuzzy..PID..sliding mode control....結論是PID最好用 ...但是目前是使用 PID+sliding mode 混合控制
謝謝您

[ 本帖最後由 white 於 2007-11-13 00:24 編輯 ]
4#
 樓主| 發表於 2007-11-13 00:52:31 | 顯示全部樓層
sorry 前面有部分打錯  一個是atan2(ax,az) 另一個應該是atan2(ay,sqrt(ax^2+az^2))
哪個是roll 哪個是pitch看你怎麼定義座標系 還有 出來是rad喲

參考阿... 我都是翻書的耶
只要是講INS或是INS\GPS 整合的書都應該會提到
就是從一堆旋轉方程式或 DCM(direct cosine matrix)導來的
一堆數學而已......
如果你有roll pitch同時存在可以用這個方式估"靜態"姿態
如果你只有一軸的話 其實也可以用asin之類的方式去估也可以拉
還有 這個只是利用加速度估"靜態"姿態  因為只要你在移動
加速度就會有變化 你就不知道這個變化是因為你姿態在變還是有額外加速度在變化
所以這時候就需要filter進來  整合這個姿態跟陀螺儀積分後的姿態囉
(因為兩個都不準 一個受加速度影響 一個積分會飄移)

[ 本帖最後由 white 於 2007-11-13 01:04 編輯 ]
5#
 樓主| 發表於 2008-5-25 09:45:49 | 顯示全部樓層

回復 10# 11# 的帖子

to lvzhong
Q:將加速度計的傾斜角+陀螺儀的角速度做真實傾斜角這個部份是用怎麼做的?
A:加速度傾角跟陀螺儀角速度積分得到的兩個不太準的角度值(一個會受動態影響 一個積分會爆炸)
   一起丟入filter估測一個近似真實的角度
Q:若我是只用PID做 我不是只要將我的cmd(傾角)進控制器算就可以嗎?那你多一個角速度是做什麼用途呢
A:兩個角度進filter後只會輸出一個估測角度~所以直接一個角度進控制器(不過我是兩層控制器 內迴圈控角速度 外迴圈控角度)

to sansam
那個輪胎我是去遙控飛機模型店買的 只要跟他講要買大型遙控飛機的橡皮輪胎就可以了
(遙控飛機輪胎有兩種 一種是橡皮的 一種是類似海綿的)
6#
 樓主| 發表於 2008-5-28 09:19:45 | 顯示全部樓層

to lvzhong

1.yep~不會的話可以去參考數值分析的書囉..相信會更增加你的功力
2.我忘了當初的截止頻率設在哪了 要回去找code看..因為後來我就改用kalman filter了
   這個效果比互補率波好太多了
3.我畫個簡圖給你看~你如果有學過自動控制應該會看的懂
   
大致上就是有兩組PID gain (內迴圈其實用P就夠了)
先計算內迴圈..會得到一組你要輸出的值
再算外迴圈 也會得到一組值
最後的總輸出就是兩者相加囉

祝你早日成功喲~成功了也記得po個文讓大家欣賞欣賞

[ 本帖最後由 white 於 2008-5-28 09:21 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-13 08:35 , Processed in 0.212980 second(s), 10 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表