テーマ記事へのリンク
以下の記事には今回のテーマを設定した目的や関連記事がまとめてあります。自分が見たい項目がある場合は利用してください。自作ロボット(ローバー)のROS対応
目次
準備するもの
-
3WD48mmオムニホイールモバイルロボット(以下、ローバー)
-
Ubuntu 16.04 (Windowsでも可)
ArduinoIDE
Arduinoでの統合開発環境。
公式サイトからLinux 64bitをクリックし、寄付するかどうかの質問を乗り越えてダウンロード。
ダウンロードしたファイルを展開し、インストールする。
$ cd Downloads
$ tar Jxfv arduino-1.8.10-linux64.tar.xz
$ cd arduino-1.8.10-linux64
$ ./install.sh
これによりホームディレクトリにArduinoフォルダが生成される。Arduino/librariesフォルダに、適宜使用するライブラリを入れることで、rosのパッケージなどを使用することが出来る。
ros_libの生成
ROS Melodicの場合
rosserialとrosserial_aruduinoパッケージをインストールする。
$ sudo apt-get install ros-melodic-rosserial-arduino
$ sudo apt-get install ros-melodic-rosserial
続いて、arduino側で使用するrosパッケージを準備する。
$ wget https://downloads.arduino.cc/arduino-1.8.13-linux64.tar.xz
$ tar Jxfv arduino-1.8.13-linux64.tar.xz
$ cd arduino-1.8.13-linux64.tar.xz/libraries
$ rosrun rosserial_arduino make_libraries.py .
$ cp -r ros_lib ~/Arduino/libraries
ArduinoIDEでの書き込み設定
ツールタブのボード、Clock,シリアルポートを以下の設定にする。
- ボード:ATmega328P
- Clock:8MHz/X'tal
- シリアルポート:dev/ttyUSB0(使用する環境による)
ローバーの動作チェック
販売元が購入者のみにソースコードやマニュアルを公開している。そのためライブラリがないとソースコードがコンパイルできません。ご了承ください。
以下のソースコードをcloneし、rover/arduino_scripts/rover_sirial IDEでコンパイルしてからローバーに書き込む。
Arduino IDEのシリアルモニターからコマンド(r,fなど)を入力して旋回、前進すれば成功。
2020/11/27追記:melodicだと、なぜかスクリプトで設定した通信速度にずれが生じている。スクリプトで設定した通信速度の倍でシリアルモニタ側の通信速度を設定することで、正常に動作する。
例:スクリプトで"node_handle.getHardware()->setBaud(9600);"と設定したならば、シリアルモニタは19200bpsに設定する。
$ git clone https://github.com/NaotakaKawata/rover.git rover
つまずいた部分
-
英語のマニュアルを読みながら進めていたのだが、書いてあるサンプルコードと実際に刺さっているポート番号が違う。エンコーダ付きDCモータが付属しているので返り値を見て気づいたが、初めて既製品のロボットを買ったので基本的なチェックを怠ってしまった。皆さんは気を付けてください。
-
サンプルコードも最初は提供されたソースを使い動作チェックを行いましょう。部品が壊れている可能性もあります。
→筆者はタイヤとDCモータの間に取り付けるアルミハブの穴径が違っため、一度返送している。丁寧な対応だったのでその点は満足している。