ルンバをROSで動かしてみました。(おおたfab 第43回 素人でもロボットをつくりたい)

おおたfabさんでは、「素人でもロボットをつくりたい」という勉強会を定期的に行っています。前回はルンバのセンサーデータをArduinoで読み取ることを試しました。少し時間が空きましたが、マイコンをArduinoからRaspberry Pi 4に変更して、少し高度なことができるようにROS(Robot Operating System)ルンバを動かしてみます。

ros_raspberrypi4_2.jpg

ROSをつかってルンバを動かすという記事はインターネットを検索すればいろいろでてきます。今回はdemura.netさんの記事を参考にして進めてみます。

Raspberry Pi 4にUbuntu 18.04 LTSをインストールする

今回はRaspberry Pi 4(4GB)を使用します。ROS Melodicの動作OSとしてはUbuntu 18.04 LTSが必要になります。しかし、Raspberry Pi 4ではUbuntu 18.04 LTSはサーバー版しかサポートされておらず、後からデスクトップ環境を追加する必要があります。この作業はdemura.netさんの記事を参考にしました。

ROS Melodicをインストールする

Ubuntu18.04のデスクトップ環境にROS Melodicをインストールします。こちらもdemura.netさんの記事を参考にしました。

ただしメモリが4GBしかありませんので、少し方法を変えています。また、おおたfabの勉強会に参加されているかたのRaspberry Pi 4にも同じようにインストールする必要があるので、Jetson Japan User Groupさんの書籍「Jetson Nano超入門」で使用されているインストールのためのスクリプトを参考にしてほぼ自動でインストールされるようにしました。このスクリプトはGitHub.comに置きました。

この状態でROSが動作するようになり、サンプルプログラムであるturtlesimが動くことを確認しました。

Gazeboシミュレータをインストールする

GazeboシミュレータをインストールしてRaspberry Pi 4の中でルンバを動かしてみます。こちらもdemura.netさんも記事を参考にしました。

こちらも自動でインストールするスクリプトを作成しました。

実際に動かしてみると、やはりRaspberry Pi 4では重いですが、なんとか動きます。

ルンバをRaspberry Pi 4に接続すればこのシミュレーターと同じように動くはずです。

ルンバの実機を動かしてみる

いよいよRaspberry Pi 4にルンバを接続して動かしてみます。こちらもdemura.netさんも記事を参考にしましたが、前提がノートPCとなっていますので、Raspberry Pi 4用に少し手順を変えています。

今回の構成図は以下のようになります。

roomba_raspberrypi4_system.png

Raspberry Pi 4のUSBコネクタにUSBシリアル変換アダプターを接続し、ルンバの外部ポートに接続しました。

電源はモバイルバッテリーを使用してRaspberry Pi 4に供給します。

roomba_robot_ros_rasppi_connect1.jpg

この状態でPCのsshターミナルからRaspberry Pi 4にログインし、roslaunch ca_driverを実行したところopenエラーになってしまいました。どうやらca_driverでは/dev/roombaというデバイス名を使っているようです。/dev/USBtty0は認識しているので、シンボリックリンクを張って再実行したところ、ルンバからピポッという音がして、正常に接続できました。

ros_roomba_start1.png

Ready状態になっていますし、バッテリーの残量も表示されています。正常にROSとルンバが接続されました。

この状態で、turtlesimやGazeboシミュレーターで行ったようにキー入力でロボットを制御するプログラムを動かしたところ、実機のルンバを動かすことができました。

ここまでの手順をGitHub.comにまとめておきました。

次のステップへ

これでルンバがROS制御のロボットになりました。今後はROSプログラミングを試していくことになります。事例をみながらROSとロボット制御についての理解を深めたいです。

前へ

MC68EZ328 uCsimmを動かしてみました(2) ~uClinuxを探検する~

次へ

Qwiic OLEDを作ってみました