EOS_2015_Fall Team1 - 拉亞計畫

34
嵌入式作業系統期末專題 期末報告 拉亞計畫 授課老師:黃育綸 教授 執行學生:梁家維

Transcript of EOS_2015_Fall Team1 - 拉亞計畫

Page 1: EOS_2015_Fall  Team1 - 拉亞計畫

嵌入式作業系統期末專題期末報告 拉亞計畫授課老師:黃育綸 教授

執行學生:梁家維

Page 2: EOS_2015_Fall  Team1 - 拉亞計畫

Outline

專題發想 & 目標設定

架構示意圖

系統定義 & 腳位設定

相關知識

成果展示

未來展望

Page 3: EOS_2015_Fall  Team1 - 拉亞計畫

目標設定

Page 4: EOS_2015_Fall  Team1 - 拉亞計畫

有此一計畫的概念主要是源自於看到了如右的短片:

其涉及之主題包括如下:

• 四軸飛行器

• 群集智能

• 雷達掃描後之3D繪圖建構模型

• 特徵比對

• 急難救助

專題發想 & 目標設定–01/04 專題發想

地面爬行?空中飛行

Page 5: EOS_2015_Fall  Team1 - 拉亞計畫

專題發想 & 目標設定–02/04 SCAMPER

S (替代)

C (合併)

A (調適-微調)

M(修改-大幅更動)

P (其他用途)

E (消除)

R (重排)

四軸飛行器 有足地面爬行器

雷達掃描 超音波掃描

載具 + 避障 + 雷達掃描 地圖探測

GPS定位&測速 滑鼠測速

@ 耗電量的問題@ 定點懸停及控制@ 狹窄環境

@ 裝置取得較為不易@ 倒塌範圍空間較小

@ 避障:閃避路上的物體並持續行走@ 水平平衡:保證超音波掃描為水平量測@ 速度偵測 + 雷達掃描:能夠做為地圖拼接的基本概念

@ 災難現場或崩塌的環境下@ 外界定位亦相當困難@ 利用本身量測已走多遠距離以及多快速度前進

Page 6: EOS_2015_Fall  Team1 - 拉亞計畫

基於前一頁之 SCAMPER,我將目標條列於下:

實現四足載具

多控制架構之溝通機制

動作命令實現

自平衡機制

超音波掃描 & 避障功能

搭載 Linux 系統之四足載具

遠端遙控集資料接收

專題發想 & 目標設定–03/04 原先設定目標

Page 7: EOS_2015_Fall  Team1 - 拉亞計畫

專題發想 & 目標設定–04/04 修正後目標

由於時間限制,經由老師建議後修改專題目標如下:

實現四足載具

多控制架構之溝通機制

動作命令實現

姿態估測

紅外線避障功能

搭載 Linux 系統之四足載具

遠端遙控集資料接收

Page 8: EOS_2015_Fall  Team1 - 拉亞計畫

架構示意圖

Page 9: EOS_2015_Fall  Team1 - 拉亞計畫

機械架構如下:

架構示意圖–01/05 機械架構

Page 10: EOS_2015_Fall  Team1 - 拉亞計畫

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

Page 11: EOS_2015_Fall  Team1 - 拉亞計畫

架構示意圖–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

手機

Page 12: EOS_2015_Fall  Team1 - 拉亞計畫

控制訊號 & 感測訊號架構如下:

架構示意圖–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

手機

Page 13: EOS_2015_Fall  Team1 - 拉亞計畫

作業系統架構如下:

Linux 執行的程式在固定時間會進入系統中斷並執行以下:

量測加速度、角速度及地磁並計算得到姿態(其中會開多個 thread 進行讀取)。

將姿態利用 socket 透過 wifi 回傳給電腦端並顯示姿態。

收取使用者所下達之命令並做相對應動作。

傳送訊息給 Arduino_0 & Arduino_1 做相對應動作及回收資料。

回傳目前狀態給使用者。

架構示意圖–05/05 作業系統架構

Page 14: EOS_2015_Fall  Team1 - 拉亞計畫

系統定義 & 腳位設定

Page 15: EOS_2015_Fall  Team1 - 拉亞計畫

Leg - 0

Leg - 1

Leg - 2

Leg - 3

D2D3 D4

D5D6 D7

D8 D9D10

D11 D12D13

右前

右後 左後

左前

系統定義 & 腳位設定–01/04四肢 & 馬達對應腳位定義

Page 16: EOS_2015_Fall  Team1 - 拉亞計畫

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

Page 17: EOS_2015_Fall  Team1 - 拉亞計畫

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]

Page 18: EOS_2015_Fall  Team1 - 拉亞計畫

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]

Page 19: EOS_2015_Fall  Team1 - 拉亞計畫

相關知識

Page 20: EOS_2015_Fall  Team1 - 拉亞計畫

相關知識 – 01/08座標轉換 – 1/4 –等效示意圖

-z

y

x

Page 21: EOS_2015_Fall  Team1 - 拉亞計畫

• 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

Page 22: EOS_2015_Fall  Team1 - 拉亞計畫

•已知的常數• 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

Page 23: EOS_2015_Fall  Team1 - 拉亞計畫

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

Page 24: EOS_2015_Fall  Team1 - 拉亞計畫

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旋轉

Page 25: EOS_2015_Fall  Team1 - 拉亞計畫

相關知識 – 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

Page 26: EOS_2015_Fall  Team1 - 拉亞計畫

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 –後退

Page 27: EOS_2015_Fall  Team1 - 拉亞計畫

相關知識 – 08/08其餘相關知識

姿態估測 – 四元數法(Quarterion)

資料傳輸

UART、SPI、I2C、Bluetooth、wifi

避障演算法

...

Page 28: EOS_2015_Fall  Team1 - 拉亞計畫

成果展示

Page 29: EOS_2015_Fall  Team1 - 拉亞計畫

成果展示型態變化

Page 30: EOS_2015_Fall  Team1 - 拉亞計畫

未來展望

Page 31: EOS_2015_Fall  Team1 - 拉亞計畫

未來展望 – 01/04總體

耗電量估測 & 計算

訊號傳輸穩定性 & 時序建立

Raspberry pi 散熱

電路板 layout

輕量化

Page 32: EOS_2015_Fall  Team1 - 拉亞計畫

未來展望 – 02/04底層 (Arduino_0 part)

四個肢段獨立控制

角度運行穩定性控制

中斷時序確立

多組步態建立

步態穩定性控制

Page 33: EOS_2015_Fall  Team1 - 拉亞計畫

未來展望 – 03/04外界訊號量測層 (Arduino_1 part)

ADNS-3080 量測穩定性

資料傳輸穩定性 & 規格建立

避障演算法 & 穩定性

中斷時序確立

加入超音波量測模組

超音波量測 & 方位對應(伺服馬達控制)

Page 34: EOS_2015_Fall  Team1 - 拉亞計畫

未來展望 – 04/04決策 & 資料傳輸層 (Raspberry pi part)

...很多...