はじめに
こんにちは、アールティのクアンです。今回のブログは社内で行われたチーム開発研修について解説していこうと思います。本当研修では計3回ブログを書きます。今回はその初回のブログです。よろしくお願いします。チーム開発研修について
チーム開発研修とは、新入社員が一つのチームを組んでCRANE-X7とROS2でピックアンドプレースシステムを開発する課題です。以下の画像の中にある箱を一つ選択し、CRANE-X7でその箱を掴んで指定された目標位置まで移動させる課題です。目標位置は4箇所の置き場所があり、箱を順番に置く必要があります。また、箱のスタート置き場は一定範囲内のランダムに置かれるため、箱を掴む前に箱の位置を探すための画像処理も行わなければなりません。開発内容について
今回の課題では私がソフトウェア開発を担当し、ROS2でRealSenseD435カメラとCRANE-X7を制御するシステムを開発しました。私たちはアールティが公開したCRANE-X7のROS2パッケージを基にArUcoマーカによるピックアンドプレースを改良し、システムを開発しました。
元のサンプルコードでは、ID:0のArUcoマーカを貼った箱を自動で探し、掴んである目標位置まで移動させるため、このサンプルコードに4箇所の目標位置を追加したら、今回の課題で求められた動きを作成出来ました。改良したサンプルコードによるピックアンドプレースデモは以下の動画のようになります。
setTargetPose
を使用したため、各目標位置ごとに個別に最適化され、一貫性のない経路が見られます。二つ目の問題は、マニピュレータが断続動作を行う際に関節に摩擦力が働き、目標位置から次の目標位置へ移動する時の負荷が大きくなることです。
これらの問題点を解決するために、MoveItのCartesianパスを使用し、直線補間による連続的な軌道生成が可能になり、目標位置までの滑らかな動作が期待できます。Cartesianパスによる軌道生成はアールティが公開したCRANE-X7用のサンプルコードを参考し、作成しました。また、Cartesianパスを使用したピックアンドプレースデモは以下の動画のようになります。