マイコンをスケジューラとした非リアルタイムOSにおける リアルタイム制御

マイコンをスケジューラとした非リアルタイム 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
い て 実 験・検 証 を 行 う.ま た ,他 の 制 御 対 象 へ の