EOS_2015_Fall Team1 - 拉亞計畫
-
Upload
nctusee -
Category
Engineering
-
view
455 -
download
3
Transcript of EOS_2015_Fall Team1 - 拉亞計畫
嵌入式作業系統期末專題期末報告 拉亞計畫授課老師:黃育綸 教授
執行學生:梁家維
Outline
專題發想 & 目標設定
架構示意圖
系統定義 & 腳位設定
相關知識
成果展示
未來展望
目標設定
有此一計畫的概念主要是源自於看到了如右的短片:
其涉及之主題包括如下:
• 四軸飛行器
• 群集智能
• 雷達掃描後之3D繪圖建構模型
• 特徵比對
• 急難救助
專題發想 & 目標設定–01/04 專題發想
地面爬行?空中飛行
專題發想 & 目標設定–02/04 SCAMPER
S (替代)
C (合併)
A (調適-微調)
M(修改-大幅更動)
P (其他用途)
E (消除)
R (重排)
四軸飛行器 有足地面爬行器
雷達掃描 超音波掃描
載具 + 避障 + 雷達掃描 地圖探測
GPS定位&測速 滑鼠測速
@ 耗電量的問題@ 定點懸停及控制@ 狹窄環境
@ 裝置取得較為不易@ 倒塌範圍空間較小
@ 避障:閃避路上的物體並持續行走@ 水平平衡:保證超音波掃描為水平量測@ 速度偵測 + 雷達掃描:能夠做為地圖拼接的基本概念
@ 災難現場或崩塌的環境下@ 外界定位亦相當困難@ 利用本身量測已走多遠距離以及多快速度前進
基於前一頁之 SCAMPER,我將目標條列於下:
實現四足載具
多控制架構之溝通機制
動作命令實現
自平衡機制
超音波掃描 & 避障功能
搭載 Linux 系統之四足載具
遠端遙控集資料接收
專題發想 & 目標設定–03/04 原先設定目標
專題發想 & 目標設定–04/04 修正後目標
由於時間限制,經由老師建議後修改專題目標如下:
實現四足載具
多控制架構之溝通機制
動作命令實現
姿態估測
紅外線避障功能
搭載 Linux 系統之四足載具
遠端遙控集資料接收
架構示意圖
機械架構如下:
架構示意圖–01/05 機械架構
MPU9250[加速規][電子羅盤][陀螺儀]
電力架構如下:
架構示意圖–02/05 電力架構
12V電池
DC-DC(7V) DC-DC(6V)
MG-90MG-90
MG-90
MG-90
Arduino nano-0
Arduino nano-1
sensors
DC – 12 (V)DC – 7 (V)DC – 6 (V)DC – 5 (V)DC – 3.3 (V)
↑FC-51
[紅外線傳感器]
ADNS-3080[光流感測器]
↓
Raspberry pi
DC-DC(5V)
sensors
HC-05
架構示意圖–03/05 控制器 & 感測器架構
整體架構概念如下:
Raspberry pi
類似於大腦的概念,將所有資訊進行統整並計算相關結果,最後再將運動指令傳送給Arduinonano-0。
Arduino nano-1
類似於受器的概念,將外界偵測到的相關資訊回傳至本身後再進行簡單濾波等動作,並最終傳送至Raspberry pi。
Arduino nano-0
類似於動器的概念,將Raspberry pi之動作或平衡指令對應相關的伺服馬達進行控制。
MG-90MG-90
MG-90
MG-90
Arduino nano-1
Raspberry pi
sensors
Arduino nano-0
sensors
手機
控制訊號 & 感測訊號架構如下:
架構示意圖–04/05 控制 & 感測訊號傳輸架構
MG-90MG-90
MG-90
MG-90
Arduino nano-1
Arduino nano-0
FC-51
I2CUARTSPIPinWIFIUART(bluetooth)
ADNS-3080
MPU-9250
Raspberry pi
PC
HC-05
手機
作業系統架構如下:
Linux 執行的程式在固定時間會進入系統中斷並執行以下:
量測加速度、角速度及地磁並計算得到姿態(其中會開多個 thread 進行讀取)。
將姿態利用 socket 透過 wifi 回傳給電腦端並顯示姿態。
收取使用者所下達之命令並做相對應動作。
傳送訊息給 Arduino_0 & Arduino_1 做相對應動作及回收資料。
回傳目前狀態給使用者。
架構示意圖–05/05 作業系統架構
系統定義 & 腳位設定
Leg - 0
Leg - 1
Leg - 2
Leg - 3
D2D3 D4
D5D6 D7
D8 D9D10
D11 D12D13
右前
右後 左後
左前
系統定義 & 腳位設定–01/04四肢 & 馬達對應腳位定義
Arduino nano–0 功能
接收 Raspberry pi 之動作命令
做為位置控制用
接收 Arduino nano–1 之動作命令
做為緊急事件反應用
送出各關節角度命令
達成所收到之動作命令
系統定義 & 腳位設定–02/04Arduino nano – 0 (動器)
To Arduino nano-1 [UART]
[I2C]
To servo motor [pin] (leg) – (part)
RXTX
0–1
SDASCL
0–0
0–21–0
1–11–2
2–02–1
2–23–0
3–1 3–1
7V
Gnd
Arduino nano–1 功能
傳送量測訊號至 Raspberry pi
ADNS-3080 – 移動座標值
傳送緊急動作命令至 Arduino–0
做為避障動作用
系統定義 & 腳位設定–03/04Arduino nano – 1 (受器 & 腦幹)
RXTX
SDASCL
F
SSMOSI
MISO SCK
7V
Gnd
NCSRST
To Arduino nano-1 [UART]
[I2C]
To FC-51 [pin](Forward)
To ADNS-3080 [SPI]
Raspberry Pi 功能
收集 MPU-9250 接收之 9 軸之資料
進行身體姿態的顯示
接收使用者所下之動作命令並傳送至Arduino_0進行動作
傳送目前動作及狀態給使用者
系統定義 & 腳位設定–04/04 Raspberry Pi (大腦)
SDASCL Gnd
VCC
TXRX
SDAAD0
SCL
VCC
Gnd NCS
[I2C]
To HC-05 [UART]
To MPU-9250 [SPI]
相關知識
相關知識 – 01/08座標轉換 – 1/4 –等效示意圖
-z
y
x
• x = 0
(把整個肢段壓在 yz平面上時)
• P(x, y, z)
tan( )x
y
1tan ( )x
y
2 2( )offsetL Z T Coxa
Cosine Rule
2 2 2 2 cosa b c bc A 2 2 2 2 cosb a c ac B 2 2 2 2 cosc a b ab C
1
1 cos ( )offsetZ
L
2 2 2
22( )( )cos( )Tibia Femur L Femur L 2 2 2
1
2 cos2( )( )
Tibia Femur L
Femur L
2 2 21 1cos ( ) cos
2( )( )
offsetZ Tibia Femur L
L Femur L
1 2
相關知識 – 02/08座標轉換 – 2/4 –逆運動學–1
•已知的常數• Coxa = length_c
• Femur = length_a
• Tibia = length_b
• Zoffset = z_absolute
• length = length_side
Cosine Rule
2 2 2 2 cosa b c bc A 2 2 2 2 cosb a c ac B 2 2 2 2 cosc a b ab C
2 2 21cos
2( )( )
L Tibia Femur
Tibia Femur
• P(x, y, z)
相關知識 – 03/08座標轉換 – 3/4 –逆運動學–2
•
•
•
0x 2 2T x y
1tan ( )x
y
atan2(y,x)
sqrt(pow(x,2) pow(y,2))T
•
•
•
0x 2 2T x y
1tan ( )x
y
atan2( y, x)
1*sqrt(pow(x,2) pow(y,2))T
•
•
•
2 2 21 1tan ( ) cos
2( )( )
offsetZ Tibia Femur L
H Femur L
atan(z,H) + acos((pow(femur_len,2) - pow(tibia_len,2) + pow(H,2) + pow(z,2))
/ (2 * femur_len * sqrt(pow(H,2) + pow(z,2)))2 2 2
1cos2( )( )
L Tibia Femur
Tibia Femur
acos((pow(femur_len,2) + pow(tibia_len,2) - pow(H,2) - pow(z,2))
/ (2 * femur_len * tibia_len))
H T Coxa
T - coxa_lenH
H
相關知識 – 04/08座標轉換 – 4/4 –逆運動學–3
2 2_ (2 x_default length _side) y_steptemp a
_ 2 (y_start y_step) length _sidetemp b
2 2_ (2 x_default length _side) (2 y_start y_step length _side)temp c
•假設以三個肢段固定並轉動剩餘肢段,其轉動示意圖以及簡化如圖所示:
•利用 Cosine Rule可得:1 2 2 2cos ((temp_a) (temp_b) (temp_c) )
_2 temp_a temp_b
temp
相關知識 – 05/08旋轉
相關知識 – 06/08步態 – 1/2 –前進
Initial State Step-01(site_now[2][1] == y_start)
Step-02(site_now[2][1] != y_start)
step != 0step--
step != 0step--
breakstep == 0
step == 0step
Initial State Step-01(site_now[3][1] == y_start)
Step-02(site_now[3][1] != y_start)
step != 0step--
step != 0step--
breakstep == 0
step == 0step
相關知識 – 07/08步態 – 2/2 –後退
相關知識 – 08/08其餘相關知識
姿態估測 – 四元數法(Quarterion)
資料傳輸
UART、SPI、I2C、Bluetooth、wifi
避障演算法
...
成果展示
成果展示型態變化
未來展望
未來展望 – 01/04總體
耗電量估測 & 計算
訊號傳輸穩定性 & 時序建立
Raspberry pi 散熱
電路板 layout
輕量化
未來展望 – 02/04底層 (Arduino_0 part)
四個肢段獨立控制
角度運行穩定性控制
中斷時序確立
多組步態建立
步態穩定性控制
未來展望 – 03/04外界訊號量測層 (Arduino_1 part)
ADNS-3080 量測穩定性
資料傳輸穩定性 & 規格建立
避障演算法 & 穩定性
中斷時序確立
加入超音波量測模組
超音波量測 & 方位對應(伺服馬達控制)
未來展望 – 04/04決策 & 資料傳輸層 (Raspberry pi part)
...很多...