ApolloAuto / apollo

An open autonomous driving platform
Apache License 2.0
25.02k stars 9.67k forks source link

How to execute offline_lidar_obstacle_perception #9369

Open OrkunYilmaz opened 5 years ago

OrkunYilmaz commented 5 years ago

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

Steps to reproduce the issue:

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?

zzq1016 commented 5 years ago

I also met this question. ask for help!

tkkhuu commented 5 years ago

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 !

OrkunYilmaz commented 5 years ago

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

tkkhuu commented 5 years ago

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

alexbuyval commented 5 years ago

@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",
YilmazOrkun commented 4 years ago

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