RemoteSOEM

このLinkはSOEMを動かすサーバーPCとユーザプログラムを動かすクライアントPCを分離するためのものである.

Install

cargo add autd3-link-soem --features "remote blocking"
if(WIN32)
  FetchContent_Declare(
    autd3-link-soem
    URL https://github.com/shinolab/autd3-cpp-link-soem/releases/download/v32.0.1/autd3-link-soem-v32.0.1-win-x64.zip
  )
elseif(APPLE)
  FetchContent_Declare(
    autd3-link-soem
    URL https://github.com/shinolab/autd3-cpp-link-soem/releases/download/v32.0.1/autd3-link-soem-v32.0.1-macos-aarch64.tar.gz
  )
else()
  FetchContent_Declare(
    autd3-link-soem
    URL https://github.com/shinolab/autd3-cpp-link-soem/releases/download/v32.0.1/autd3-link-soem-v32.0.1-linux-x64.tar.gz
  )
endif()
FetchContent_MakeAvailable(autd3-link-soem)
target_link_libraries(<TARGET> PRIVATE autd3::link::soem)
dotnet add package AUTD3Sharp.Link.SOEM

https://github.com/shinolab/AUTD3Sharp.Link.SOEM.git#upm/latestをUnity Package Managerで追加する.

pip install pyautd3_link_soem

セットアップ

RemoteSOEMを使用する場合はPCを2台用意する必要がある. この時, 片方のPCはSOEMが使えるPCである必要がある. このPCをここでは“サーバ“と呼ぶ. 一方, 開発側のPC, 即ちSDKを使用する側は特に制約はなく, サーバと同じLANに繋がっていれば良い, こちらをここでは“クライアント“と呼ぶ.

まず, サーバとAUTDデバイスを接続する. また, サーバとクライアントを別のLANで繋ぐ1. そして, サーバとクライアント間のLANのIPを確認しておく. ここでは例えば, サーバ側が172.16.99.104, クライアント側が172.16.99.62だったとする.

AUTD Server

RemoteSOEMを使用する場合, サーバにAUTD Serverをインストールする必要がある. GitHub Releasesにてインストーラを配布しているので, これをダウンロードし, 指示に従ってインストールする.

AUTD Serverを実行すると, 以下のような画面になるので, SOEMタブを開く.

ポートに適当なポート番号を指定し, Runボタンを押す.

AUTD3デバイスが見つかり, クライアントとの接続待ちである旨のメッセージが表示されれば成功である.

なお, AUTD ServerではSOEMと同等のオプションを指定できる.

APIs

RemoteSOEMのコンストラクタでは, <サーバのIP:ポート>を指定する.

use autd3_link_soem::RemoteSOEM;

fn main() -> Result<(), Box<dyn std::error::Error>> {
let _ = 
RemoteSOEM::new("172.16.99.104:8080".parse()?);
Ok(())
}
#include <autd3_link_soem.hpp>

int main() {
using namespace autd3;
link::RemoteSOEM("172.16.99.104:8080");
return 0; }
using System.Net;
using AUTD3Sharp.Link;

new RemoteSOEM(new IPEndPoint(IPAddress.Parse("172.16.99.104"), 8080))
;
from pyautd3_link_soem import RemoteSOEM

RemoteSOEM("172.16.99.104:8080")

ファイアウォール

TCP関係のエラーが出る場合は, ファイアウォールでブロックされている可能性がある. その場合は, ファイアウォールの設定でTCP/UDPの指定したポートの接続を許可する.

1

無線LANでも可