web-dev-qa-db-ja.com

sshよりもキャラクターデバイスを使用する

私はしばらくの間、この質問に対する良い答えを探していました。

Xboxコントローラーでロボットを遠隔操作しようとしています。課題は、コントローラーをロボットのオンボードコンピューターではなく、コントロールステーションに接続することです。オンボードコンピューターはUbuntuとROS(Robotic Operating System)を実行しており、直接接続されているかのようにキャラクターデバイスにアクセスする必要があります。

オンボードコンピューターにSSHで接続し、コントロールステーションからキャラクターデバイスイベントを転送する方法を探しています。リアルタイムの更新が必要です。最善のアプローチは何ですか?それも可能ですか?

4
Slippers

CUSE(ユーザースペースの文字デバイス)を見てください。

デバイスイベントをUDPポートとの間で転送し、UDPストリームをsshで転送します。

要件に固有のかなりの遅延があるため、これは「リアルタイム」の値がやや小さい場合の「リアルタイム」にすぎません。

4
dirkt

SystemOnAChip(RPi、BananaPi、OrangePi、ODroid ...など)を使用していて、一部のOS(Ubuntuを実行している場合)、[〜#〜] rt [〜#〜](RealTime)フレーバーのディストリビューションであっても、「リアルタイムの更新が必要です」は必要ありません。可能である。 OSはRealTimeとはほど遠いことを覚えておいてください。バックグラウンドで実行されているサービスは、トンあります。これは、あなたがやろうとしていることが不可能であることを意味するのではなく、[〜#〜] rt [〜#〜] 本当に。

しかし、あなたがやりたいことは可能です。WiFiUSBドングルを購入し(オンボードコンピューターが付属していない場合)、オンボードコンピューターに接続し、同じネットワーク内のドングルを接続しますコントロールステーション、インストールopenssh-serverオンボードコンピューターで、両方のボードが同じネットワークに接続されたら、[〜#〜] ssh [〜#〜]を介して接続してみます。

そして、あなたが私を許せば、私が今使った別のプラットフォームをお勧めすることができます: ESP32 、それはWi-FiとBlutoothが組み込まれたマイクロコントローラーです、そしてあなたがAliExpressからそれを買うならちょうどあなたの周りの費用がかかります3ドル、ArduinoIDEでプログラムできます。

ところで、あなたのプロジェクトは面白いです!!!

1
k.Cyborg