前回:
次回: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ワークスペースを再ビルド
目次
- 今回使用する機材、パーツなど
- 共通パーツ
- スタンド関連パーツ
- 腕関連パーツ
- 今回使用するソフトなど
- OS名
- パーツを3Dプリンタで印刷しよう
- パーツを取り付けよう
- 配線しよう
- smaboに取り付けたロボットアームを制御してみよう
- 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です
パーツを取り付けよう
次に、印刷したパーツを取り付けます。
- head_stand_baseに「SG90に付属しているホーン」を「M2×8mmのネジ」で固定します。
- body上部のSG90に「head_stand_base」を「M2×12mmネジ」で固定します。ここで、正面を向いた時のサーボの角度が、おおよそ0度(範囲を「-90度~90度」としたとき)になるように固定してください。
- arm_baseに「SG5010」を「M3×12mmのネジ」で固定します。
- head_stand_baseに「arm_base」を「M2×10mmネジ」で固定します。
- arm_link1に「SG5010に付属しているホーン」を「M2×8mmネジ」で固定します。
- arm_link1に「SG5010」を「M3×12mmネジ」で固定します。
- arm_link2に「SG5010に付属のホーン’」を「M2×8mmのネジ」で固定します。
- arm_link2に「SG90」を「M2×8mmネジ」で固定します。
- gripper1_SG90に「SG90に付属のホーン」を「M2×8mmネジ」で固定します。
- arm_link2に「gripper1, gripper1_SG90, gripper2, gripper3」を「M3×12mネジ」で固定します。
- arm_base, arm_link1, arm_link2を合体させたら完成です。ここで、arm_link1, arm_link2が真上を向いた時のサーボの角度が0度(範囲を「-90度~90度」としたとき)になるようにしてください。
※ ロボットアームの各サーボのケーブルはhead_base_standの隙間から中に入れるようにしてください。
配線しよう
次に、配線を行います。
パーツ名 | 商品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
link2より上側にあるサーボは、配線がサーボモータドライバまで届かないので、ジャンプワイヤーを延長するなどしてください
ラズパイのGPIOピンの割り当ては下図の通りになります。
最終的な完成図は以下のようになります。
smaboに取り付けたロボットアームを制御してみよう
ここからは、smaboに取り付けたロボットアームを制御する手順について説明します。
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を二足歩行ロボットにする方法
について解説します。