ROS ことはじめ

ROS(Robot Operating System)を使ってみる

 ハードウェアはRaspberry pi 3を使用します。  NVIDIA Jetson Nanoの方が若干高値ですが、性能は申し分ないとの情報を得たのでシュミレーションなどの複雑な処理を行う必要が生じた場合は購入を検討してみます。  Windows10もバージョンが1709以降であれば、WSL(Windows Subsystem for Linux)が正式にサポートされていますが、ROS(Robot Opetating System)の動作が保証されていないため今回は不採用としました。 ちなみにMacOS上でのROSは使い物になりません。 

Raspberry pi 3

 基本OSはubuntu MATEをインストールして、ミドルウェアであるROSをセットアップしました。 ubuntu MATEのダウンロード先から私は32ビット版をインストールしてみました。

ubuntu MATEのデスクトップ画面

「MATE端末」より以下のコマンドを実行してみます。

$ roscore
$ rosrun tutlesim turtlesim_node
亀が表示される( ROSのロゴは亀なのかな?)
$ rosrun turtlesim turtle_telop_key
亀はカーソル移動キーで動かすことができます 

ROSの概念について

ROSは機能や目的で細分化された「ノード」がシステムの中に複数存在します。 そして、複数のノード間で通信することによりシステムの目的を果たします。

ROS概念図 (参照  https://kazuyamashi.github.io/

簡単なプログラムの実行

送信側と受信側のプログラムをPythonで作成して、ノード間でのトピック通信処理の実験を行ってみました。  以下のコマンド「rqt_graph」を入力して、実行中ノードと通信状況を図示してみました。

$ rqt_graph
ノード間のトピック通信とその関連図を表示

シミュレーションモデルの作成

2自由度マニュピレータのモデル

ROSはURDF(Universal Robotic Description Format)と呼ばれるXML形式で定義しますが、基本構成はリンクとジョイントの組み合わせです。簡単なサンプルを作成してみました。 右側に配置しているパネルを使うと、モデルを動かす事ができます。 (ご指導 SooZooROBO-TECHNO様)

シュミレーターで2自由度マニュピレータを表示

CADデータの読み込み

3Dモデルのロボットアームを表示してみます。
(※データは SooZooROBO-TECHNO様 のものです。)  
Rvizでシミュレーションモデルを表示するコマンドを実行する。

$ rosrun rviz rviz
SooZooROBO-Techno 様 のロボットアームをシュミレーターに表示

今回はここまでです。 
次回は実際のロボットアームを組み立てて制御してみます。


きっと、くーちゃんの腕になる日が来る。

PAGE TOP