Ask Your Question

How to implement obstacles avoidance in Autoware

asked 2019-09-23 01:07:06 -0600

yfshe gravatar image

I am running Autoware with LGSVL Simulator and I want to know how to avoid obstacles in the simulator, specially, don't crash.

I guess the following nodes are necessary:

  • vision_ssd_detect
  • lidar_euclidean_cluster_detect
  • range_fusion
  • imm_ukf_pda_track
  • naive_motion_predict
  • costmap_generator
  • astar_avoid
  • velocity_set

Are there any missing or incorrect nodes here? I hope to hear your advice.

Thank you

Ubuntu 16.04 Kinetic

Autoware 1.12.0

edit retag flag offensive close merge delete


Yfshe, Maximus5684, Cassshine.huygens!

Did you implement successfully in avoiding the obstacle? I am very interested in this topic.

I tried your suggestion but it's not successful. There is error when I enable avoidance in astar_avoid node and the vehicle does not move.

Invalid argument passed to lookup transform argument target_frame in tf2 frame_ids cannot be empty.

Can you tell me what reason about the error?

Thank you very much!

My environment:

  • Ubuntu 18.04 Kinetic

  • Autoware 1.12.0

  • YOLO algorithm!

tiensu gravatar image tiensu  ( 2019-10-29 05:51:34 -0600 )edit

Sorry, I didn't implement. astar_avoid does have a lot of problems. But I found that velocity_set can use point cloud data to independently solve the obstacle avoidance, although it does not use any neural network technology. Since my task is only to avoid collision, and velocity_set can meet the requirements, I did not further study astar_void.

yfshe gravatar image yfshe  ( 2019-11-19 03:54:49 -0600 )edit

Can you guide me on how to use velocity_set and point cloud data to solve the obstacle avoidance? How to vehicle knows which is an obstacle? My task is only to avoid the collision, too. I would appreciate your help!

tiensu gravatar image tiensu  ( 2019-11-19 20:39:42 -0600 )edit

The obstacleDetection function in velocity_set is responsible for obstacle detection. There are two key points to use velocity_set, one is to set correct points_topic param, like "points_raw", the other is to set param_flag param value to 0 in the pure_pursuit. For details, check the source code.

yfshe gravatar image yfshe  ( 2019-11-21 10:33:31 -0600 )edit

Thank yfshe! I will check the source. Can I ask you more questions? Which nodes do I need to check (enable) on Autoware to do this function? I think that some nodes in the Detection package must be checked to detect obstacles. Is that right?

tiensu gravatar image tiensu  ( 2019-11-21 20:35:31 -0600 )edit

Hi yefshe! On Autoware Manager, I selected nodes: - astar_avoid - velocity_set - purse_pursuit - twist_filter I changed Points Topic from points_no_ground to points_raw in velocity_set, and select Waypoint in pure_pursuit, but the car does not move. Please tell me if I'm wrong. Thank you very much!

tiensu gravatar image tiensu  ( 2019-11-22 01:04:09 -0600 )edit

I think this is two problems. You should let the car move first and then think about avoiding obstacles. The velocity_set is mainly related to the latter. Did you read the documentation of Autoware and understand the complete running process of Autoware, like mapping, localization, way_planner, etc? I suggest you refer to these ".launch" files in the autoware-data, it will give you some help.

yfshe gravatar image yfshe  ( 2019-11-25 12:07:21 -0600 )edit

Hi yfshe! I already made the car move. I also used autoware-data as you said. I configured the detection package successfully and display detected object, velocity, distance on Rviz. Now, I want to make the car avoid obstacles. Currently, the car alway hit into other cars. Please share with me how do you do, how do you config autoware to the car avoid obstacles. I am stuck on this problem for a long time. Thank you very much!

tiensu gravatar image tiensu  ( 2019-11-25 20:46:01 -0600 )edit

2 Answers

Sort by » oldest newest most voted

answered 2019-09-23 19:59:03 -0600

cassini.huygens gravatar image

I am also interested in this topic. I used open planner and dp planner and so multiple paths are generated and an alternative one has to be picked if there is an obstacle on the way. I am not sure which nodes are to be run to detect objects, position them and so the planner can reroute safely.

edit flag offensive delete link more

answered 2019-09-27 07:49:21 -0600

Josh Whitley gravatar image

Your node list looks correct. However, I recommend using lidar_point_pillars in place of lidar_euclidean_cluster_detect, if you don't have commercial-use restrictions. It does a much better job and uses GPU acceleration.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2019-09-23 01:07:06 -0600

Seen: 688 times

Last updated: Nov 19 '19