syntax = "proto3";
package NavMessage;
message AGVStatu {
  float x=1;
  float y=2;
  float theta=3;
  float v=4;
  float vth=5;
}

message Speed {
  int32 type=1; // 0原地旋转，1横移，2前进，3MPC巡线, 其他：停止
  float v=2;
  float vth=3;
}


message Pose2d
{
  float x=1;
  float y=2;
  float theta=3;
}

message Trajectory
{
  repeated Pose2d poses=1;
}

message Action
{
  int32 type=1; // 1:原地调整，2：巡线
  Pose2d target=2;
  Pose2d target_diff=3;
}


message NavCmd
{
  int32 action=1;  //  0 开始导航，1 pause， 2 continue ，3 cancel
  string key=2;
  repeated Action actions=3;
}

message NavStatu
{
  bool statu=1; //0:ready  1:running
  string key=2; // 任务唯一码
  repeated Action unfinished_actions=3;  //未完成的动作，第一个即为当前动作
  AGVStatu current_pose=4; //当前位姿
  bool pose_timeout=5;
  bool twist_timeout=6;   //速度是否超时
  Trajectory selected_traj=7;
  Trajectory predict_traj=8;

}

