Robotics StackExchange | Archived questions

Autoware Openplanner crashes when loading vector map

Hello.

I used the LGSVL simulator and the borregas-ave vector map available here.

I load my vector map like this :

<!-- Vector Map -->
<node if="$(arg use_vector_map)" pkg="map_file" type="vector_map_loader" name="vector_map_loader">
  <param name="load_mode" value="directory" />
  <param name="map_dir" value="$(arg this_map)/vector_map" />
</node>

The vector map is loaded successfully and I can see it in Rviz.

I start the open planner global planner like this :

<!-- Global planner-->
<include file="$(find op_global_planner)/launch/op_global_planner.launch">
    <arg name="enableLaneChange" value="false"/>
    <arg name="enableReplan" value="true"/>
    <arg name="enableSmoothing" value="False"/>
    <arg name="enableRvizInput" value="true"/>
    <arg name="pathDensity" value="1"/>
    <arg name="velocitySource" value="1"/>
    <arg name="mapSource" value="0"/>
</include>

But when I launch open planner global planner I get this error :

process[op_global_planner-1]: started with pid [27507]
Received Lines112
Received Points2977
Received Lanes2742
Received dtLanes2742
Received StopLines12
Received Signals45
Received Nodes2742
Received Vectors49
Map Version 2
 >> Extracting Lanes ... 
[op_global_planner-1] process has died [pid 27507, exit code -11, cmd /home/mackou/autoware.ai/install/op_global_planner/lib/op_global_planner/op_global_planner __name:=op_global_planner __log:=/home/mackou/.ros/log/88a100da-74cc-11ea-8be2-04d9f57a961b/op_global_planner-1.log].
log file: /home/mackou/.ros/log/88a100da-74cc-11ea-8be2-04d9f57a961b/op_global_planner-1*.log

What could be causing this ?

Thanks !

Asked by Mackou on 2020-04-02 05:43:30 UTC

Comments

Which vector map you were loading ?

Asked by Hatem on 2020-04-02 07:18:31 UTC

@Hatem Borregas avenue, last version

Asked by Mackou on 2020-04-02 07:33:31 UTC

Answers

There is a problem with the maps inside LGSVL when OpenPlanner try to create the network for planning. OpenPlanner has two parser (ver 1 and ver2). it decide which version to use depending on the existence or absence of data.

In short, OpenPlanner load LGSVL vector maps with version 2 but it should be loaded with version 1.

This problem exists in each node that loads the map to OpenPlanner.

op_global_planner https://gitlab.com/autowarefoundation/autoware.ai/core_planning/-/blob/master/op_global_planner/nodes/op_global_planner_core.cpp op_local_planner: op_trajectory_selector, op_motion_predictor https://gitlab.com/autowarefoundation/autoware.ai/core_planning/-/blob/master/op_local_planner/nodes/op_motion_predictor/op_motion_predictor_core.cpp https://gitlab.com/autowarefoundation/autoware.ai/core_planning/-/blob/master/op_local_planner/nodes/op_behavior_selector/op_behavior_selector_core.cpp kf_contour_tracker: https://gitlab.com/autowarefoundation/autoware.ai/core_perception/-/blob/master/lidar_kf_contour_track/nodes/lidar_kf_contour_track/lidar_kf_contour_track_core.cpp

Solution:

look for this line: if(m_MapRaw.GetVersion()==2) if(m_MapRaw.GetVersion()==1) change 2->1 change 1->2 This will work only with some maps which they have this problems.

Hope that will be enough.

Asked by Hatem on 2020-04-02 08:15:17 UTC

Comments

@Hatem

Thanks for your answer. I see what the problem is now.

But where does it come from ? - 1 / From the LGSVL maps ? (Do they have a problem ?) - 2 / Openplanner doesn't choose the loader correctly. (why ?)

If it's problem no 2 I am more than willing to investigate more the code and find a proper fix.

I would like to avoid any quick fix and if possible improve the available code

Asked by Mackou on 2020-04-02 10:31:09 UTC

OpenPlanner identify the version by currently available files. mainly if you have Nodes data or not.

The problem is LGSVL maps have Nodes data, but the connection between these nodes are not consistent with the original version 2 map.

So open planner correctly select version 2. but when it construct the map this error appears.

I found by accident that when loading with version 1 it solve the problem. because, this version ignores the nodes data and try to connect using the center line information only.

Finally , I am not willing to write new parser just for these map specially if a work around is available.

Asked by Hatem on 2020-04-06 03:26:19 UTC