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の指定したポートの接続を許可する.
無線LANでも可