<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>ロボット作る</title>
<link>https://ameblo.jp/satoki-maeda/</link>
<atom:link href="https://rssblog.ameba.jp/satoki-maeda/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>ロボット作ります。</description>
<language>ja</language>
<item>
<title>とりあえずロボットアームが動くようになった</title>
<description>
<![CDATA[ <p>物をつかんで運べるロボットアームが一応何とかできました。<br>先端から2番目のモーターが2回ほどプルプル振動してしまっていますが、これはSG-90でちょくちょく見かける挙動です。<br>1回目の振動は原因不明、2回目は可動範囲ぎりぎりのため発生しています。<br>下から2番目のモーターに特に負荷がかかっていて、負荷が大きくなるような姿勢をさせると、自力でアームを持ち上げることができません。<br>負荷の小さい姿勢でも、数分動かしているとモーターが熱くなり、それでモーターを一つ壊してしまいました。<br><br>＜改善すべき点＞<br>モーターの可動範囲ぎりぎりは使わないような構造にする。<br>下から1, 2段目のモーターはもっとトルクのあるモーターに変える。<br><br>コンコンと鳴っている音は、ゲームパッドのスティックを操作する音です。</p><p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/HB6OoSv1hvU?si=jXzieloFrATyMk1N" title="YouTube video player" width="560"></iframe></p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12965497709.html</link>
<pubDate>Fri, 08 May 2026 13:49:47 +0900</pubDate>
</item>
<item>
<title>レイテンシー改善</title>
<description>
<![CDATA[ <p>ルーターを通さずに通信するようにすると、レイテンシーが改善しました。</p><p>＜経緯＞</p><p>まず、pingコマンドでレイテンシーを計測できることが分かったので、PC対PCでレイテンシーを計測してみると、10~300msでした。</p><p>次に、1台のPCにWindowsのモバイルホットスポットを設定し、別のPCを接続してpingでレイテンシーを計測してみると、3msでした。</p><p>そこで、モバイルホットスポットにラズパイゼロを接続してみたのですが、pingが通りませんでした。</p><p>なんやかんやしているとラズパイゼロが起動しなくなってしまったので、初期化したところ、OSのバージョンが最新になり、pingが通るようになりました。</p><p>ところが、今度はなぜかgRPC通信ができなくなってしまいました。</p><p>そこで、UDP通信を使うようにしました。</p><p>gRPCからUDPに変えたことによっても少し早くなっていると思います。</p><p>ちなみに、ラズパイゼロのOSを最新にするとラズパイゼロ側でもホットスポットを設定できるようになったのですが、やってみるとなぜか機能しませんでした。</p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12958350740.html</link>
<pubDate>Mon, 02 Mar 2026 00:30:44 +0900</pubDate>
</item>
<item>
<title>ラズパイゼロでサーボモーターを動かす</title>
<description>
<![CDATA[ <p>Raspberry Pi Zero WHを使って5個のサーボモーターを動かせるようにしました。</p><p>以前、同じ様な事をやりましたが、今回はPICマイコンからラズパイゼロに変え、PCとの通信をUSBからWiFiに変えました。</p><p>サーボモータは電源が5V、信号が3.3Vになってしまっていますが、一応、動くみたいです。</p><p>動きがカクカクしているのは、おそらくgRPC通信のレスポンスの悪さが原因ではないかと思います。</p><p>ぎこちないですが、とりあえずこのままいきます。</p><p>電源：ACアダプタ（5V）</p><p>配線：Autodesk EAGLEでプリント基板を設計して、pcbgogoに発注しました。</p><p>PCとの通信：gRPC</p><p>GPIO制御：pigpio（python）</p><p>サーボモーター：SG-90</p><p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/yzExBSnZjrc?si=lXGzjnlIMXSDoKqu" title="YouTube video player" width="560"></iframe></p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12957687302.html</link>
<pubDate>Mon, 23 Feb 2026 21:28:52 +0900</pubDate>
</item>
<item>
<title>4軸ロボットアームをゲームパッドで操作</title>
<description>
<![CDATA[ <p>4軸ロボットアームをゲームパッドで操作できるようにしました。</p><p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ga-7AxiTVKg?si=YXEJvKde9tpVczr3" title="YouTube video player" width="560"></iframe></p><p>参考にした記事：</p><p><a href="https://qiita.com/kob58im/items/0273632e96afceca7d0a" rel="noopener noreferrer" target="_blank">C#でライブラリレスでJoyStick(GamePad)の入力イベントを受け取る (Windows API)</a></p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12956710825.html</link>
<pubDate>Sat, 14 Feb 2026 18:07:49 +0900</pubDate>
</item>
<item>
<title>4軸ロボットアーム</title>
<description>
<![CDATA[ <p>6軸を作るのは大変なので4軸にします。<br>4軸でも「あ」を書かせてみました。</p><p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/sZ87-_GZmoo?si=QWqOZZirqVeXpFR2" title="YouTube video player" width="560"></iframe></p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12956640032.html</link>
<pubDate>Sat, 14 Feb 2026 00:23:52 +0900</pubDate>
</item>
<item>
<title>ロボットアーム シミュレーション スムーズに文字を書く</title>
<description>
<![CDATA[ <p>直前の姿勢を初期値として計算するようにするだけでスムーズに動くようになりました。</p><p><iframe allowfullscreen class="youtube_iframe" frameborder="0" height="274" src="https://www.youtube.com/embed/0Ta0bSWT3C8" width="488"></iframe></p><p>&nbsp;</p><div class="ogpCard_root">&nbsp;</div><p>&nbsp;</p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12911200020.html</link>
<pubDate>Tue, 17 Jun 2025 22:16:42 +0900</pubDate>
</item>
<item>
<title>ロボットアーム 文字を書くシミュレーション</title>
<description>
<![CDATA[ <p>ロボットアームで文字を書くシミュレーションをしてみました。</p><p>時々あり得ない速さでぴくぴく動いてますが、実際のロボットにこんな動きはさせられないので、直す必要があります。</p><p><iframe allowfullscreen class="youtube_iframe" frameborder="0" height="274" src="https://www.youtube.com/embed/FJWGmOMQxVM" width="488"></iframe></p><p>&nbsp;</p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12911196917.html</link>
<pubDate>Tue, 17 Jun 2025 21:51:49 +0900</pubDate>
</item>
<item>
<title>ロボットアームのハンド姿勢制御</title>
<description>
<![CDATA[ <p>ハンドの姿勢から各軸の角度を計算できるようにしました。</p><p><iframe allowfullscreen class="youtube_iframe" frameborder="0" height="274" src="https://www.youtube.com/embed/0bnE8OZFeDs" width="488"></iframe></p><p>&nbsp;</p><p>&nbsp;</p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12910658226.html</link>
<pubDate>Sun, 15 Jun 2025 11:23:40 +0900</pubDate>
</item>
<item>
<title>ハンドの姿勢から各軸の角度を計算する</title>
<description>
<![CDATA[ <p>各軸の角度を直接制御する方法だと、ハンドを目的の場所に持っていくのが難しいので、ハンドの姿勢から各軸の角度を計算するようにします。<br>＜ハンドの姿勢の定義＞<br>アームが向いている方向をZ軸、アームの上方向をY軸とし、<br>アームの先端の点q0、アームの先端からZ軸方向に1mm進んだ点q1、アームの先端からY軸方向に1mm進んだ点q2、<br>の3点でハンドの姿勢を定義します。<br>＜誤差の定義＞<br>現在のアームの姿勢をp0, p1, p2とし、誤差を<br>S=(p0X-q0X)^2+(p0Y-q0Y)^2+(p0Z-q0Z)^2<br>+(p1X-q1X)^2+(p1Y-q1Y)^2+(p1Z-q1Z)^2<br>+(p2X-q2X)^2+(p2Y-q2Y)^2+(p2Z-q2Z)^2<br>とします。<br>＜計算方法＞<br>LM法を使って誤差が0となるような各軸の角度を計算します。</p><p><a href="https://stat.ameba.jp/user_images/20250614/23/satoki-maeda/18/19/p/o0631037915616910250.png"><img alt="" height="252" src="https://stat.ameba.jp/user_images/20250614/23/satoki-maeda/18/19/p/o0631037915616910250.png" width="420"></a></p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12910583092.html</link>
<pubDate>Sat, 14 Jun 2025 23:45:20 +0900</pubDate>
</item>
<item>
<title>ハンド座標系からワールド座標系への変換</title>
<description>
<![CDATA[ <p>＜関節が1個の場合＞</p><p>関節の先の部分に固定された座標系を座標系Aとし、</p><p>関節の軸上の点cを座標系Aの原点とすると、</p><p>座標系Aからワールド座標系への座標変換行列は</p><p>M=T(c)*関節での回転行列</p><p>となります。</p><p>ここで、T(c)はcだけ平行移動する平行移動行列、</p><p>cはワールド座標系における点cの座標です。</p><p>また、座標変換行列をベクトルの左からかける形式で表記しました。</p><p>&nbsp;</p><p>＜関節が6個の場合＞</p><p>関節ごとの座標変換を繰り返せばよいので、</p><p>ハンド座標系からワールド座標系への座標変換行列は</p><p>M0(θ0)M(θ1)M2(θ2)M3(θ3)M4(θ4)M5(θ5)H</p><p>となります。</p><p>ここで、Hはハンド座標系から関節5の座標系への座標変換行列、</p><p>Mi(θi)は関節iの座標変換行列、</p><p>θiは関節iの角度であり、</p><p>関節は根元から順に0, 1, ...としました。</p>
]]>
</description>
<link>https://ameblo.jp/satoki-maeda/entry-12910582912.html</link>
<pubDate>Sat, 14 Jun 2025 23:43:35 +0900</pubDate>
</item>
</channel>
</rss>
