Apollo: How to execute offline_lidar_obstacle_perception

Created on 12 Aug 2019  ·  6Comments  ·  Source: ApolloAuto/apollo

We appreciate you go through Apollo documentations and search previous issues before creating an new one. If neither of the sources helped you with your issues, please report the issue using the following form. Please note missing info can delay the response time.

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 14.04): Ubuntu 16.04
  • Apollo installed from (source or binary): docker
  • Apollo version (1.0, 1.5, 2.0, 2.5, 3.0): 3.5

Steps to reproduce the issue:

  • Please use bullet points and include as much details as possible:
    bash docker/scripts/dev_start.sh
    bash docker/scripts/dev_into.sh
    bash apollo.sh build
    cd /apollo/bazel-bin/modules/perception/lidar/tools
    bash run_offline_lidar_obstacle_perception.sh

Supporting materials (screenshots, command lines, code/script snippets):

Screenshot from 2019-08-12 16-34-24

Hello everyone.. I am quite new to the Apollo platform. Anyone can give me hints on how to execute offline_lidar_obstacle_perception the right way?

Perception Help wanted

Most helpful comment

@tkkhuu Unfortunately, it does not work for me.

@OrkunYilmaz I have added in 'modules/perception/lidar/tools/BUILD' the following lines:

        "//modules/perception/lidar/lib/classifier/fused_classifier",
        "//modules/perception/lidar/lib/classifier/fused_classifier:ccrf_type_fusion",
        "//modules/perception/lidar/lib/ground_detector/spatio_temporal_ground_detector",
        "//modules/perception/lidar/lib/object_filter_bank/roi_boundary_filter",
        "//modules/perception/lidar/lib/roi_filter/hdmap_roi_filter",
        "//modules/perception/lidar/lib/scene_manager/ground_service",
        "//modules/perception/lidar/lib/scene_manager/roi_service",
        "//modules/perception/lidar/lib/segmentation/cnnseg:cnn_segmentation",
        "//modules/perception/lidar/lib/tracker/multi_lidar_fusion:mlf_engine",
        "//modules/perception/lidar/lib/tracker/multi_lidar_fusion:mlf_track_object_matcher",
        "//modules/perception/lidar/lib/tracker/multi_lidar_fusion:mlf_tracker",

All 6 comments

I also met this question. ask for help!

You first need to prepare ".pcd" and ".pose" files, there's an exporter to let you do that from record files. Then you need to change the flags in the shell scripts to match your path, this is my command to run:
bazel-bin/modules/perception/lidar/tools/offline_lidar_obstacle_perception --pcd_path=_apollo_sensor_velodyne64_compensator_PointCloud2_data/pcd_path/ --pose_path=_apollo_sensor_velodyne64_compensator_PointCloud2_data/pose_path/ --output_path=_apollo_sensor_velodyne64_compensator_PointCloud2_data/result_output/ --sensor_name=velodyne64 --work_root=/apollo/modules/perception/production/

Hope that helps !

I already prepared the pcd and pose files. When I run the command you proposed I get the following errors:

Screenshot from 2019-08-19 09-37-08

Sorry I just saw this message, this happened because the registration for those components are not registered in the offline version (I'm not sure why). My work around is to manually add the registration part into these source files. so add these lines before the Init() function in lidar_obstacle_degmentation.cc:

PERCEPTION_REGISTER_SCENESERVICE(GroundService);
PERCEPTION_REGISTER_SCENESERVICE(ROIService);
PERCEPTION_REGISTER_SEGMENTATION(CNNSegmentation);

If you see similar errors, you will have to add the corresponding registration to those files as well

@tkkhuu Unfortunately, it does not work for me.

@OrkunYilmaz I have added in 'modules/perception/lidar/tools/BUILD' the following lines:

        "//modules/perception/lidar/lib/classifier/fused_classifier",
        "//modules/perception/lidar/lib/classifier/fused_classifier:ccrf_type_fusion",
        "//modules/perception/lidar/lib/ground_detector/spatio_temporal_ground_detector",
        "//modules/perception/lidar/lib/object_filter_bank/roi_boundary_filter",
        "//modules/perception/lidar/lib/roi_filter/hdmap_roi_filter",
        "//modules/perception/lidar/lib/scene_manager/ground_service",
        "//modules/perception/lidar/lib/scene_manager/roi_service",
        "//modules/perception/lidar/lib/segmentation/cnnseg:cnn_segmentation",
        "//modules/perception/lidar/lib/tracker/multi_lidar_fusion:mlf_engine",
        "//modules/perception/lidar/lib/tracker/multi_lidar_fusion:mlf_track_object_matcher",
        "//modules/perception/lidar/lib/tracker/multi_lidar_fusion:mlf_tracker",

@tkkhuu @alexbuyval I tried both suggestions and I am still getting the same error. Getting instances of RIOService, GroundService and CNNSegmentation are failing.

Was this page helpful?
0 / 5 - 0 ratings