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) SimMechnics TM Simulink 上での機構系 ( 剛体 ) のモデリングオプション (5) Simscape TM Simulink 上での物理モデリングの基本環境 (6) Simulink Coder TM Simulink のモデルの等価 C コード自動生成 (7) Real-Time Windows Target Simulink のモデルのリアルタイム動作 (8) Image Acquisition Toolbox TM 実画像データと MATLAB のインターフェース (9) DSP System Toolbox TM 信号処理のオプションライブラリ (10) Image processing Toolbox TM 画像処理の基本 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 x とする k kx cx m u c 図機械系ダイナミクスの例 (1 自由度振動系 ) 11
STEP1 微積分変数の位置関係 x x x 加速度速度位置 2 階の微分方程式 13
サブシステム化 サブシステム化したい箇所を選択 ( マウス左クリック範囲指定 ) 16
ロボットモデルに有益なデモ コマンドウィンドウから >>demo[enter] 各ツールのユーザーガイド関数例デモなどが見れる 20
MATLAB 参考になりそうな標準デモ (1) デモ名 : スペクトル解析のための FFT ファイル名 :fftdemo.m 21
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 3 4 2 5 最適レギュレータとオブザーバ [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) シミュレーションモデル 14 1 2 3 15 4 5 6 7 13 8 16 17 9 10 11 12 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
(B5) ロボットの初期位置 l1=26e-3;%[m] h1=50e-3;%[m] w1=38e-3;%[m] CS1(0,0,0)@ad (J2) (B3) CG(h1/2-23/2, 0, -w1/2)@cs1 (J3) (B4) CG (109.5/2,0,-w1/2)@CS1 CS2 (109.5,0,0)@CS1 CS2 (72,0,0)@CS1 CS3 (0,0,-w1/2)@CS1 CS1 (0,0,0)@ad (B2) (B1) CS2@B2=CS1@B3 CG@B3 (J1) (J0) 38 0 CS2 (0, w1/2,25)@cs1 CG (0.0.10)@CS1 CS1 (0,0,0)@ad CS2 (0,0,w1+7)@CS1 CG (-(h1/2-23/2),0,w1/2+7)@cs1 CS1 (0,0,0)@ad 注 :10 想定値 仮定各リンクはモータにより作られる 回転自由度を接続する金具は慣性モーメント微小 質量微小として無視 (B3) 72 85 23 (J2) 23 109.5 (J4) CG@B2( 想定 ) (B2) 25 (J1) 23 25 (B5) z 0 0 CG@B1 CS1@B1 (B1) 0 z 0 11.5 38 CS2@B1= CS1@B2 23 (J3) (B4) CS2@B4 x 0 y 0 26 y 0 50 x0 97
順運動学の解析 2 z 2 R R R x y z エンドエフェクタの座標 cos sin sin 1 cos 2 3 l 3 cos 1 cos 1 cos 2 3 l 3 sin 1 cos 2 3 l 3 sin 2l2 l1 l0 l 2 2 l 2 2 l 1 x y2 2 y z 1 1 x 1 1 l 2 l 0 0 z 0 0 y 0 x 0 y 3 3 z 3 x 3 l 3 図 5-1 垂直多関節型ロボットの座標系 P 点 0 r P [ R, R, R ] x y z T 98
逆運動学による姿勢妥当性の評価 SimMechanics の Viewer (sample_inv_kinematics.mdl) 99
初期位置 1, 2 3, [0, 1/ 2,1/ 3] 105
全体シミュレーションモデル ロボットの機構モデル (1) (4) エンドエフェクタの座標 (3) (2) モーションデータ作成 参照軌道計算 (total_simulation.mdl) 110
MathWorks の Robo-One 紹介ページ 関連プロダクト 関連デモ 初歩 118
画像処理の簡単なサンプル (MATLAB/Simulink のみで可能 ) 30*30*3 の数値データに変換 119
画像処理の簡単なサンプル (MATLAB/Simulink のみで可能 ) 30( ピクセル )*30( ピクセル )*3(R,G,B 輝度 ) のデータを取得する データを 2 値化し その図を描く 1 秒毎に データと対応する図形を変える 120
御清聴ありがとうございました 121