めっくろぐ

mechlog - メモ帳

ホイールローダの経路追従制御のMATLABコード

はじめに

建設機械の一種に,ホイールローダがあります.
操舵機構が普通のクルマとは異なり,アッカーマン機構ではなく,
前後輪の中間にある屈折点で車体が折れ曲がることにより進行方向が決まります.

こうした構造は,
中折れ式,アーティキュレート式などと呼ばれます.
旋回時でも前後輪が同じ位置を通過する(=内輪差・外輪差が生じない)ため,
不整地でも安定して走ることができる,
作業時の細かい位置決めがしやすい,
といった利点があり,建設機械・除雪車などで利用されています.

f:id:mechlog:20181015014401j:plain

ちなみに,こうした車両を日本の公道で運転する場合,
小型車両の場合は,小型特殊自動車免許(小特)が,
中型より大きい場合は,大型特殊自動車免許(大特)が必要になります.
また,バケットで土砂を掬ったり除雪したりする場合には,
車両系建設機械(整地・運搬・積込み用及び掘削用)運転技能講習 を修了する必要があります.

gazoo.com

以前,大特の免許を取った時にホイールローダを運転したのですが,
非常に独特な動きをしており,車両モデルとしてどのように表されるのか気になったので,
先行研究の結果をもとに,直線経路追従制御のシミュレーションをしてみました.

車両モデル・制御則

以下の論文を基に,MATLABのサンプルプログラムを起こしてみました.
アルゴリズムの詳細は,以下論文をお読み下さい.
www.jstage.jst.go.jp
車両モデルは,タイヤ横滑りが生じないと仮定した,幾何モデルになります.
通常,ホイールローダは 20 km/h 程度以下で走行するため,これでも十分だと思われます.
実物のホイールローダでは,油圧アクチュエータにより車体の屈折を行うため,
求まった操向制御入力 u_n に基づいて車両を動かすことが出来ると考えられます.

シミュレーション結果

f:id:mechlog:20181015132255g:plain
赤色の目標直線経路に対して,5 m のオフセット開始位置からスタートした車両が,
追従していることが分かります.

MATLABサンプルコード

下記のGitHubリポジトリに載せています. github.com

車両パラメータは,中型ホイールローダであるコマツ WA100-8をもとに,適当な値を決めています.
http://www.komatsu-kenki.co.jp/products/download/pdf/wheel_loader/WA100-8.pdf

エレコムのUSB切替器

mechlog.hateblo.jp

自室で,Windowsが入っているデスクトップと,Ubuntuが入っているノートPCを使っているのですが,
行ったり来たりしながら作業するとき,1組のキーボードやマウスをそのまま使えたら便利だなと思い,
物色していたところ,丁度良い製品を見つけました.

エレコム KVMスイッチ キーボード・マウス用 手元スイッチ付 ブラック KM-A22BBK

エレコム KVMスイッチ キーボード・マウス用 手元スイッチ付 ブラック KM-A22BBK

切替器,と呼ばれる製品です.
2つのUSBの差込口がある本体から,2本のUSBケーブルと1本のスイッチケーブルが出ています.
ボタンを押す度に,本体が2本のUSBと交互に接続される仕組みになっています.
ボタンを押すと,点灯するランプの色が変わり,1~2秒で接続が切り替わります.

私の場合,トラックボールの有線と,キーボードの無線レシーバーを本体に差し,
ケーブル1本をWindows機に,もう1本をUbuntu機に差しました.
この切替器はUSBの延長ケーブルと同じような扱いで,
使用にあたってドライバ等は必要ありません.
そのため,相性等の問題で悩まされることはなく,
Ubuntuでも問題なく動きました.

ディスプレイは,以前から,D-SubとHDMIで2機それぞれとつなぎ入力ボタンで切り替えていたので, そのボタンの下に今回の切替器のスイッチを置き,
操作2つで,2機のパソコンを行き来できるようにしました.

価格もお手頃で,おすすめです.

MATLABをCUIで使う方法

シェルからMATLABを呼び出すことができると知ったので,
紹介したいと思います.

起動するだけならば方法は単純で,シェルで,

matlab

と打つだけです.
すると,以下の様にCUIのコマンドウィンドウが立ち上がります. f:id:mechlog:20180919220754p:plain

当然ながら,お馴染みのMATLABGUIと同じ機能を持ちます. Simulinkだって起動できます.
正確な計測はしていませんが,
通常のMATLABよりも起動がある程度は速いです.

以下の公式ドキュメントにあるように,起動オプションを指定することができるので,
シェルスクリプトに命令を書いておいて,matlabスクリプトを実行させる,なんてこともできます.

jp.mathworks.com

例えば,script.m という mファイルを実行したければ,
以下のコマンドを実行すればOKです.

matlab -nodesktop -nosplash -r script 

参考資料

www.nemotos.net

d.hatena.ne.jp

jp.mathworks.com

jp.mathworks.com