autoware_ai_planning icon indicating copy to clipboard operation
autoware_ai_planning copied to clipboard

How to avoid the oscillating route selection in the op_local_planner [op_trajectory_evaluator]

Open aforlano opened this issue 2 years ago • 2 comments

Hey everyone,

I' am still trying to implement an obstacle avoidance scenario in CARLA. So far i was able to create curb data for my vector map and detect it using the in-build "curb detection" from the op_local_planner package.

Required information:

  • Operating system and version: Ubuntu 18.04
  • Autoware install From source
  • Autoware.ai version: 1.13
  • checked out this versions: -- https://github.com/hatem-darweesh/core_planning/tree/openplanner.1.13 -- https://github.com/hatem-darweesh/core_perception/tree/openplanner.1.13 -- https://github.com/hatem-darweesh/common/tree/openplanner.1.13
  • ROS distribution and version: melodic
  • ROS install From source(apt)
  • CARLA Version: 0.9.6
  • Package : op_global_planner, op_local_planner

My current setup:

  • ROS: roscore
  • Simulator: DISPLAY= ./CarlaUE4.sh -opengl
  • autoware_bridge_with_manual_Control
  • ray_ground_filter
  • can2odom
  • points_downsample
  • ndt_matching
  • vel_pose_connector
  • lidar_euclidean_cluster_detect
  • lidar_kf_contour_track
  • op_global_planner
  • op_local_planner
  • pure_pursuit
  • twist_filter
  • vehiclecmd_to_ackermanndrive
  • carla_ackermann_control_node

Question:

Currently I have the issue that my vehicle is switching multiple times between different rollouts during an avoidance-process. The decision to choose a rollout is done by the op_trajectory_evaluator and this one gets as input data the contour of the tracked objects as far as I understand.

What is happening at that exact moment when starting the avoidance does the euclidean_cluster_node, the lidar_contour_tracker or the op_local_planner cause this behavior ??
How can I minimize this inconsistency ?? Any idea ?

Please take a look at the video to understand what I mean.

https://user-images.githubusercontent.com/66805713/176318493-37eefdc8-20e2-46aa-a60d-51a566eb020a.mp4

I also add some images with my parameter settings. lidar_euclidean_cluster_detect_param

op_trajectory_evaluator launch

lidar_kf_contour_track_param

op_common_params_2

op_motion_predictor_param

Thanks in advance.

aforlano avatar Jun 28 '22 23:06 aforlano

Do you have any idea about this topic @hatem-darweesh ?

aforlano avatar Jul 01 '22 08:07 aforlano

Hi @aforlano, if you take a look to the rqt_graph map you can see that the open planner node is using the objects detected by kf_contour_track which listening to the euclidian clustering node, there are plenty of explanations for this behavior [changing rollouts], you should take a look to the final point cloud that is received by euclidian clustering node. Then check also the output which is the input for the kf_contour. Kf_contour creates the objects that open planner evaluate analyses and define the safer rollouts. By default, some of the data is not shown in Rviz, check them to understand if you have some noise [unfiltered pointcloud or ground points] in your raw data for detection.

In my case, the lack of a good ground filter created such behavior. I should mention that I am using 4 lidars at the same time so it's a bit different than your configuration. I hope you can find it. Also, don't you think that your "Max remember time" for the Kf_contour setting is too long? try 1 or 2 sec and check again.

momala avatar Aug 10 '22 13:08 momala