ネイティブ ROS を使用してロボット研究を簡素化する方法
ホームページホームページ > ブログ > ネイティブ ROS を使用してロボット研究を簡素化する方法

ネイティブ ROS を使用してロボット研究を簡素化する方法

Sep 02, 2023

ロボットレポートスタッフより | 2023 年 8 月 28 日

ロボット オペレーティング システム (ROS) は、ロボット研究用の強力なオープンソース プラットフォームですが、最近まで、ROS ソフトウェア スタックと緊密に統合された工業品質のハードウェアが不足していました。 ロボット機器メーカーはマニピュレーターに独自のクローズドソース ソフトウェアと制御システムを使用しているため、研究者が産業用ロボットで ROS を使用するには険しい山を登らなければなりません。

このニーズに対処し、ROS 開発コミュニティの機能を向上させるために、Tormach は、現代のロボット アプリケーションを悩ませる「ブラック ボックス」問題を回避する、ROS ベースの産業用ロボット マニピュレータおよび制御システムを作成しました。 さらに、Tormach の制御システムである PathPilot は、ロボット プログラミング言語として Python を使用し、ロボット動作のための直感的なプログラミング インターフェイスを作成し、Python パッケージ エコシステムの可能性を解き放ちます。

このオープンソースの ROS ベースのロボティクス プラットフォームには、制御システム、産業用ロボット ハードウェア、すべてのシステム パラメーターへのフル アクセスが含まれており、より多くの研究者、開発者、学生に産業用ロボットを提供する、高速でアクセスしやすいソリューションが作成されます。

ロボット制御メーカーは、次の理由から、ROS 開発者が自社のクローズド ソース コントロール内のすべてのシステム パラメータにアクセスできるようにすることに躊躇しています。

これらの理由により、ROS と市販のロボット ハードウェア間の統合は制限されています。 ROS を他の産業用ロボットに接続するドライバーは存在しますが、その低帯域幅 (10 ~ 100Hz) の実装は、独自のクローズドソース コントローラーにウェイポイントをドリップフィードするだけです。

その結果、ユーザーはロボットがタイミング、速度、および経路精度の意図を遵守しているかどうかにアクセスできない可能性があります。 モーターのトルク、電流、追従誤差などのデータは通常は入手できず、制御ループが遅いため、研究者が達成できることは大幅に制限されます。

VULCAN 装置に設置された OpeN-AM 実験プラットフォームは、溶融金属の層を印刷して複雑な形状を作成する Tormach ZA6 ロボット アームを備えています。 中性子ビームを使って 3D プリントされた溶接部を顕微鏡で観察することで、研究者は加熱と冷却によって生じる応力などの要因をより深く理解できるようになります。 (クレジット: ORNL/ジル・ヘマン)

ROS/HAL ハードウェアおよびソフトウェア スタックは、貴重な制御の機会を提供するフィードバックを提供します。

ZA6 は次の機能を提供します。

これらのフィードバック要素のほとんどは、下位レベルの制御層のみに焦点を当てています。 より高いレベルの制御層は、研究のニーズに応じて他の機会を提供できます。

ROS とロボットのハードウェア間の接続は、ハードウェア抽象化レイヤー (HAL) に依存します。 HAL は、25 年前に国立標準試験研究所 (NIST) で始まったオープンソースの拡張マシン コントローラー (EMC) プロジェクトから発展しました。

HAL は柔軟で 100% オープンソースであり、世界中の何千台ものマシンで使用されているため、HAL の開発は LinuxCNC および Machinekit プロジェクトを通じて現在も活発に行われています。

HAL は、名前付き信号を介して接続する名前付きピンを更新、読み取り、書き込みすることによって相互に通信するモジュラー コンポーネント (ロード可能なバイナリ モジュール) で構成されます。 ある意味、HAL は ROS に似ていますが、重要な違いがあります。

Tormach ロボットは、ROS とオープンソースの hal_ros_control コンポーネントの間のギャップを埋めます。 HAL と ROS を組み合わせることで、豊富なロボット データをユーザーに公開できます。 すべてのプロセス データには、シェル コマンド、データ ロガー ユーティリティ、およびグラフィカル スコープを介してアクセスできます。 トルク、電流、追従エラー、位置、速度などを含む EtherCAT バス上のすべての情報は 1 kHz で利用可能であり、HAL 経由で ROS に公開されます。

HAL はモジュール式で柔軟性があるため、ユーザーは事前に構築された HAL コンポーネントを使用するか、C または Python で新しいコンポーネントを作成することによってロボットの HAL 構成を変更でき、ほぼすべての外部デバイスまたはプロセスと簡単に統合できます。