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

message Speed {
  int32 H=1;  //心跳
  int32 T=2; // 1:原地旋转，2:横移，3:MPC巡线/前进, 其他/未接收到：停止
  float V=3;  //角速度
  float W=4;  //线速度
  int32 end=5;
}

message SpeedLimit
{
  float min=1;
  float max=2;
}

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 begin = 2;
  Pose2d target = 3;
  Pose2d target_diff = 4;
  SpeedLimit velocity_limit=5;
  SpeedLimit angular_limit=6;
  SpeedLimit horize_limit=7;
}


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;  //未完成的动作，第一个即为当前动作
  Trajectory selected_traj = 4;
  Trajectory predict_traj = 5;

}

