ApolloAuto / apollo

An open autonomous driving platform
Apache License 2.0
25.24k stars 9.72k forks source link

能不能做到:让车辆强制按照我设定的轨迹行驶? #15536

Open lsm2842035890 opened 2 months ago

lsm2842035890 commented 2 months ago

我的想法是通过cyberbridge,通过planning来发送轨迹坐标,强制让小车按照设定的轨迹行驶,这种情况下能不能只提供坐标,其他比如计算当前位置与下一时刻位置如何控制速度和转向等等是自动的吗,需要一并提供控制信息吗 _ROUTINGREQUEST.fields_by_name['header'].message_type = modules_dot_common_dot_proto_dot_header__pb2._HEADER _ROUTINGREQUEST.fields_by_name['waypoint'].message_type = _LANEWAYPOINT _ROUTINGREQUEST.fields_by_name['blacklisted_lane'].message_type = _LANESEGMENT _ROUTINGREQUEST.fields_by_name['parking_space'].message_type = modules_dot_map_dot_proto_dot_mapparkingspace__pb2._PARKINGSPACE _ROUTINGREQUEST.fields_by_name['parking_info'].message_type = _PARKINGINFO _ROUTINGREQUEST.fields_by_name['dead_end_info'].message_type = _DEADENDINFO

YuqiHuai commented 2 months ago

比如计算当前位置与下一时刻位置如何控制速度和转向等等是自动的吗,需要一并提供控制信息吗

不太明白您理解的是什么情况,但是我目前了解的是

可以通过发送Routing Request设置让Apollo到地图上的几个点,然后Routing会计算走哪些路,Planning会自己计算具体的每一步(速度加速什么的)。

lsm2842035890 commented 2 months ago

就是不用planning计算出来的信息(速度加速度转向),我直接提供用户自定义的(速度加速度转向),强制按照用户的来,相当于不让apollo自动驾驶了,就是想知道可以不可以通过某个sh文件,能够实现这个功能。(我也是天马行空哈哈哈)

zhuabaguai commented 2 months ago
header {
  timestamp_sec: 1726740384.5194161
  module_name: "routing"
  sequence_num: 80
}
road {
  id: "71"
  passage {
    segment {
      id: "road_71_lane_0_2"
      start_s: 65.829764517663065
      end_s: 83.296862078864649
    }
    can_exit: true
    change_lane_type: FORWARD
  }
}
road {
  id: "70"
  passage {
    segment {
      id: "road_70_lane_0_2"
      start_s: 0
      end_s: 16.536395339208298
    }
    can_exit: true
    change_lane_type: FORWARD
  }
}
measurement {
  distance: 34.003492900409881
}
routing_request {
  header {
    timestamp_sec: 1726740375.5076156
    module_name: "routing"
  }
  waypoint {
    id: "road_71_lane_0_2"
    s: 65.829764517663065
    pose {
      x: -763.84903046079046
      y: -144.15823974289736
    }
  }
  waypoint {
    id: "road_70_lane_0_2"
    s: 16.536395339208298
    pose {
      x: -749.65603094640028
      y: -174.80081506355179
    }
  }
}
map_version: "0"
status {
  error_code: OK
  msg: "Success!"
}

这是我的响应信息

YuqiHuai commented 2 months ago

@lsm2842035890 Apollo里的RTK Planner应该就是你想要的用户指定Planning,不过我具体没了解过这个。

@zhuabaguai Routing成功车辆不开始运动,一个是检查Planning是否启动(比如用cyber_monitor看有没有/apollo/planning有没有消息),再就是如果你用的是Dreamview的SimControl的话检查一下SimControl有没有打开(用cyber_monitor看/apollo/localization/pose有没有msg)。

1012327963 commented 2 months ago

强制按照你指定的路线行驶的话得用PATH_FOLLOW,但是这东西没开源

ycraurora commented 1 month ago

9.0中可以参考 modules/external_command/external_command_demo