def set_route(self, current_lane_index: str, destination: str):
        """
        Find a shortest path from start road to end road
        :param current_lane_index: start road node
        :param destination: end road node or end lane index
        :return: None
        """
        self.checkpoints = self.map.road_network.shortest_path(current_lane_index, destination)
        # if len(self.checkpoints) == 0:
        #     self.checkpoints.append(current_lane_index)
        #     self.checkpoints.append(current_lane_index)
        self._target_checkpoints_index = [0, 1]
        # update routing info
        assert len(self.checkpoints) > 0, "Can not find a route from {} to {}".format(current_lane_index, destination)
        self.final_lane = self.map.road_network.get_lane(self.checkpoints[-1])
        self._navi_info.fill(0.0)
        self.current_ref_lanes = self.map.road_network.get_peer_lanes_from_index(self.current_checkpoint_lane_index)
        self.next_ref_lanes = self.map.road_network.get_peer_lanes_from_index(self.next_checkpoint_lane_index)
        if self._dest_node_path is not None:
            ref_lane = self.final_lane
            later_middle = (float(self.get_current_lane_num()) / 2 - 0.5) * self.get_current_lane_width()
            check_point = ref_lane.position(ref_lane.length, later_middle)
            self._dest_node_path.setPos(panda_vector(check_point[0], check_point[1], self.MARK_HEIGHT))

        Find a shortest path from start road to end road
        :param current_lane_index: start road node
        :param destination: end road node or end lane index
        :return: None
        
metadrive/component/navigation_module/edge_network_navigation.py