
【MyActuator】RMD-X4を動かしてみる
皆さんこんにちは。
今回の記事は、MyActuatorのモータ、RMD-X4のご紹介です。
RMD-X4について
RMD-X4は直径54 mm、高さ44 mmの小型アクチュエータです。UARTとCANでの制御に対応しており、ケーシングと出力軸には、締結用にM3のめねじがそれぞれ切ってあります。(出力軸:3箇所,ケーシング:7箇所)
上側の4芯コネクタにはUARTインターフェースと電源・GND端子、下側の6芯コネクタにはCANインターフェースとモータ電源・GND端子x2が配置されています。
Windowsでモータを動かしてみる
myActuator公式から配布されている、Windows向けデバッガソフトを使用して、モータを動かしてみます。
付属の4芯ケーブルをモータとUSB-UART変換基板へ接続します。また、モータを駆動する電源は、CANインタフェースのついている6芯のピンについていますので、6芯ケーブルも同様にモータへ接続します。この場合には、電源端子のみを使用します。
RMD-X4は24V電源によって駆動しますので、ご使用の際には別途24V電源をご用意ください。USBケーブルでPCとUSB-UART変換基板を接続し、電源を投入したら、ハードウェア側の準備は完了です。
続いて、ソフトウェアの準備を行います。
動作には、MyActuator公式から配布されているソフトウェアを使用しました。なお、OSはWindows11です。"Shared data download"から各種ソフトウェアやドキュメントの入ったzipファイルをダウンロードし、解凍します。ダウンロードと解凍が済んだら、USBドライバをインストールします。
USBドライバのインストールが終わったら、デバッガソフト(私の環境ではMC_300.exeでした)を起動します。
モータの電源が入り、USBドライバのインストールが完了している状態でデバッガソフトを起動すると、以下のようなウィンドウが表示されます。
ウィンドウ左上のinc Angleやabs Angleに値を入力してボタンをクリックすると、モータが回転を始めます。
ROSを用いてモータを回してみる
続いて、ROSを用いてモータを回してみます。使用したコードはこちらです。
(2b-tさんのコードをフォークして使用させていただきました)
開発環境は以下の通りです。
OS | Ubuntu 22.04 |
ROSバージョン | Humble |
CANのインターフェースには、某密林で購入したUSB-CANインターフェースドングルを使用しました。
Overviewに従って、ROSワークスペースのソースフォルダ内にパッケージをダウンロードし、ビルドします。ビルドが完了したら、モータに電源が入っていること、CANインタフェースがPCと接続されていて、通信可能な状態になっていることを確認します。
私の環境では、can0というインターフェースとしてUSB-CANドングルが認識されていましたので、can0を通信可能な状態にするスクリプトを記述し、それを呼び出しています。
全てOKなら、以下のコマンドでドライバを起動します。
ros2 launch myactuator_rmd_bringup myactuator_rmd_control.launch.py actuator:=X4_3 simulation:=false
コマンドを実行すると、rvizが立ち上がり、モータを動かすことができるようになります。
なお、全てのモデルに対応させるためには、一部のコードを書き換え、3Dモデル関連のファイルを追加する必要があります。
まず、書き換える必要のあるコードについて説明します。変更する必要があるコードは、myactuator_rmd_description/launch/myactuator_rmd.launch.pyの36行目です。
変更前
actuator_cmd = DeclareLaunchArgument(
actuator_parameter_name,
choices=['X8ProV2', 'X12_150'],
default_value='X8ProV2',
description='Type of the actuator'
)
変更後
actuator_cmd = DeclareLaunchArgument(
actuator_parameter_name,
choices=['X4_3', 'X8ProV2', 'X12_150'], # changed
default_value='X8ProV2',
description='Type of the actuator'
)
元々、launchする際に与えることのできるパラメータは、'X8ProV2'と'X12_150'の2つでした。使用するモータに応じて、適したパラメータを追加で定義してあげる必要があります。
次に、3Dモデル関連ファイルの追加についてご説明します。このROSパッケージでは、上記のlaunchファイルによって呼び出されるパラメータに対応する、3Dモデルを用意する必要があります。モデルは、myActuatorのダウンロードページにて配布されているものを利用すると便利です。今回使用しているモータはRMD-X4 V3なので、そのモデルを使用しています。
ダウンロードした3Dモデルを、Fusionなどの3DCADでstlファイル等へ変換し、Blenderに取り込みます。取り込んだら、原点が3Dモデルの回転軸に合うよう位置を調整し、daeファイルとして出力します。
また、rosパッケージが3Dモデルを参照するために使用する、xacroファイルも用意します。これは、他のモータに対応したxacroをコピーし、適宜変更してあげると簡単です。
変更前(X8ProV2.xacro)
visual="$(find myactuator_rmd_description)/meshes/visual/X8ProV2/X8ProV2.dae"
radius_1="0.028" height_1="0.0125"
radius_2="0.049" height_2="0.034"
radius_3="0.03" height_3="0.0025" mass="0.71"
変更後(X4_3.xacro)
visual="$(find myactuator_rmd_description)/meshes/visual/X4_3/X4_3.dae"
radius_1="0.0" height_1="0.0"
radius_2="0.027" height_2="0.044"
radius_3="0.0185" height_3="0.0005" mass="0.30"
"visual"については、daeファイルのパスを記述します。また、radius_1、radius_2、radius_3に代入するパラメータは、データシートから持ってきています。
これらの変更を加えて、パッケージをビルドすれば、現在対応していないモータについても、ROSで動かすことが可能になります。ぜひお手元でお試しください。
RMD-X4はこちらから
myActuator製品はこちらから
RMD-X V4,RH,RMD-Hシリーズなどの特注シリーズ注文ページ