読者です 読者をやめる 読者になる 読者になる

szmlb.net

tips for robotics

RoboticsToolboxメモ

RoboticsToolbox, Machine Vision Toolboxのメモ.

Robotics Toolbox, Machine Vision Toolboxとは?

・Peter Corkeさんが開発し公開しているMATLABオープンソースライブラリ
・Robotics Toolboxは主にロボットマニピュレータや移動ロボットのための座標変換や制御, シミュレーションに関するライブラリを含む
・Machine Vision Toolboxはロボットを指向したComputer Vision関係のライブラリを含む

ライブラリを一通り解説している本がRobotics, Vision and Controlという本.
半分はcoordinate transformにはじまりplanning, localization, controlと幅広く書かれている.
残りの半分は, computer visionに関するアルゴリズムとロボット制御への応用について書かれている.
邦訳版はまだないけど, 解説が非常に分かりやすいので読みやすいと思う.

ライブラリで使用しているアルゴリズムに関しての記載が少ない部分もあるが, ソースコードが見れるのと, 章末に参考文献が丁寧に記載されているので次に何を読めばいいのか分かりやすくなっている.

MatlabのバージョンはR2010a以降が推奨されている.

Robotics Toolboxの導入

導入:
RoboticsToolboxのコードをDL
ここでは, ver9.9をDL(robot-9.9)した.

matlabrc.mに以下の記述を追加

addpath(genpath('C:\hoge\robot-9.9\rvctools\startup_rvc'))
run C:\hoge\robot-9.9\rvctools\startup_rvc

これでmatlab起動時に自動的にRoboticsToolboxが読み込まれる.

レファレンスココ.

Machine Vision Toolboxの導入

導入:
MachineVisionToolboxのコードをDL. RoboticsToolboxのDLサイトで一緒にDL可能.
ここでは, ver3.3をDL(vision-3.3)した.

matlabrc.mに以下の記述を追加

addpath(genpath('C:\hoge\robot-9.9\rvctools\startup_rvc'))
run C:\hoge\robot-9.9\rvctools\startup_rvc

これでmatlab起動時に自動的にRoboticsToolboxが読み込まれる.

利用時に生じたエラー(Windows)

(1) 64bit版OSで生じるエラー

使用していて, Toolbox内のMEXファイルを利用する時にひっかかった.
https://groups.google.com/forum/#!msg/robotics-tool-box/7-zr6fkRPF8/tTy0DwNq9G8J

問題が生じたのは下記のコード.

load map1 % load map
goal = [50,30]; % goal point
start = [20, 10]; % start point
dx = DXform(map); % create navigation object
dx.plan(goal) % create plan for specified goal ←ココでエラー
dx.path(start) % animate path from this start location

ToolboxのMEXファイルはmatlab 32bit版でコンパイルされているらしく, 64bit版OSで利用しようとするとエラーが出る.

このエラーを解決するためには, 64bit OS上でMEXファイルを再度ビルドする必要がある.
64bit用matlabコンパイラが付属していないので, 別途インストールして利用する必要がある.

ココの案内に従ってコンパイラをインストールし, matlab上でコンパイラを設定するコマンドを叩いてみたけれど認識しない.

$ mex -setup

通常はここでコンパイラを選択して, vision-3.3\rvctools\vision\mexを作業ディレクトリにしてから

$ make

コマンドでOKらしい.
vision-3.3\rvctools\vision\mex\READMEファイルに記載があるので参考にされたい.

親切なことに, 64bit用にmexファイルを公開してくれている人がいたので利用することにした.
ココから.mexw64ファイルをDLして, vision-3.3\rvctools\vision\mexに保存する.
これでOK.

(2) contributed codeについて

サードパーティが開発した関数群は別途ダウンロードしMATLABにパスを通しておく必要がある. 教科書の中では注釈なく普通に利用しているので注意. 該当するのは以下の関数で, それぞれcontrib.zip, contrib2.zip内にコードがある.

contrib.zip

  • igraphseg
  • imser
  • vl_kmeans, for bag of words example, Sec 14.7
  • EPnP, for the CentralCamera.estpose() method, Sec 11.2.3

contrib2.zip

  • isift
  • isurf

MVTBのフォルダ, rvctools以下にcontribフォルダを作成.
contrib.zipおよびcontrib2.zipのrvctools以下のフォルダをすべてコピー.
startup_rvc.mに以下の記述を追加.

if tb
addpath(fullfile(rvcpath, 'common'));
addpath(fullfile(rvcpath, 'simulink'));
addpath(fullfile(rvcpath, 'contrib')); ← 追加
end

これで教科書中に出てくるすべての関数が実行できるはず.