コンテンツにスキップ

2025年5月16日(金)14時ごろより、チェックアウトに進めない不具合を確認していましたが、現在は問題解消しております。

2025年5月16日(金)14時ごろより、チェックアウトに進めない不具合を確認していましたが、現在は問題解消しております。

【MyActuator】RMD-X4を動かしてみる

【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シリーズなどの特注シリーズ注文ページ

前の記事 【自作キーボード】自作のConta基板で遊んでみよう!
次の記事 Design It Your Way: Get the Bare RP2350A IC from SparkFun