smabo ロボットアーム

前回:

次回:coming soon…

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

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

今回は、

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

について解説します。

image

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
(電池充電器)
3Dプリンタ

スタンド関連パーツ

パーツ名
商品url

腕関連パーツ

パーツ名
商品url

今回使用するソフトなど

OS名

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

パーツを3Dプリンタで印刷しよう

smaboリポジトリに格納されている以下モデルを3Dプリンタで印刷してください。

  • head_stand_base
💡
3Dプリンタによる印刷については、こちらのページの「3Dプリンタで印刷してみよう」を参考にしてください。
💡
head_stand_baseは、「smaboにカメラと超音波センサを取り付けてみよう」の時と同じパーツのため、使いまわしてもOKです

パーツを取り付けよう

次に、印刷したパーツを取り付けます。

  1. head_stand_baseに「SG90に付属しているホーン」を「M2×8mmのネジ」で固定します。
  2. image
  3. body上部のSG90に「head_stand_base」を「M2×12mmネジ」で固定します。ここで、正面を向いた時のサーボの角度が、おおよそ0度(範囲を「-90度~90度」としたとき)になるように固定してください。
  4. image
  1. arm_baseに「SG5010」を「M3×12mmのネジ」で固定します。
  2. image
  3. head_stand_baseに「arm_base」を「M2×10mmネジ」で固定します。
  4. image
  1. arm_link1に「SG5010に付属しているホーン」を「M2×8mmネジ」で固定します。
  2. image
  3. arm_link1に「SG5010」を「M3×12mmネジ」で固定します。
  4. image
  5. arm_link2に「SG5010に付属のホーン’」を「M2×8mmのネジ」で固定します。
  6. image
  7. arm_link2に「SG90」を「M2×8mmネジ」で固定します。
  8. image
  9. gripper1_SG90に「SG90に付属のホーン」を「M2×8mmネジ」で固定します。
  10. image
  11. arm_link2に「gripper1, gripper1_SG90, gripper2, gripper3」を「M3×12mネジ」で固定します。
  12. image
  13. arm_base, arm_link1, arm_link2を合体させたら完成です。ここで、arm_link1, arm_link2が真上を向いた時のサーボの角度が0度(範囲を「-90度~90度」としたとき)になるようにしてください。
  14. image

※ ロボットアームの各サーボのケーブルはhead_base_standの隙間から中に入れるようにしてください。

image

配線しよう

次に、配線を行います。

パーツ名
商品url
ブレッドボード(85mm×55mm)(サイズが大きいとsmaboに入らないので注意)
ジャンプワイヤー
単三×4 バッテリーボックス
充電式単三電池 × 4
サーボモータドライバ PCA9685(互換品多数あり)
SG90 × 1 ※ 頭のSG90と共通(互換品多数あり)
SG90 × 1 ※ グリッパ用(互換品多数あり)
SG5010×2

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

また、各pinとサーボモータの対応関係は以下の通りです

pin5: link1に取り付けたSG90

pin13: link2にとりつけたSG5010

pin14: link3にとりつけたSG5010

pin15: gripperにとりつけたSG90

image

link2より上側にあるサーボは、配線がサーボモータドライバまで届かないので、ジャンプワイヤーを延長するなどしてください

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

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

image

smaboに取り付けたロボットアームを制御してみよう

ここからは、smaboに取り付けたロボットアームを制御する手順について説明します。

image

ROS2を使って制御

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

「pca9685を制御するノード」を立ち上げます。

ros2 run smabo_pkg pca9685_controller

次に、新しいターミナルを立ち上げて「ロボットアームの各リンク、グリッパを設定するノード」を立ち上げます。

ros2 run smabo_pkg link3_robot_arm_commander

キーボードの以下ボタンを押すことで制御できます。

q w e

a s d

z x

z: link1を正方向に回転

x: link1を逆方向に回転

q: link2を正方向に回転

a: link2を逆方向に回転

w: link3を正方向に回転

s: link3を逆方向に回転

e: グリッパを開く

d: グリッパを閉じる

さいごに

今回は、

  • smaboのロボットアームを制御する方法

解説します。

次回は、

  • smaboを二足歩行ロボットにする方法

について解説します。

参考