Robo-剣 Conference 2014/10/04(Sat)- Robo-剣におけるMATLAB/Simulinkの活用 -MathWorks Japan三田宇洋© 2012 The MathWorks, Inc.1

Robo-剣 Conference

10月04日土曜日 講習会
会場: 県立青少年センター
当日のスケジュール:13:00-一般社団法人二足歩行ロボット協会理事長挨拶
13:05- ROBO-ONE-Light 上位ロボット製作者
14:00- ROBO-ONE 上位入賞ロボット製作者
15:00- ROBO-ONE 殿堂入りロボット開発者
16:00- ROBO-剣 第一回大会優勝者
17:00- ROBO-剣 開発ツールコンテスト優秀者
17:55-閉会の挨拶

2

3. MATLABとSimulinkの使い方 30min

3

MATLABとは？
今回、競技参加者の皆さんに貸し出すツールは下記の通りです。
(1) MATLAB®
数値計算を得意とするインタープリター型スクリプト言語(2) Simulink®
時間の概念を持つブロック線図環境のシミュレータ(3) StateFlow®
状態遷移図、フローチャート等で表現されるシーケンス制御ロジックを記述するSimulinkのオプション(4) SimMechnicsTM
Simulink上での機構系(剛体)のモデリングオプション(5) SimscapeTM
Simulink上での物理モデリングの基本環境(6) Simulink® CoderTM
Simulinkのモデルの等価Cコード自動生成（7） Real-Time Windows Target
Simulinkのモデルのリアルタイム動作(8) Image Acquisition ToolboxTM
実画像データとMATLABのインターフェース(9) DSP System ToolboxTM
信号処理のオプションライブラリ(10) Image processing ToolboxTM
画像処理の基本4

MATLABをうまく使いこなそう

ロボットモデル作成に効率の良いアプローチ真似できるところは真似る。
– 標準デモ– 参考文献（特にこれは参考にしよう）– 市販の文献MathWorks HPの情報を活用しよう。
– FAQ– http://www.mathworks.co.jp/support/product/technicalsolutions-index.html– MATLAB Central– http://www.mathworks.co.jp/matlabcentral/5

参考文献の紹介[1] 三田,垂直多関節型ロボットの軌道計画におけるモデルベース設計 - SimMechanics によるロボットの機構系モデリングとスプライン曲線による参照軌道の計算
http://www.mathworks.co.jp/mason/tag/proxy.html?dataid=11792&fileid=58416, MathWorks
Japan,2010[2] 三田, 2リンクロボットマニピュレータのDCモータによる位置制御へのモデルベース開発の適用- 機構系と電気系のマルチドメインモデリングとPID 制御パラメータの最適チューニング http://www.mathworks.co.jp/mason/tag/proxy.html?dataid=11791&fileid=61536, MathWorks
Japan,2010[3] ベストテクノロジー社,ホームページ, http://www.besttechnology.co.jp/index.php,ベストテクノロ
ジー社[4] ベストテクノロジー社,技術資料, http://www.besttechnology.co.jp/index.php ,ベストテクノロ
ジー社[5] 三田編著、 高島、宅島、田中著:MATLAB/Simulinkとモデルベース設計による2足歩行ロボット・シミュレーション, 2007, 毎日コミュニケーションズ社

注：[1],[2]は、本競技に大いに参考になります。

6

この本も参考になります。
注：文献[1],[2]と一部内容が重なります。

7

MATLABの特徴



インタープリター型スクリプト言語
数学(行列・ベクトル、関数)計算が得意数百もの数学関数



この競技で予想される使い方

– スクリプト 計算、パラメータ定義
– 関数化

8

Simulinkの基本
静的システム

代数方程式
Etc.

動的システム

常微分方程式（連続時間）
差分方程式（離散時間）

連続時間システム
離散時間システム

線形システムSimulinkで表現できるシステムは？

非線形システムマルチレートシステム（異なるサンプリングレート）
ハイブリッドシステム（連続時間＋離散時間）
イベントドリブンシステム＜非線形要素＞
摩擦
空気抵抗
ギヤのすべり量ヒステリシスEtc.
9

モデリング（直接表現）

運動方程式はmx  (cx)  (kx)  u
整理するとmx  cx  kx  u
初期値は

x(0)  0, x(0)  0, x(0)  0 とする。
xkkx
・cx

muc

図 機械系ダイナミクスの例（１自由度振動系）
11

STEP1

微積分変数の位置関係

x
加速度

x
速度x
位置

２階の微分方程式13

サブシステム化

サブシステム化したい箇所を選択（マウス左クリック 範囲指定）
16

ロボットモデルに有益なデモ

コマンドウィンドウから>>demo[Enter]

各ツールのユーザーガイド
関数例
デモなどが見れる。

20

MATLAB
参考になりそうな標準デモ(1)

デモ名：スペクトル解析のための FFT
ファイル名：fftdemo.m21

Simulink
参考になりそうな標準デモ(1)

デモ名：跳ねるボールのシミュレーション
ファイル名： sldemo_bounce.mdl
エッセンス：連続系(sの世界)のモデリングが理解できる。

22

Stateflow
参考になりそうな標準デモ(1)

デモ名：列挙型のデータ型を使った CD プレーヤー/ラジオのモデル化
ファイル名：sf_cdplayer.mdl
エッセンス：Stateflowの基本的な機能が網羅

23

Stateflow
参考になりそうな一般デモ(2)シミュレーションモデル 倒立振り子

フィードバック制御

Stateflowによるモード管理モード制御

コントローラモデル(invert_pend_sim_vr.mdl)

24各モードのコントローラロジック

①

③

④

②

⑤

最適レギュレータとオブザーバ[1] Swingモード：腕(Arm)を定周期で左右に振り、振子(Pend)を揺動させ徐々に鉛直上向きに近づけるモード。
[2] Wake Upモード：振子全体の安定化制御を行うモード。
[3] Hold モード:制御を停止したモード。

25

シミュレーションモデル 上級編
Stateflowによるモード管理ロジック

26

SimMechanics First Generation
参考になりそうな標準デモ(1)First Generation:先代までのSimMechanics
デモ：Robot Arm with Virtual Reality Scene
ファイル名：mech_robot_vr.mdl
エッセンス：多リンクのロボットアームのモデル化のイメージ

(A)
27

設定

28

SimMechanics First Generation
参考になりそうな標準デモ(1)

デモ：Four Bar Mechanism with Custom Body Visualization Data
ファイル名：mech_four_bar_vis.mdl
エッセンス：4リンク、ボディ(剛体)とJoint(関節：自由度)の関係
STLファイルの張り方

29

SimMechanics Second Generation
参考になりそうな標準デモ(1)

デモ：How to Build a Model
ファイル名：sm_double_crank_aiming.m

30

Simscape
参考になりそうな標準デモ(1)

デモ：永久磁石DCモータ
ファイル名： ssc_dcmotor.mdl
エッセンス：Simscape標準ブロックでの電気＋機械モデルの作り方31

Simscape
参考になりそうな標準デモ(2)

デモ：カスタマイズしたコンデンサ ライブラリを使ったモデル
ファイル名：ssc_ultracapacitor.mdl
エッセンス：Simscape言語によるオリジナルモデルの作り方32

Simulink 3D Animation
参考になりそうな標準デモ(1)

デモ：Manipulator Moving a Load with use of Global Coordinates
ファイル名：vrmanipul_global.mdl
エッセンス：ロボットアームのVRML表示

33

Image Processing Toolbox
参考になりそうな標準デモ(1)

デモ：動いている振子の長さを検出
ファイル名：ipexpendulum.m
エッセンス：静画像の処理

34

Computer Vision Toolbox
参考になりそうな標準デモ(1)

デモ：Abandoned Object Detection
ファイル名：vipabandonedobj.mdl
エッセンス：動画像の処理

35

サーボモータのモデル（連続系）
Subsystem版r＋C(s)

G(s)

－y

黄：パルス状の設定値
紫：制御量(ssc_dcmotor_2_fb2.mdl)

43

Robo-剣 Seminar 2014/10/04(Sat)- Robo-剣
MATLAB/Simulinkの活用 –「2リンクマニピュレータ編」© 2012 The MathWorks, Inc.
44

[2]-(3) シミュレーションモデル
⑭⑬①②③④⑤⑥⑦⑮⑨⑪⑧⑯⑰⑩⑫64

[2]-(5) シミュレーション結果(マニピュレータの軌跡)

リンク2

リンク1

リンク2の先端

サンプル時間0.1秒
73垂直多関節ロボットとデモロボットの相似~概形

図3-1 miniCRANE450の概形5)((株)ダイナックス)

Fig.1 Dynamixelシリーズで作成した垂直多関節ロボット((株)ベストテクノロジー)
86

ロボットのシミュレーションモデルの作成
例を見て行きましょう。

このロボットに円軌道を書かせます。

Fig.1 Dynamixelシリーズで作成した垂直多関節ロボット((株)ベストテクノロジー)

90

SimMechanicsによるリンク機構作成
モデル

SimMechanicsのViewer(慣性楕円体表示)(sample_kinematics.mdl)

96

ロボットの初期位置
CG(h1/2-23/2, 0, -w1/2)@CS1
(J3)

(B3)

(B4)

CG (109.5/2,0,-w1/2)@CS1

CS1(0,0,0)@ad

CS2 (109.5,0,0)@CS1
CS2 (72,0,0)@CS1
CS1 (0,0,0)@ad(J2)

CS2 (0, w1/2,25)@CS1
CG (0.0.10)@CS1(B2)

注：10 想定値
CS1 (0,0,0)@ad(J1)
CS2 (0,0,w1+7)@CS1

CS3 (0,0,-w1/2)@CS1

仮定
各リンクはモータにより作られる。
回転自由度を接続する金具は慣性モーメント微小、質量微小として無視。

CG(-(h1/2-23/2),0,w1/2+7)@CS1(B1)(B5)

l1=26e-3;%[m]h1=50e-3;%[m]w1=38e-3;%[m](J4)CS1 (0,0,0)@ad(J0)0109.5

CS2@B2=CS1@B3(B3)38

CG@B37285

 23 (J2)

CG@B2(想定) 23(B2)(J1)

 232525

 23

CG@B1
CS2@B1= CS1@B2(B1)z0

CS1@B1

0x0y026(B5)0y05011.5
z038(J3)(B4)
CS2@B4x097

順運動学の解析
エンドエフェクタの座標

Rx  cos 1 cos  2   3 l3  cos 1 cos  2 l 2R y  sin 1 cos 2   3 l3  sin 1 cos  2 l 2Rz   sin  2   3 l3  sin  2 l 2  l1  l0

2y2z1l1

1z2x2
y1x1

l2

z3z0
l0y0

00x0

図5-1 垂直多関節型ロボットの座標系

l3x3y3

3

P点 0 rP  [ Rx , Ry , Rz ] T98

逆運動学による姿勢妥当性の評価
SimMechanicsのViewer(sample_inv_kinematics.mdl)
99

初期位置

1 , 2 ,3  [0,1 / 2,1 / 3]

105

全体シミュレーションモデル

(4)

(1)
ロボットの機構モデル

エンドエフェク
タの座標(3)
(2)

モーション
データ
作成

参照軌道
計算
(total_simulation.mdl) 110

MathWorksのRobo-One紹介ページ

関連
プロダ
クト関連
デモ

初歩

118

画像処理の簡単なサンプル(MATLAB/Simulinkのみで可能)

30*30*3の数値データに変換

119画像処理の簡単なサンプル(MATLAB/Simulinkのみで可能)

30(ピクセル)*30(ピクセル)*3(R,G,B輝度)のデータを取得する。
データを２値化し、その図を描く。
１秒毎に、データと対応する図形を変える。

120

 御清聴ありがとうございました。

121