Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lsm2842035890 opened this issue Sep 18, 2024 · 6 comments
Open

Comments

@lsm2842035890
Copy link

我的想法是通过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_map__parking__space__pb2._PARKINGSPACE
_ROUTINGREQUEST.fields_by_name['parking_info'].message_type = _PARKINGINFO
_ROUTINGREQUEST.fields_by_name['dead_end_info'].message_type = _DEADENDINFO

@YuqiHuai
Copy link
Contributor

YuqiHuai commented Sep 18, 2024

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

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

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

@lsm2842035890
Copy link
Author

lsm2842035890 commented Sep 19, 2024

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

@zhuabaguai
Copy link


import time

from cyber.python.cyber_py3 import cyber

from modules.common_msgs.routing_msgs.routing_pb2 import RoutingRequest


def send_routing_request():
    test_node = cyber.Node("node_name1")

    routing_request = RoutingRequest()
    routing_request.header.timestamp_sec = time.time()
    routing_request.header.module_name = 'routing'

    start_apollo_waypoint = routing_request.waypoint.add()
    start_apollo_waypoint.pose.x = -763.84903046079046
    start_apollo_waypoint.pose.y = -144.15823974289736

    target_apollo_waypoint = routing_request.waypoint.add()
    target_apollo_waypoint.pose.x = -749.65603094640028
    target_apollo_waypoint.pose.y = -174.80081506355179


    writer = test_node.create_writer("/apollo/raw_routing_request", RoutingRequest)
    
    for i in range(10):
        writer.write(routing_request)
        print("send")
        time.sleep(1)

    print(routing_request)


if __name__ == '__main__':
    cyber.init("talker_sample")

    send_routing_request()

    cyber.shutdown()
    ```
    我用这个python脚本成功发送了信息到/apollo/raw_routing_request,为什么车辆不开始运动呢。

@zhuabaguai
Copy link

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
Copy link
Contributor

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

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

@1012327963
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants