【smabo第5回】smaboを移動ロボットにしてみよう

【smabo第5回】smaboを移動ロボットにしてみよう

image

前回: 【smabo第4回】smaboにカメラと超音波センサを取り付けてみよう

次回:coming soon…

smaboトップページ: スマホが入るロボットの作り方【smabo】

お疲れ様です。秋並です。

今回は、

  • smaboを移動ロボットにする方法

について解説します。

smaboリポジトリはこちら

🔍
smaboリポジトリに新しいコード等を追加しているので、リポジトリを最新の状態に更新した状態で作業してください。
  • 更新手順(ラズパイ側で実行)
  • cd ~/smabo
    git pull origin main # リポジトリのmainブランチを最新に更新
    cp -r ~/smabo/smabo_pkgs ~/smabo_ws/src # ROS2ワークスペース内のパッケージを最新に
    cd ~/smabo_ws
    colcon build --symlink-install # ROS2ワークスペースを再ビルド

目次

今回使用する機材、パーツなど

🔍
「互換品多数あり」の商品に関しては、もっと安い商品があるので、品質とのバランスを考えて互換品の購入も検討してみてください

共通パーツ

パーツ名
商品url
スマートフォン Iphone MAXのような大きなサイズのスマホや、折り畳み式のような分厚いスマホは入らないので注意してください。 pixel7a(152.0mm×72.9mm×9.0mm) + カバー でぎりぎりちょうどくらいのサイズです。
-
Raspberry Pi
-
モバイルバッテリー サイズが大きいとsmaboに入らないので注意。 URLのAnker PowerCore Fusion 5000がちょうどいいくらいのサイズになります。
L字ケーブル モバイルバッテリーとラズパイを接続するために使用します。 smaboにラズパイを入れた状態だと、L字型のケーブルでないと収まらないので注意してください。
ブレッドボード(85mm×55mm) (サイズが大きいとsmaboに入らないので注意)
ジャンプワイヤー
単三×4 バッテリーボックス
充電式単三電池 × 4
(電池充電器)

移動ロボット用パーツ

部品名
商品URL
DCモータ + タイヤ(互換品多数あり)
どこでもキャスターS
TB6612FNG搭載 デュアルモータードライバ
M3×25mmネジ × 4

今回使用するソフトなど

Ubuntu22.04

ソフト名
url
ROS2 humble
🔍
今回は、RaspberryPi上で作業を行います。

パーツを取り付けよう

smaboにDCモーターを取り付けます。

DCモータ

  1. smaboのボディの側面に、DCモータを取り付けるネジ穴があるので、「M3×25mm」のネジで固定します。
  2. image
    image
  1. DCモータをタイヤをとりつけます。
  2. image
  1. 反対側も同様の手順でDCモータ、タイヤを取り付けます
  1. 底面の上側のくぼみに「どこでもキャスターS」を張り付けます。(下側にもくぼみがありますが、そちらには貼り付けなくてよいです)

配線しよう

次に、配線を行います。

パーツ名
商品url
ブレッドボード(85mm×55mm) (サイズが大きいとsmaboに入らないので注意)
ジャンプワイヤー
単三×4 バッテリーボックス
充電式単三電池 × 4
TB6612FNG搭載 デュアルモータードライバ

下図のように配線してください。

image
🔍
ラズパイのGPIOピンの割り当ては下図の通りになります。

最終的な完成図は以下のようになります。

image

移動ロボットのsmaboを制御してみよう

ここからは、移動ロボットになったsmaboを制御する手順について説明します。

image

pythonコードを実行して制御

最初に、ROSを使わずに制御する方法について説明します。

smaboリポジトリの「simple_code」に格納してある「control_move_smabo.py」を実行してみましょう。

cd ~/smabo/simple_code
python3 control_move_smabo.py

キーボードの以下ボタンを押すことで制御できます。 q w e r a s d z x c v s: 停止 w: 前進 x: 後進 d: 右回転(その場回転) a: 左回転(その場回転) e: 左車輪のみ前進 c: 左車輪のみ後退 q: 右車輪のみ前進 z: 右車輪のみ後退 r: 加速 v: 減速

ROS2を使って制御

次に、ROS2を使用して制御する手順について説明します。

🔍
新しくコードを追加した場合は、以下コマンドでROS2ワークスペースをビルドしなおしてください。
cd ~/smabo_ws
colcon build --symlink-install

「移動ロボット用のdcモータを制御するノード」を立ち上げます。

ros2 run smabo_pkg move_robot_dc_controller

新しくターミナルを立ち上げて、「dcモータ制御用ノードに走行指示を送るノード」を立ち上げます。

ros2 run smabo_pkg move_robot_commander

キーボードの以下ボタンを押すことで制御できます。 q w e r a s d z x c v s: 停止 w: 前進 x: 後進 d: 右回転(その場回転) a: 左回転(その場回転) e: 左車輪のみ前進 c: 左車輪のみ後退 q: 右車輪のみ前進 z: 右車輪のみ後退 r: 加速 v: 減速

さいごに

今回は、

  • smaboを移動ロボットにする方法

解説します。

次回は、

  • smaboにロボットアームを取り付けて制御する方法

について解説します。

前回: 【smabo第4回】smaboにカメラと超音波センサを取り付けてみよう

次回:coming soon…

smaboトップページ: スマホが入るロボットの作り方【smabo】

参考