MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

無料のROS本『詳説 ROSロボットプログラミング』を読んで新しく学んだこと

f:id:meison_amsl:20151228110122p:plain

目次

はじめに

先日、twitter上で

無料公開された日本語のROS本が話題になっていました。

 

九州大学の倉爪研修室の方々が執筆し、公開しているようです。

 

ROSのユーザの一人として読んでみた所、

今まで知らなかったことが沢山あったので、

メモとして残しておきたいと思います。

 

indigoインストール時の注意点

公式HPには無い、いくつかの注意点がありました。

ibg11-mesa-driのエラーが出た時

下記をインストールする

$ sudo apt-get install libgl1-mesa-dev-lts-utpic

NTPの設定をする

複数台のPCでトピックをやり取りをする場合、

初めにNTPの設定をちゃんとした方が良いみたいです。

$ sudo apt-get install chrony

$ sudo ntpdate -q ntp.ubuntu.com

NTPサーバは日本の場合、下記でも良いと思います。

$ sudo ntpdate -q ntp.nict.jp

 

rqtのすべてのプラグインをインストールする

通常のdesktop-fullでは、

インストールされないrqtのプラグインを

下記のコマンドですべてインストールします。

$ sudo apt-get install ros-indog-rqt*

catkinについて

catkinの読み方

これまでなんとなくカトキンと読んでいましたが、

実はキャッキンと読むらしいです。。。(笑)

catkin_wsの中身

catkin_wsの下には下記のディレクトリがあります。

  • /build ビルド関係ファイル

  • /debel msg or srvのヘッダファイルやユーザパッケージのライブラリまたは実行ファイル

  • /src ユーザパッケージ

ROSのパッケージの命名規則

小文字でアンダースコアで繋ぐ

package.xmlの各タグの意味

<package>

パッケージの名前

変更可能だが、CMakeListsのprojectの部分と同じ名前である必要あり

<author>

開発者の名前

複数開発者がいる場合は複数のauthorタグを使えば良い

<build_depend>

パッケージをビルドする時に依存するパッケージ名を書く

<run_depend>

実行時に依存するパッケージ名を書く

<test_depend>

テスト時に依存するパッケージ名を書く

CMakeList.txtのコードの説明

メッセージファイルを生成する

下記のようにそれぞれファイル名を

指定するようになったようです。

add_message_files (FILES 
Message1.msg 
Message2.msg
)

サービスファイルも同様

add_service_files (FILES 
Service1.srv 
Service2.srv
)

ROSのシェル・コマンド

rosls パッケージ名

ROSのファイルリストを表示します

rosed パッケージ名 ファイル名

ROSのファイルを編集します。

.bashrcに下記のような設定をすることで

編集するエディタを指定できます。

export EDITOR="vim"

rostopic list

トピックのリストを表示させることができますが、

-v でトピックの型を表示

-p で配信topicのみ表示

-s で購読topicのみを表示することができます

rosbag compresss

rosbagを約1/3のサイズに圧縮できる

解凍はrosbag decompress

rosbag filter

指定したトピックのみを残して、

新しいbagファイルを作成するツール

rosbag fix

ROSのバージョンが異なり、

bagファイルが再生出来ない時に

bagファイルを修正するコマンド

catkin_create_pkg <パッケージ名> [依存パッケージ1] ..

catkinで新しいパッケージを作成する

 

catkin_make --pkg <パッケージ名>

catkin_makeではすべてのパッケージをmakeしますが、

--pkgオプションを追加すると、

特定のパッケージのみをmakeできます。

 

rospack profile

新しく作成したパッケージが

roscdなどで反映されなかった場合、

rospack profile

とすると、パッケージのインデックスを再構築できます。

 

msgファイルのみで構成されるパッケージを作った方が良い

ソフトウェアの独立性を保つために、

msgファイルのみで構成されるパッケージを作った方が良いようです。

 

ServiceをCallしたい時にはrqt Service Callerを使うと良い

rqt Service Callerを使うと、

簡単にServiceをcallできます。

 

catkinのROSパッケージはapt-getでインストールできる

ビルドシステムがcatkinなったことから、

apt-getでパッケージをインストールできるようになりました。

sudo apt-get install <パッケージ名>

 

Move itを使うことでアームのパスプランニングができる

あまりマニピュレータには詳しく無いですが、

Moveitというライブラリを使うことで、

マニピュレータのパスプランニング(モーションプランニング)が簡単にできます。

Moveit

 

最後に

結構知らないことが多かったです。

素晴らしい書籍が公開されていて嬉しいですね。

 

先日発売された下記のROS本も良かったですが、

今回の無料のROS本『詳説 ROSロボットプログラミング』は

ROSの様々な機能に関する説明がかなり詳しく説明されていると感じました。

無料ですし、ROSを使っているすべての人におすすめです。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com