_SSR_CMD_SERVOパケット

_SSR_CMD_SERVOパケット

 例えば「センサーの示す方向へ首だけを向ける」といった制御を行いたい場合に、あらかじめ決めたポーズやモーションを実行するという制御方法は現実的ではありません。そのような場合はこのパケットを用いることによって、サーボ単体の角度と移動時間を指定して動かします。例えば、図2-1の_SSR_CMD_SERVOパケットの例はID2(首)のサーボを10°の位置に1秒で動かすことを示しています。初期位置がどこにあろうとも1秒で10°の位置に動こうとすることに注意してください。

------------------------------------

typedef struct _SSR_LAN_FILE {
    char sFileName[16];          /* ファイル名 */
  unsigned short type;         /* ファイル種別 */
  unsigned short index;        /* インデックス */
  unsigned short length;        /* データ部の長さ */
    unsigned char data[_SSR_MAX_DATA] ;  /* データ本体 */
} SSR_LAN_FILE;

図2-2:_SSR_CMD_FILEパケットの構造

------------------------------------

パケット名
(太字が応答パケット)
内容
_SSR_CMD_STICKジョイスティックのデータを送信
_SSR_CMD_FILEファイルの送信
_SSR_CMD_FILE_ACKファイルの受信応答
_SSR_RCMD_POSE_FILEポーズの実行命令
_SSR_RCMD_MOTION_FILEモーションの実行命令
_SSR_RCMD_MOTION登録モーションの実行命令(ID指定)
_SSR_CMD_SERVOサーボの個別制御命令(ID指定)
_SSR_CMD_SERVO_NAMEサーボの個別制御命令(サーボ名指定)
_SSR_CMD_GET_SERVO_NAMEサーボの個別情報を要求する命令
_SSR_CMD_SERVO_INFOサーボ個別情報の応答
_SSR_CMD_GET_ROBOTロボットの情報を要求する命令
_SSR_CMD_ROBOT_INFOロボット情報の応答

図2-3:パケットの一覧

_SSR_CMD_FILEパケットとの組み合わせ

 ポーズファイルやモーションファイルをパソコンから_SSR_CMD_FILEパケットで複数のパケットに分割 して送信し、その後、_SSR_RCMD_POSE_FILEパケットや、_SSR_RCMD_MOTION_FILEパケットで実行命令を出すことがで きます。

 1パケットあたりのファイルデータの最大容量は256バイトです。それを超える容量のファイルを転送する場合は_SSR_CMD_FILEパケットを用 いて256バイトごとに分割して送ります。_SSR_CMD_FILEパケットには、ファイル名、ファイル種別、ファイルインデックス、パケットに含まれ るデータ部の長さ、データ本体という5種類の情報が含まれています。図2-2に、_SSR_CMD_FILEパケットの構造を示します。

 受信側(ロボット)は、_SSR_CMD_FILEパケットを受信するたびに、指定されたファイルをオープンし、データを書き込み、そしてクローズしま す。インデックスが0の場合、ファイルを新規書き込みモードでオープンし、0以外の場合はアペンドモードでオープンします。これにより、複数のパケットに 分けて送られたファイルが、受信側で1つのファイルにまとめられるのです。

 パソコンからポーズやモーションをロボットに転送する場合、まず一時ファイルを_SSR_CMD_FILEパケットで送信した後に、そのファイル名を指 定した_SSR_RCMD_POSE_FILEパケットや_SSR_RCMD_MOTION_FILEパケットを送信します。これを受信したロボットは、 直前に転送されたファイルに基づいて、関節の動作やLEDの点灯/消灯、サウンドデータの再生などを行います。

 以上、ロボットに命令する系統の制御を見てきましたが、OpenRoadsにはロボットからの応答パケットも何種類か規定されています。図2-3に命 令・応答含めたすべてのパケットを示します。

 応答パケットの中にもおもしろいものが含まれていることに気づきましたか?例えば、ロボットを手で押したりすると、 _SSR_CMD_SERVO_INFOパケットでサーボの負荷を読み、それに応じた命令を与えて、ロボットが「痛い! やめて~」などと人間的な反応をすることも可能なのです。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30