2 ポイント 投稿者 GN⁺ 2024-04-03 | 1件のコメント | WhatsAppで共有
  • Low-Cost Robot Arm リポジトリは、約 $250 で作成・制御できるロボットアーム用ファイルを提供しており、別途 leader arm を追加すると合計約 $430 の構成で follower arm を操作できる
  • follower arm は Dynamixel XL430XL330 サーボを併用し、XL430 は最初の2つの関節に使われ、XL330 は18gと軽いためアームを軽量かつ高速にするために使われる
  • Dynamixel の U2D2 adapter は高価で遅延時間が大きいため、このビルドではより安価な Waveshare Serial Bus Servo Driver Board を使用し、Dynamixel SDK で制御可能
  • 製作には3Dプリント、各モーターの baudrate 1M 設定、servo ID の指定、電圧降圧器の調整が必要で、XL330 の入力電圧は Dynamixel Wizard で確認して 5V に合わせる
  • leader arm は5Vモーターのみを使用するため組み立てがより簡単で、teleoperation.py で2本のアームをテストでき、simulation.py で基本的な MuJoCo シミュレーション環境を実行できる

プロジェクト概要

  • Low-Cost Robot Arm リポジトリには、低コストのロボットアームを作成・制御するためのファイルが含まれる
  • 基本の follower arm の費用は約 $250 で、leader arm を追加すると約 $180 がさらに必要となり、合計 $430 の構成になる
  • すべての部品を1つのパッケージで受け取るためのウェイティングリストは https://tau-robotics.com/robots で提供されている
  • leader arm の設計は GELLO project に着想を得ているが、より簡単に作れるよう単純化されている
  • このロボットアームは robot learning に適しており、2台使えば 衣類をたたむ ことも可能

サーボと制御方式

  • follower arm は Dynamixel XL430Dynamixel XL330 サーボモーターを使用する
    • XL430 は XL330 よりほぼ2倍強力で、最初の2つの関節に使用される
    • XL330 はより非力だが、それぞれ 18g と軽量で、アームを軽く高速にする
  • Dynamixel はサーボをコンピューターに接続するために U2D2 adapter を販売しているが、このビルドではコストと遅延時間の問題から、より安価なアダプターボードを使用する
  • ロボットアームは Dynamixel SDK で制御できる
    • インストールコマンド: pip install dynamixel-sdk

Follower Arm 構成

  • follower arm の総部品コストは $258 と整理されている
  • 主な部品は以下の通り
    • 2x Dynamixel XL430-W250: $100
    • 4x Dynamixel XL330-M288: $96
    • XL330 Idler Wheel: $10
    • XL430 Idler Wheel: $7
    • Waveshare Serial Bus Servo Driver Board: $10
    • Voltage Reducer: $10
    • 12V Power Supply: $12
    • Table Clamp: $6
    • Wires: $7
  • Robotis shop には通常 10%割引コード がある
  • グリッパーには grip tape を追加すると役立つ場合がある
  • servo driver board をコンピューターに接続するには USB-C ケーブル が必要

Follower Arm の組み立て手順

  • 組み立て動画は https://youtu.be/RckrXOEoWrk で提供されている
  • すべての部品は 3Dプリンター で出力する
    • STL ファイルは hardware/follower/stl にある
    • 部品は出力しやすいように設計されており、グリッパーの可動部品のみ support が必要
  • モーターのスキャン手順は以下の通り
    • driver board をコンピューターに接続し、Linux と MacOS で動作するはず
    • MacOS の例のように ls /dev/tty.* でデバイス名を確認する
    • Dynamixel Wizard で各モーターを個別にスキャンする
    • すべてのモーターの baudrate を 1M に設定する
    • servo ID は肩からグリッパーまで 1 から 5 に設定し、elbow-to-wrist extension を使う場合は 6 まで設定する
  • 組み立て段階では CAD と同じ位置にサーボを固定し、servo horn はネジで固定する際に基本位置にある必要がある
  • 電源構成では voltage reducer にはんだ付けし、driver board と base に固定してから接続する
    • voltage reducer の入力は driver board の V と G ポートに接続する
    • 出力と driver board の残りの D ポートは elbow servo に接続する
    • XL330 servo に接続した後、Dynamixel Wizard で入力電圧を確認し、voltage reducer のネジを調整して 5V に合わせる

Leader Arm とシミュレーション

  • leader arm の総部品コストは $183
  • 主な部品は以下の通り
    • 6x Dynamixel XL330-M077: $144
    • XL330 Frame: $7
    • XL330 Idler Wheel: $10
    • Waveshare Serial Bus Servo Driver Board: $10
    • 5V Power Supply: $6
    • Table Clamp: $6
  • leader arm はすべてのモーターが 5V を使用するため、組み立てがより簡単
  • グリッパーは handle と trigger に置き換えられる
  • 使用中に trigger に小さな torque を適用すると、デフォルトで開くようにできる
    • GELLO の設計ではこのために spring を使用するが、組み立てがはるかに難しい
  • teleoperation.py スクリプトでアームをテストできる
    • ただしデバイス名は調整が必要な場合がある
  • simulation.py を実行すると、基本的な MuJoCo シミュレーション環境を使用できる

1件のコメント

 
GN⁺ 2024-04-03
Hacker Newsのコメント
  • 同じくらいのサイズのロボットアームを作り始めた。長年の友人にガラス工芸家がいるので、多面カットのガラスペンダントを作る用途を考えている
    友人は多面カット用の機械を持っているが、手動式だ
    難しいのは 繰り返し精度 だ。公差を厳しく保つ必要があり、アームの各関節はベースから遠くなるほど誤差を増幅する。ベースが1mm揺れると、20cm先のアーム先端では4mm揺れ、その先のアームではさらに大きくなる
    多面カット用途なら、減速機なしのサーボよりはるかに細かい分解能が必要だ。減速は厄介で、関節をしっかり保持するにはバックラッシュを抑える必要があるが、動かすときに摩擦が大きくなりすぎてもいけない。ウォームギアは遅く、剛性が高すぎてあまり向いておらず、アーム内部のギアには サイクロイド減速機 が最もよさそうだ。ガラスをつかむのはかなり危険なので、ある程度フィードバックのある本物のサーボも必要になる
    製作費は1,000〜2,000ドル程度と見積もっており、大半は減速機の費用だ

    • 産業用ロボットで驚かされる点の1つは、停止状態でどれほど 高剛性 かということだ。速度と荷重が大きくなると、制動システムも難しい課題になる
      ハードウェアをどうにか動かせた後でも、運動学ソルバーをきちんと動作させるのは非常に大きな難題だ。例外ケースが多く、リアルタイムのフィードバックを処理しなければならず、使いやすさと信頼性のバランスも取る必要がある。ロボット企業が高額な対価を取る部分であり、それだけの理由がある
      ロボットアームを作らずに、もっと単純な運動構造で置き換えられるなら、そのほうがよい。それでも作れたなら本当にすごい
    • 以前に似たようなプロジェクトをやったことがあり、数千ドルの範囲で性能限界を押し上げるロボットアームだった。ステッパーモーター と、十分に低バックラッシュな減速機でかなり良い結果が得られた
      参考までに、人の腕をある程度モデル化しようとした設計で、到達距離約80cm、荷重2.5kgで約1mmの繰り返し精度まで達した
      具体的には、エンドエフェクタの荷重要件に応じて NEMA34、24、17 を混在させて使える。前方の関節にはより大きなモーターを使う。予算があるならサイクロイドやハーモニック減速機を使えばよく、そうでなければ各アクチュエータ(モーター+ドライバ+減速機+軸カップリング)は供給元と要件次第でおおよそ100〜200ドル程度だ。閉ループシステムは50ドルほど追加になる。価格面ではそれほど悪くない。ベース関節には荷重をよりうまく分散する幅広の円筒形減速機が必要だ
      加工業者と協業できるなら、かなり高品質に作れると思う。設計の参考例は以下の通りで、中には趣味で作る自分よりもさらに出来がよさそうなものもある
      https://www.youtube.com/watch?v=7z6rZdYHYfc これは素晴らしい。もっと小さく軽い版をゆっくり動かせば、ベースの揺れはさらに減るはずだ
      https://www.youtube.com/shorts/II8gdIXPgaE 元記事により近い
      https://www.youtube.com/shorts/_x7P9eZCkVM
      https://www.youtube.com/watch?v=g9AfhqOd-_I これまで見た中で最もプロフェッショナルで、この部品表でもほぼ確実に3,000ドル未満、中国ならおそらく1,000ドル未満だろう。あまりに格好いいので、この会社にもっと小さいモデルを売っているかメールしてみようと思っている
      https://www.youtube.com/watch?v=iB2NAgfVjIs Chris Annin もぜひ見る価値がある。低価格なオープンソースのステッパーモーターロボットを最もうまく作っている米国のロボット工学者の1人だと思う
    • これを高価なハードウェアではなく ソフトウェア で解決できないだろうか?
      以前に考えたアイデアは、大きな動きは安価で「ぐらつく」部品で作ったアームに任せ、先端には可動範囲は小さいが非常に精密に制御できるステージを追加する方式だ
      最後に、ツールの実際の位置が目標位置からどれだけずれているかを非常に高精度で追跡する方法を加える。たとえばツールに取り付けたカメラかもしれない
      そうすれば、ソフトウェアのフィードバックループがツールの偏差を追跡し、先端の「補正」ステージでそれを相殺できる
      ただ、実際に成り立つかは分からない。「相殺」にかかる時間も問題だ。ピックアンドプレースのように経路の終点で最終的に目標位置へ到達すればよい場合と、エッチングや溶接のように経路全体で最大偏差以下を維持しなければならない場合は違う
    • こういうことはよく考えるが、時間が取れていない。Nvidia Omniverse の中でアームを作り、安価な高分解能の距離・角度センサーのようなフィードバックを追加したうえで、それを補正する機械学習モデルを訓練できないだろうか?
    • ハードウェアにはあまり詳しくなく、主にソフトウェア寄りなので完全に間違っているかもしれない
      こういう状況では、ステッパーモーターを サイクロイド減速機 で大きく減速して使うのはどうだろう? 頭の中では、位置を非常に制御しやすく再現性高くできて、バックラッシュは主に減速機が処理してくれる気がする
      間違っているなら知りたい。言った通り、ソフトウェア畑の人間がハードウェアに足を踏み入れようとしているところだ
  • 低価格で高品質、ある程度標準化されたロボットアームを大量生産している企業が、いまだにはっきり存在しないのは驚きだ。3DプリンターやCNC機械のようなものは消費者/アマチュア向け価格帯まで下りてきたのに、この分野はまだあまり開拓されていないように見える。
    ArduinoやRaspberry Pi級の可能性はありそうだが、それほど有名な名前やエコシステムはまだ聞いたことがない。

    • しばらくロボットアームを開発するスタートアップで働いていた。そこで分かったのは、まともなAPIがあって無料でロボットアームを誰かに渡したとしても、あまり役に立たないということだ。難しいのは役に立つ自動化を作ることだからだ。
      ほとんどの人は数時間遊んだあと、棚の上に置いて終わる。
      ユースケースごとにまったく異なり、作業量も大きい。何かを動くように作れても、机をうっかり揺らしたり、アームが何かにぶつかったりすると座標が全部狂ってしまい、最初からやり直しになる。
      実際の機械構造も本当に複雑だ。50cmのリーチで意味のある荷重を持たせようとすると、ベース関節には非常に大きなトルクがかかり、同時に超高精度も必要になる。そうなると高価なギアやモーターが必要で、どちらも安くはない。
      安全面の問題もある。実用的な荷重を持てるアームはかなり重く、その質量が振り回されるなら安全システムが必要になる。これも安くない。
      少しハードウェア版ノーコードのようなものだ。ロボットアームのプログラミングは本質的に難しいので、簡単に使えるロボットアームを作るのは難しい。これを変えられるのは本当に優れたAIだけだと思う。
    • 標準的なホビー用ロボットアームが存在しないのには理由がある。
      人は「本物の」ロボットアームより安く自作できると思いがちだが、たわみと繰り返し精度を計算に入れていない。
      HNにRCサーボで作ったロボットアーム設計を投稿した人には敬意を払うが、繰り返し精度の測定値を見てみたい。1週間、毎日同じパターンを紙に描かせて、7本の線がどれだけ重なるか見せてほしいということだ。そもそもそんなものを描けるかどうかも疑わしい。紙を破るか、あるいは紙を破る力すらなく引っかかって終わるかもしれない。
      根拠としては、1980年代からホビーロボットを作っており、1990年代には修士論文を含めてロボットを研究し、この10年の大半をロボティクス教育に費やしてきた。
    • このスレッドと、「ロボットアームの使い道を見つけた人はいるのか?」という数々の問いへの回答をざっと見れば、なぜそういう企業がないのか分かる。単純にコンシューマー向け市場が存在しないのだ。
    • そうした製品は一応あるが、現在の汎用ロボットでリーチ1.2m程度なら、「安い」と言っても約1万ユーロだ。その金額なら高品質な機械とソフトウェアを手にしていることになる。
      非常に優れた運動学ソフトウェアがないロボットは、ほとんど使い物にならないという点も重要だ。アーム本体のほかに、電力と命令をリアルタイムで安定して伝送する制御ボックスも必要で、このコストもかなり上乗せされる。
    • まず自分に、何の問題を解決しようとしているのかを問うべきだ。
      それを定義すると、ほとんどすべての場合で、6自由度ロボットアームよりはるかに単純で安価な解決策があるとすぐ分かる。
      本当にそうしたロボットアームが必要なケースなら、あらゆる要素を踏まえれば1万~2万ドルはかなり安い部類だ。
  • 発想のスケールを少し下げて、人について回り、荷物を運び、障害物を避ける低価格のロボットプラットフォームから始めるのはどうだろう。アームはなくてもよく、荷物の積み下ろしは自分の腕でやっても構わない。
    脚を痛めて松葉杖を使っていたとき、物を持って移動することが急に問題になった。移動が不便な人は多い。そうでなくても、物をしょっちゅう妙な場所に置いてしまうので、そういう場面でも役立つかもしれない。
    AliExpressには玩具のロボット下部プラットフォームがたくさんあるが、最大寸法が20cm未満で、実用には小さすぎる。

    • Bellabot[0]を思い出す。専用設計の棚に磁石でドッキングするRoombaのようなロボットを作っているスタートアップもある。
      ただし250ドルで売られているわけではないので、実際のRoombaや「ホバーボード」Segwayコピー品をROS対応に改造する方向[3]のほうが、コスト効率は高いかもしれない。
      0: https://www.youtube.com/watch?v=l1hQ5YTMJEw
      1: https://www.youtube.com/watch?v=SdVglHOJgiA
      2: https://github.com/hoverboard-robotics/hoverboard-driver/tre...
    • 「Follow me」スーツケースはすでに存在する。
      https://www.aristavault.com/products/follow-me-smart-luggage
    • 人について回り、荷物を運び、障害物を避ける低価格ロボットプラットフォームというのは、実質的には自動運転の小型車両だ。企業は自動運転車に何十億ドルも投じているが、成果は限定的だ。
    • TurtleBotが小さすぎるかと聞こうとして、先に価格を確認した。たぶんTurtleBotの1,000ドル超ではなく、250ドル前後の価格帯を考えているのだろう。
  • 誰もこれを挙げていないのが驚きだ。
    https://github.com/peng-zhihui/Dummy-Robot
    ただし読むのは少し大変かもしれない。

  • ギークとしてはよだれが出るが、実際に家庭で使えるロボットアームの用途を見つけた人はいるだろうか? 良いプロジェクトがあるときは、ハッキングはいつだってもっと楽しい

    • イースターの長い連休のあとに子どもたちが残していった巨大なLegoの山を拾い上げて仕分けするのに使いたい。ブロックのデータベースのコーパス品質が高いので、識別はそれほど難しくなさそう
      そこまで速くある必要もない。一晩中動かしておけばいい
      理想的な分類アルゴリズムについての面白い論文も、誰かが書いていそうだ。たとえば大きいものから小さいものの順にするのか、それとも単に一番近いものをつかんで移す方式なのか、といった話。個人的には、基本セットごとに分類したあと、トレイをちゃんと元の引き出しに戻すところまでやってほしい
    • 非実用的な用途なら、マルチモニター構成でモニターアームを何本かロボットアームに置き換えること。そうすれば、いくつかの配置をすばやく切り替えられる
      もう1つは、キッチンでパスタをかき混ぜるアーム
    • あまりない。机の上にUArmがあるが、これはこの製品とかなり似ていて、ただもっと安いサーボを使っている。精度が低すぎて、ほとんど何にも使えなかった
      3Dマウスで力覚フィードバックセンサーも作って取り付けた。アイデアは悪くなかったが、その用途には十分に剛性がなかった
    • このスレッドで一時的な障害を抱えていた読者が、実用的な用途のアイデアを投稿していた
      https://news.ycombinator.com/item?id=39903953
    • Roboexoticaは、こういうアームを何本も使って生産ラインを作れと叫んでいる
      http://roboexotica.at/
  • これが面白いなら、これも気に入るかもしれない。DIYではなく完成品で届く
    https://www.waveshare.com/roarm-m2-s.htm
    1台持っているが、この価格帯を考えるとビルド品質は本当に印象的

    • 以前、本気で購入を検討していた5自由度バージョンもある。ただ、ROS 2統合がまともかどうかを判断するのが本当に難しい: https://www.waveshare.com/product/robotics/roarm-m1.htm
      6自由度バージョンがないのは本当に残念。アームの可動半径内で何かをちゃんとつかむには、それが必要
    • まったく必要ではないけれど、机の上にはぜひ1台置いておきたい品
    • Amazonみたいなところにも、こういうのはあるのだろうか?
    • ソフトウェアサポートはどう?
  • これがどれくらい重いものを持ち上げられるか知っている人はいるだろうか?
    ホームジムで運動するときに視線追跡で扇風機を操作して、顔に風が当たるようにしたいのだが、扇風機は数ポンドある
    代案として、こういうプロジェクトに使えるハードウェアモーターのおすすめも知りたい

    • こうしたロボットの多くはサーボモーターを使う。機敏な動きはできるが、どの位置でも保持するには常に保持トルクが必要ということでもあり、荷重は限られ、電力もかなり無駄になる
      重い扇風機なら、動く空気の反作用も忘れてはいけない。アームに付けるより、何らかのベアリングの上に載せてモーターで回転だけさせるほうがよい。そうすればモーターが常に重力と戦わなくて済む
      ここでリンクされているロボットアームはDynamixelサーボを使っているので、そのうち1つだけ使って回転台の上の扇風機を回すこともできる。ずっと安くて、ずっと単純
    • 重さの大部分をアームから外したらどうだろう? ベースに取り付けた扇風機やコンプレッサーを使って、アームではダクトだけをつなぐ方式。そうすれば重いモーターではなくダクトだけを動かせばいい
  • Thor 3Dプリントアームを作っていたところだったが、このプロジェクトのほうがずっと良さそう。方向転換すべきかもしれない
    付け加えると、このサーボはゲームチェンジャー

    • これらのサーボはSG90より良いの?
  • 長年のDynamixelユーザーとして、U2D2アダプターが他の選択肢に比べて高いのは同意する。ただ、「レイテンシが非常に高い」という主張には、ある程度の定量化が必要に思える
    複数のプラットフォームで常に低レイテンシ、だいたい1ms程度を期待できる安定した選択肢だと感じていた

  • サーボを3つくっつけてロボットを作ったと主張するのは、もうやめてほしい :D
    サーボの動きがかなりぎこちないので、この「ロボット」が動いている様子を見せる動画がないのだろう

    • ロボットが動く動画はこちら: https://twitter.com/alexkoch_ai。このロボットアーム設計の利点は、とても軽いこと
      XL330モーターは1個あたりわずか18gしかない。だから遠隔操作やロボット学習に非常に向いている
    • ロボティクスをもう少し深くやってきた立場として、その気持ちは完全にわかる。それでも、基本的な内容を共有することを後押しするのは良いことだと思う。このスレッドでも多くの入門者が興味を持ち、さらに掘り下げていけるかもしれない
      まともな制御アルゴリズムを使えば、低価格サーボベースのロボットアームをどこまで滑らかに動かせるのか気になる