ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

【自律型ロボット製作記】#1 ラズパイ+ROSでリモコン操作で動くロボットのシャーシ部を作る

こんにちは、koheiです。

あけましておめでとうございます。
2020年、ずっとやりたかったオリジナルロボット製作にチャレンジしたいと思います。
まずは、キャタピラー型の移動ロボットにROSやラズパイ、各種センサーをつけて、自宅内を自律的に走行する「お手伝いロボット」を作ります。

スポンサーリンク

ロボットの構成

今回作製するロボットの構成は、以下のようになります。
・Androidスマホに入れた「ROS Control」アプリから、速度情報を通知して、ラズパイのROSで受け、それをDCモーター用の指示値に変換して、DCモーターを動かします。

購入部品

冬休みに入りまとまった時間がとれそうだったので、若干勢いで以下の部品を購入してみました。

Devastator タンク移動ロボットプラットフォーム (メタル DC ギヤモータ)

こちらは、ロボットのシャーシ部に使うために購入。同額のシャーシはアマゾンに色々売っていますが、一番評価が高かったのでこちらを購入しました。

ビット・トレード・ワン Raspberry Pi用汎用電動機制御基板 ADRPTB8C

半田不要で、DCモーターが簡単に動かせるということで、ラズパイ用の制御基板「ADRPTB8C」を購入しました。

Anker PowerCore 10000

ラズパイ用のモバイルバッテリーとして購入しました。

1.ラズパイ3B+にUbuntu+ROSシステムをインストールする

事前準備として、ラズパイ3B+にUbuntu+ROSを入れます。
以下サイトでSDイメージが取得できます。
Ubuntu16.04 + ROS Kineticです。ラズパイにubuntuとROSを入れるのは苦労した記憶があるのですが、すごく便利なサイトがあり助かりました。
Ubiquity Robotics Downloads

Etcherというツールで、ダウンロードしたイメージをSDに焼き込みます。
ツールは以下からダウンロードできます。
balenaEtcher

2.シャーシ部を組み立てる

Devastator タンク移動ロボットプラットフォームを組み立てていきます。
組立自体は難しくなく、1時間ぐらいで組み上がりました。
※説明書は英語と中国語で書かれています。

全部組み上げる前に、DCモーターがちゃんと動くかを確かめたかったので、一旦この状態で止めておきます。

3.DCモーターテスト

DCモーターが作動するかテストしてみました。
その前に、ADRPTB8Cを使うための下準備がいります。(I2Cの有効化、ライブラリのインストールなど)
そのあたりの設定は、以下サイトを参考にさせていただきました。ありがとうございました。
ADRPTB8C制御基盤を使った本格的なロボット開発 for ラズパイ

早速、ADRPTB8CとラズパイとADRPTB8CとDCモーターを接続してテストコードを動かしてみました。
ちゃんとDCモーターが動きました!

4.ROS cmd vel受信→DCモーター用指示値への変換ロジックを作る

スマホから通知される速度情報(cmd_vel)をDCモーター用の速度指令値に変換して、DCモーターへ通知するPythonプログラムを作ります。(コードは以下)
※コードは、自己流でかなり試行錯誤していますので、ご注意ください。

作ったプログラムをROSで実行するため、ROSのパッケージにします。
catkin_wsの配下のsrcフォルダ内に作ったPythonプログラムを配置します。

srcフォルダへ移動して、以下コマンドを実行します。

$ catkin_create_pkg パッケージ名 rospy std_msgs

~/catkin_wsに移動して、以下コマンドを実行します。

$ catkin_make

5.走行テスト

さっそく走行テストしてみます。

ラズパイ側にログインして、以下コマンドを実行します。

$ export ROS_HOSTNAME=xxx.xxx.xxx.xxx(ラズパイのIP)
$ export ROS_MASTER_URI=xxx.xxx.xxx.xxx(ラズパイのIP):11311
$ roscore

これで、roscoreが立ち上がります。
次に別のターミナルを開いて、作成したプログラムを実行します。

$ rosrun パッケージ名 xxxx.py(作成したPythonプログラム)

次に、AndroidスマホにインストールしたROS Controlで、ラズパイに接続し、リモコン操作します。
ちゃんとキャタピラーが動きました!!

最後に

次は、ROS+SLAMで地図作成、自律走行などを実現できるように
がんばります!!

それでは!!

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン