Skip to content

triorb_navigation_manager

パス: triorb_drive/triorb_navigation_manager
説明: TriOrb製移動ロボット向けのROS 2ノードで、CSVベースの経路ナビゲーションを制御します。 通常走行、協調走行、リフター動作、地図切替、イベント処理、状態通知などを統合的に管理し、 TriOrbのドライブ・SLAMシステムと連携可能です。

triorb_navigation_manager

TriOrb製移動ロボット向けのROS 2ノードで、CSVベースの経路ナビゲーションを制御します。 通常走行、協調走行、リフター動作、地図切替、イベント処理、状態通知などを統合的に管理し、 TriOrbのドライブ・SLAMシステムと連携可能です。

代表的なtypeと動作

type 内容 使用トピック
point into 絶対座標走行。intoはTagSLAM側ポーズ設定。 /drive/set_pos /tagslam/drive/set_pos
collab* 協調搬送系。 /collab/request/set_pos
relative 相対移動。 /drive/run_pos
リフター / 協調リフト 単体/協調リフター命令。 /drive/run_lifter /collab/run_lifter
一時停止 指定秒数待機。 内部タイマー
イベント発行 / イベント待ち /action/event によるイベント送受信。 /action/event
地図切替 / 地図遷移 MQTTでVSLAM制御 または /run_slam/set/enter_local_map_file_path へ通知。 vslam/signal
地図切替(TagSLAM) /tagslam/load/mapへJSONを送信。 /tagslam/load/map
マーカー設定 MarkerSetting(default/only/exclude)切替。 /run_slam/set/marker_only /run_slam/set/marker_exclude
安全装置起動/停止 SLSブレーキ制御。 /sls/set/brake
減速範囲設定 フィールドID(10進/0xNN)をUInt8変換して送出。 /sls/set/field

ノードAPI

Subscriber

Topic 役割
/nav/route_csv_name std_msgs/msg/String CSVファイル名を受け取りWayPointを再ロード。
/nav/action std_msgs/msg/String start/stop/pause/resume/resume_failed コマンド。
/drive/result triorb_drive_interface/msg/TriorbRunResult 通常走行結果。
/collab/drive/completed triorb_drive_interface/msg/TriorbRunResultStamped 協調走行結果。
/drive/run_pos/result std_msgs/msg/String 相対移動結果("done"等)。
/lifter/result std_msgs/msg/String 単体リフター結果。
/collab/lifter/result std_msgs/msg/String 協調リフター結果(JSON文字列)。
/action/event std_msgs/msg/String イベント待ちモードで一致イベントを待受。
/triorb/request_nav_state std_msgs/msg/Empty 状態再送指示。
/run_slam/map_file_changed std_msgs/msg/String 地図ファイル変更通知、地図待機解除に使用。
呼び出し例
## 経路CSVをsample_route.csvへ切替
ros2 topic pub /nav/route_csv_name std_msgs/msg/String "data: 'sample_route.csv'"

## 速度倍率1.0、精度バイアス0、1ループで走行開始
ros2 topic pub /nav/action std_msgs/msg/String "data: 'start,1.0,0.0,0.0,1'"

## 協調走行結果はechoで監視
ros2 topic echo /collab/drive/completed

## リフター完了通知を監視
ros2 topic echo /lifter/result

## イベント待ちアクションに合致させるイベントを送信
ros2 topic pub /action/event std_msgs/msg/String "data: 'door_opened'"

## 最新のナビゲーション状態をリクエスト
ros2 topic pub /triorb/request_nav_state std_msgs/msg/Empty "{}"

Publisher

Topic 役割
/nav/handling_task_csv_name std_msgs/msg/String 現在処理中のCSV名を通知。
/triorb/nav/state std_msgs/msg/Int32MultiArray ナビ状態/エラー/復帰情報。
/triorb/nav/result std_msgs/msg/String NavResult&&詳細 形式の結果通知。
/drive/init_path_follow /collab/drive/init_path_follow /tagslam/drive/init_path_follow std_msgs/msg/Empty 各経路制御モジュールの初期化。
/drive/set_pos /tagslam/drive/set_pos /collab/request/set_pos triorb_drive_interface/msg/TriorbSetPos3 走行目標の送信。
/drive/run_pos triorb_drive_interface/msg/TriorbRunPos3 相対移動指示。
/drive/pause /drive/restart /drive/stop ほか/collab/drive/* std_msgs/msg/Empty 走行制御。
/drive/run_lifter /collab/run_lifter std_msgs/msg/String リフター指示。
/action/event std_msgs/msg/String イベント発行。
/run_slam/set/enter_local_map_file_path std_msgs/msg/String 地図遷移時に使用。
/run_slam/set/marker_only /run_slam/set/marker_exclude std_msgs/msg/Bool MarkerSetting切替。
/tagslam/load/map std_msgs/msg/String TagSLAM用地図切替(JSON文字列)。
/sls/set/brake std_msgs/msg/Bool SLSブレーキON/OFF。
/sls/set/field std_msgs/msg/UInt8 減速エリア設定。
/except_handl/node/add /triorb/error/str/add /triorb/warn/str/add std_msgs/msg/String 例外監視システムへの登録/エラー/警告送信。

Service

Service 内容
/get/version/<node_name> triorb_static_interface/srv/Version ノードバージョン(1.2.2)を配列で返却。

MQTT

Topic 向き 内容
/vslam/map_load_queuing_time_estimated Subscribe マップ読込推定時間(秒)。
/vslam/map_skip_loading_request Subscribe 地図読込スキップ要求。
vslam/signal Publish load_<map> メッセージでVSLAMへ地図切替指示。

コマンド/メッセージ仕様

  • start,<ratio_speed>,<bias_xy>,<bias_deg>,<loop>
    例: start,1.0,0.0,0.0,1。Start/End行間のWayPointをloop回だけ走行。
  • stop / pause / resume は通常の停止および一時停止制御。
  • resume_failed は失敗時に保持したresume_pos_idxから再開。enter_failure_hold_stateで保持される。

/triorb/nav/state (std_msgs/msg/Int32MultiArray)

配列構造: [state, loop_count, loop, pos_idx, markerSetting, error_pair_count, error_list..., resume_pos_idx, resume_available_flag]

  • state: NavState (0:IDLE / 1:NAVIGATING / 2:PAUSED)
  • markerSetting: 0:default / 1:only / 2:exclude
  • error_list: 2要素で1組(WayPoint行番号, 種別コード 0:角度精度 1:XY精度 2:双方)
  • resume_available_flag: 1の場合resume_failedで再開可

/triorb/nav/result

<NavResult>&&<詳細> 形式。代表値:

NavResult 意味
SUCCESS 経路完遂
NAV_FAILED 走行系エラー(msg_to_json_stringで詳細付与)
USER_CANCELLED stop指示で終了
ROUTE_ERROR WAYPOINT_SETTING_ERROR など 入力CSV関連
LIFTER_ERROR リフター失敗
MAP_LOAD_TIME_OUT_ERROR 地図切替タイムアウト
UNKNOW_ACTION_ERROR ほか 想定外アクション

アクション失敗時はenter_failure_hold_stateで停止し、成功時はcheck_compleated_operationで次WayPointまたはLoop切り替えを実施。