SlideShare ist ein Scribd-Unternehmen logo
1 von 23
EV3+MonoBrick+C#
Microsoft MVP .NET
Tomoaki Masuda
Moonmile Solutions
倒立振子ロボットを動かす
 LEGO Mindstorms EV3 で
倒立振子ロボットを動かす
MonoBrickな話
LEGO Mindstorms EV で倒立振子
 レゴ® マインドストーム® で地球を探査
 ET ロボコン 用の EV3 サポートサイト
 Microsoft の探査ロボットや ET ロボコンの制御に
MonoBrick が使われている。
MonoBrickをインストール
 BALANC3R のコードを C# に移植する
 moonmile/MonoBalancer 移植コード
MonoBrickをインストール
 MonoBrick.DK から SDメモリイメージをダウ
ンロード
 EV3 上に Linux + Mono 環境を
作れる。
.NET Framework 4.0 相当
async/await がない orz
Bluetooth で接続
 Bleutooth で
アクセスポイント接続
 MonoBrick へ 10.0.1.1 で
接続できる
Xamarin Studio で起動
 Xamarin Add-in を入れると
Xamarin Studio からデバッグ実行できる
Visual Studio + WinSCP
 Visual Studio 上でビルドして、
WinSCP でコピーする
Tera Term で起動
 10.0.1.1 に SSH 接続
 Tera Term で動く
制御工学のキツイ話
倒立振子ロボットが、なぜ倒立するかを自力で解く
制御工学な話
 運動方程式
 簡易的に二次元で解く
 ラグラジュアン方程式で解く
 (x, y) → (θ, φ)
 状態方程式
 車輪の角速度(θ), 本体の角度(φ)
 PID制御
 Kp, Ki, Kd
 モーター制御(PWM パワー)
座標系
R
θ
φ
L
M, Jφ
m, Jw
x
y
yb
ym
m: 車輪の質量
R: 車輪の半径
M: 車体の質量
L: 重心までの距離
Jw: mR2/2 車輪モーメント
Jφ: ML2/3 車体モーメント
運動方程式
運動、位置、回転エネルギー
ラグランジュ方程式で (x,y)を(θ,φ)へ
倒立状態なので φ≃0 と考える
連立方程式を解くと状態方程式が出る(未)
制御工学
 現在値から目的の値へ近づける
ブロック線図
フィードバック制御
はじめての制御工学から引用
PID制御
 時刻tが入る
 ラプラス変換する
はじめての制御工学から引用
ナイキストの安定判別法で導出(未)
 Kp: t時点での誤差
 Ki: t時点までの誤差積分
 Kd: t時点の微分値
誤差を調節して倒立
参考文献
 ET ロボコン 用の EV3 サポートサイト
http://sourceforge.net/p/etroboev3/wiki/MonoBrickWin/
 レゴ® マインドストーム® で地球を探査
https://channel9.msdn.com/Series/Microsoft-Virtual-Academy-Japan/lego-mindstorms-programming-curriculum
 MonoBrick EV3 Firmware & Xamarin Add-in
http://www.monobrick.dk/software/ev3firmware/
 NXTway-GS (Self-Balancing Two-Wheeled Robot) Controller Design
http://www.mathworks.com/matlabcentral/fileexchange/19147-nxtway-gs--self-balancing-two-wheeled-robot--controller-
design
 ダウンロード - レゴ®マインドストーム LEGO.com
http://www.lego.com/ja-jp/mindstorms/downloads
 倒立振子の研究
http://www.instructables.com/id/%E5%80%92%E7%AB%8B%E6%8C%AF%E5%AD%90%E3%81%AE%E7%A0%94%E7%A9%B6/
 みのくらロボット
http://minokura.net/works/wheelpendulum.html
 はじめての制御工学 (KS理工学専門書)
http://www.amazon.co.jp/ebook/dp/B00TZ8X61I/
 ラグランジュ方程式の利点
http://homepage2.nifty.com/eman/analytic/lagrange2.html

Weitere ähnliche Inhalte

Ähnlich wie EV3 + MonoBrick + C#

Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
CODE BLUE
 
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Atsushi Eno
 

Ähnlich wie EV3 + MonoBrick + C# (20)

Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろうCocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
Cocos2d-x x iBeacon Bluetoothを使ったゲームを作ろう
 
JapaneseBertOnDocker.pptx
JapaneseBertOnDocker.pptxJapaneseBertOnDocker.pptx
JapaneseBertOnDocker.pptx
 
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
実践 Web App for Containers! ~コンテナ開発の基礎からDevOps環境の構築まで~
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
 
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
Step-Oriented Programming による任意コード実行の可能性 by 坂井 弘亮
 
20200809 jcdug lt
20200809 jcdug lt20200809 jcdug lt
20200809 jcdug lt
 
Mobile-first, Cloud-first のその先へ ~ Microsoft が描く Web/Mobile の未来
Mobile-first, Cloud-first のその先へ ~ Microsoft が描く Web/Mobile の未来Mobile-first, Cloud-first のその先へ ~ Microsoft が描く Web/Mobile の未来
Mobile-first, Cloud-first のその先へ ~ Microsoft が描く Web/Mobile の未来
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
[Cloud OnAir] 開発ツールと踏み出す Kubernetes への第一歩 2019年9月19日 放送
[Cloud OnAir] 開発ツールと踏み出す Kubernetes への第一歩 2019年9月19日 放送[Cloud OnAir] 開発ツールと踏み出す Kubernetes への第一歩 2019年9月19日 放送
[Cloud OnAir] 開発ツールと踏み出す Kubernetes への第一歩 2019年9月19日 放送
 
Microsoft azureとdockerとansibleと
Microsoft azureとdockerとansibleとMicrosoft azureとdockerとansibleと
Microsoft azureとdockerとansibleと
 
BricRoboEV3RT開発環境の使い方
BricRoboEV3RT開発環境の使い方BricRoboEV3RT開発環境の使い方
BricRoboEV3RT開発環境の使い方
 
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
【de:code 2020】 Azure Bot Services を使って Teams bot を開発する
 
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
bicep dev container
bicep dev containerbicep dev container
bicep dev container
 
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot Arm
 
[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる[Intermediate 01] イントロダクション / Bitcoin を動作させる
[Intermediate 01] イントロダクション / Bitcoin を動作させる
 

EV3 + MonoBrick + C#