買書捐殘盟

2011年6月1日 星期三

segway兩輪平衡車控制的規劃議題

綜觀目前有做segway研究的專題,在機身維持平衡的控制器,都會計算車輪的移動角度以及移動角速度(RotationCount),想說為何要考慮車輪移動的角度及轉動角速度?一般說來,只要陀螺儀測到機身有前傾或後仰,得到傾斜角度,不就可以利用所得數據,給予控制?

和專家Bridan交換這個議題,Bridan給予的參考建議如下:
如果 Segway 只是原地平衡直立,我認為偵測車輪角度及加裝一顆光感應器應該足夠,因為從光感應器可以判別傾倒方向,然後控制車輪轉動角度,應該可以直立平衡,當原地直立平衡可以達成,再嘗試前進控制。
以上是我看了您的留言的想法,看來有空要試看看,況且不用再額外添購感應器。個人認為利用車輪角度控制最大的好處,應該是取值快速避免時間延遲誤差。


後來我也再次思考這個問題:測量輪子的轉角與轉角速度,並提供控制量,似乎有一種加速促成的作用。
1.假設一開始輪子的rotationcount()值為0,當segway前傾一個角度θ,控制器驅動車子往前移動,此刻車輪的rotationcount()有讀值且有轉角變化,所以控制器的控制量加成,驅使車子前進速度加快。

2.當車子移動使機身由前傾回到筆直的0度,對機身角度所提供的控制量會減少逼近至0,但因車子仍屬於移動狀態,所以rotationcount()仍有提供相對的控制量,所以極有機會使機身從筆直的狀態往後仰;

3.當機身後仰,控制器提供反向的控制量,促使機身往後退。


但據觀察,當機身由筆直狀態至後仰,因在此狀態交替的瞬間,車輪仍有可能處於前進而非後退,所以提供的控制量有可能有抵消的作用,使控制量減少,也許還是正值,可能仍會促使車子往前走,而這樣的結果反倒加速車子後仰。
所以實際的結果,會變成segway搖擺現象。不過很佩服目前採用上述作法的作品,竟然感受不到機身搖擺。真是厲害,看樣子try error不少時間,才能測驗出一個比較好的參數。

沒有留言:

張貼留言