マイコンをスケジューラとした非リアルタイム OS における リアルタイム制御システムの開発 浅野 洋介 (電気電子工学 科 ) Development of Real-Time Control System on Non-Real-Time OS by using Micro Computer as Scheduler ASANO Yosuke (Dept. of Electrical and Electronic Engineering) Abstract: In this paper, we proposed the real-time control system on non-real-time OS using the micro computer with USB interface. Generally, it was expensive and difficult to construct the real-time control system. However, we achieved proposed system inexpertly by using the micro computer as a scheduler. The characteristic are no special interface for the control software like MATLAB and the real-time control performance on the non-real-time system. Moreover, we developed the 2-link robot arm to evaluate the performance of the proposed system. As a result, the proposed system operated in the low-speed area. Keywords: Automatics Control, Real-time Control, Motion Control, PIC, Micro Computer 1. はじめに アの制限が厳格であり,習得までに膨大な時間が 必要となる.また,デバッグも困難である. 近年,ロボットは様々な場面・場所で活用されて そこで,我々は安価・小型・容易に制御システム いる.そのアクチュエータとして,制御のしやす を構築し,制御工学の理解を深めるための実験実 さから電気モータがよく用いられている1 ).しか 習が出来る環境構築を目指している.本報告では, しながら,学生実験を実施する場合,ハードウェ ア・ソ フ ト ウェア の 両 面 に お い て 課 題 が 多 い .ま ず,ハ ー ド ウェア の 面 で は ,PIC や AVR と いった PIC マ イ コ ン と リ ア ル タ イ ム OS を 搭 載 し て い な い PC を連携させ目的通りのシステムが構築でき たのでその詳細を報告する. 入手が容易なローエンドマイコンでは高度な制 御 則 を 適 用 す る こ と が 出 来 な い .そ こ で ,PC に おいて優れた制御系設計・制御ソフトウェアであ る MATLAB2 )を使用することが考えられるが,ア 2. システムの構成 構 築 す る シ ス テ ム の コ ン セ プ ト を 図 1 に 示 す. クチュエータと接続するために高額な専用のイン まず,図 1 の A 部において制御計算などが実行さ ターフェース1 が必要になる.そのため,専用 I/F れる.ロボットシステムであれば手先軌道の計算 が不要になるように C 言語などを用いて自ら制御 も こ こ で 実 行 さ れ る .次 に ,B 部 に お い て ,A 部 ソフトを作成することになる.しかし,制御ソフ から送られてきた制御信号を,制御対象への入力 トにおいては,スケジューリングが非常に重要な 電圧へ信号変換する.C 部では入力された電圧に ファクターとなるため,RT-Linux や RT-AI などを より制御対象が動作し,センサによりその状態が リ ア ル タ イ ム OS を 用 い た シ ス テ ム を 構 築 し ,そ 観測され B 部へ送られる.B 部では再び信号が変 の OS 上で実行する必要がある.リアルタイム OS 換され A 部へセンサ値をフィードバックする.こ は実行時間の保証がなされているが,ソフトウェ のとき,マイコンの優れたスケジューリングを活 用し,リアルタイム性を実現する. 1 以 降 ,I/F とする DC モータを制御対象とした制御ブロック線図は 図 2 モータの PD 制御ブロック図 A A Linux システム(非リアルタイム OS) センサ信号 B 時刻・角度 B マイコン(スケジューリング) 電力変換回路 USB 接続 制御入力信号 Linux 電圧信号 USB- シリアル変換 PIC18F2550 シリアル信号 制御入力 センサ出力 C モータドライバ 制御対象 電圧入力 センサ 図 1 開発する制御システムのコンセプト C DC モータ エンコーダ 図 2 のように表される.これを前述のコンセプト エンコーダパルス に沿ったシステムとして考えると図 3 のようにな る.ここで,A,B,C 部はそれぞれ対応している. 図 3 構築した DC モータ制御システム 制御器には非リアルタイムの Linux(OS:Ubuntu 8.04,CPU:Pentium4 2.80GHz)を 採 用 し ,デ ー タ の送受信にはシリアル通信用の I/F の一つである USB を採用した.USB-シリアル変換には FT232 を 使用したモジュールを採用した.また,モータド ライバにはモータを 2 台同時に制御可能な Sabertooth2x25 を 採 用 し た .入 力 方 式 に は ア ナ ロ グ 電 圧 入 力 ,RC 信 号 入 力 ,シ リ ア ル 通 信 の 3 種 類 の モードがあるが,今回はコンピュータから制御が 容易なシリアル通信モードを使用する.マイコン に は PIC18F2550 を 使 用 し た .エ ン コ ー ダ か ら 出 力されたパルスを受信し,モータの回転角度や角 速度を算出して PC へフィードバックする.PC が 得た測定データから目標値との偏差を求めフィー ドバック制御を行う. 図 3 のようにシステムを構成した利点として以 下のことが挙げられる. i. 専用インターフェースが不要 pulse count PIC マイコン 12 10 calc sleep Linux ∆T t[s] Angle [degree] wake up! 図 4 制御周期 8 6 4 2 0 Reference PD Control -2 0 50 100 ii. 非 リ ア ル タ イ ム OS に お い て も リ ア ル タ イ ム 制御可能 150 200 250 300 Time [ms] 図 5 DC モータの PD 制御の位置応答 ま ず,i. に つ い て は ,モ ー タ ド ラ イ バ の 仕 様 に より,電圧指令値をシリアル信号で送信すること 3 が出来る.したがって,安価な USB-シリアル変換 2.5 作させることができる.また,エンコーダパルス のカウントも普通はパルスカウンタを準備する必 要があるが,USB 接続可能な PIC マイコンを使用 しているため,PIC マイコンがカウントした値の みを Linux で受信することで実現している.した がって,D/A 変換,A/D 変換,カウンタなどの I/F は不要となり,システム構築のコストを大幅に削 減することが出来る. 次に,ii. につい ては,図 4 に示すように本シス テ ム は PIC マ イ コ ン が メ イ ン シ ス テ ム で ,Linux Control Cycle [ms] 器を通すことで非常に簡単にモータドライバを動 2 1.5 1 0.5 0 0 50 100 150 200 250 300 Time [ms] 図 6 制御周期の推移 が従属システムとなっている.非リアルタイム OS において,時間保証は 10[ms] であると言われてい ン KP = 10.0, KD = 20.0 としたときの位置応答を る .本 シ ス テ ム の 制 御 周 期 は 1[ms] 以 下 を 想 定 し 図 5 に示す.1[%] 程度の定常偏差は発生している ており,リアルタイム OS を採用していないため, ものの性能良く追従していることがわかる. Linux では 制御周期の保証を す ることは困難であ る.したがって,スケジューリングを PIC マイコン に任せてしまい,Linux は制御計算を実行し,シリ アル信号を送信した後はスリープ状態にさせる. そして,制御周期ごとに角度情報を受信し起動さ せ,計算を実行する.このようなサイクルを繰り 返 し て い る た め ,非 リ ア ル タ イ ム OS に お い て も リアルタイム制御が可能となる. また,実際システムにおいてきちんと制御周期 を保証することが出来ているかも検証した.その 結果を図 6 に示す.数カ所ほど,制御周期が 2[ms] と遅れてしまっているところもあるがほぼ問題な く制御周期が確保されている. これらの結果から,従来の制御システムに比べ て大幅にコストを削減したにもかかわらず,開発 したモータ制御システムは十分に制御実験を行う ことが出来るということが言える. 3. 制御性能検証実験 3.2 多自由度ロボット制御実験 3.1 無負荷モータ制御実験 今回採用したモータドライバは 2 台のモータを 開発したモータ制御システムにおいて,位置制 御 実 験 が 可 能 で あ る か 検 証 し た .目 標 値 θref = 10 [◦ ] として,試行錯誤的に決定した PD 制御ゲイ 同 時 に 制 御 出 来 る .そ こ で ,2 自 由 度 の ロ ボット アームを作成し 2 台同時制御が可能であるか検証 す る .開 発 し た 平 面 2 自 由 度 ロ ボット ア ー ム を 図 0.3 Reference Response Y [m] 0.2 0.1 0 0 0.1 0.2 0.3 X [m] 図 7 開発した平面 2 自由度ロボットアーム 図 8 ω = 1[rad/s] 時の X-Y 平面軌道 40 Reference Angle1 Reference Angle2 Response Angle1 Response Angle2 30 Angle [deg] 7 に示す. こ の ロ ボット ア ー ム を 用 い て 先 端 が 半 径 r = 0.05 [m] の 円 軌 道 を 描 く よ う に 制 御 し た .そ の 結 果 を 図 8,図 9 に 示 す.こ の と き 先 端 の 円 運 動 は ω = 1 [rad/s] となるように設定した. 指 令 値 と の 誤 差 は ±1 [◦ ] に 収 まって お り,十 分 な性能を持っていることがわかる.しかしながら, 関節角度の変化速度が 15 [◦ /s] を超えるとエンコー ダパルスのカウントに読み飛ばしが発生してしま う.これは PIC マイコンの性能を向上させること で解決することが出来ることがわかっている3 ). 20 10 0 -10 -20 0 1 2 3 4 Time [s] 5 6 7 図 9 ω = 1[rad/s] 時の関節軌道 4. 制御対象の拡大 本報告において,モータ制御の分野において十 分な性能を発揮することが検証されたと言えよう. 本システムのコンセプトは他の制御対象にも応用 適用を検討する. 6. 謝辞 が可能であることが推測できる.つまり,なんら システムを構築するにあたり,多大な貢献をし かの操作量をマイコンを通して入力することが出 てくれた菅嶋建佑君,小山昌人君,守恒典君に感 来,かつ,制御量をマイコンで測定することが出 謝します. 来れば同様の制御システムを設計することが出来 るで あ ろ う.例え ば,流量 制 御に おいて ,コ ント ローラとセンサを電磁弁と流量計とすれば構築可 能である. 参考文献 1)Honda|ASIMO|ASIMO について|スペック, http://www.honda.co.jp/ASIMO/about/spec/ 5. まとめ 従来の制御装置と比較して大幅にコストを削減 したにもかかわらず,学生実験において十分な性 2)MathWorks 日 本 - MATLAB - 数 値 計 算 言 語, http://www.mathworks.co.jp/products/matlab/ 3)小山昌人,岡田和晃,浅野洋介:“短距離無線 能を発揮することが出来るモータ制御システムを 制御システムによる複数モータの同時制御”, 構築することが出来た.今後は,マイコンの高性 平 成 22 年 電 気 学 会 産 業 応 用 部 門 大 会 講 演 論 能化や高度なロバスト制御を適用した制御系にお 文集,Y-91,東京,2010 い て 実 験・検 証 を 行 う.ま た ,他 の 制 御 対 象 へ の
© Copyright 2024 Paperzz