Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ground segmentation fails for points behind the low objects #669

Closed
3 tasks done
miursh opened this issue Apr 11, 2022 · 24 comments
Closed
3 tasks done

Ground segmentation fails for points behind the low objects #669

miursh opened this issue Apr 11, 2022 · 24 comments
Assignees
Labels
component:perception Advanced sensor data processing and environment understanding. (auto-assigned) type:bug Software flaws or errors.

Comments

@miursh
Copy link
Contributor

miursh commented Apr 11, 2022

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I'm convinced that this is not my fault but a bug.

Description

The point clouds of the ground, which are behinds the small objects, are sometimes segmented as a point cloud of the object.
This is the example of issue, which is in front left area of the ego-vehicle, generated by using sample rosbag.
image

Expected behavior

Only roadside pole is classified as objects and no other ground points are classified as objects.

Actual behavior

The ground points behinds the roadside pole are classified as objects.

Steps to reproduce

  1. Rosbag replay simulation
  2. It happens at timestamp of 1585897257.06

Versions

No response

Possible causes

No response

Additional context

No response

13304490790 pushed a commit to 13304490790/autoware.universe that referenced this issue Apr 12, 2022
* release v0.4.0

* Avoid setting CMAKE_BUILD_TYPE=Release in each CMakeLists.txt (autowarefoundation#720)

* remove set CMAKE_BUILD_TYPE Release in each CMakeLists.txt

* remove set CMAKE_BUILD_TYPE Release in ndt_pcl_modified

* set compile options for debug in ndt_omp

* Fix indent

* add warning if -DCMAKE_BUILD_TYPE=Release is not set in ndt_omp

Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>

* remove ROS1 packages temporarily

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Revert "remove ROS1 packages temporarily"

This reverts commit 2ba159d0875d817ae73a0df4ba12c4660c86acfe.

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* add COLCON_IGNORE to ros1 packages

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Rename launch files to launch.xml (autowarefoundation#28)

* ROS2 Porting: gyro_odometer (autowarefoundation#39)

* Make compile
 - Fix cmake and package.xml
 - Update tf and msgs

* Add publishers, subscribers and loggers
 - Fix launch file and Cmake to generate executable

* Address PR comments:
 - Remove launch file xml line (not needed)
 - Convert Buffer and TransformListener to plain objects
 - Fix some typos

* ported pose2twist from ROS1 to ROS2 (autowarefoundation#19)

* ported pose2twist from ROS1 to ROS2

* Update CMakeLists.txt

updated CMakeLists to be consise using ament_auto

* Update pose2twist_core.cpp

updated the ~Pose2Twist() = default in header

* Update package.xml

sorted dependencies alphabetically

* Update pose2twist_core.h

added  
  ~Pose2Twist() = default;

* Update pose2twist_core.h

Include guards replaced

* edited pose2twist launch file to ROS2

* fixed package XML

* Add geometry2 to repos (autowarefoundation#76)

* add geometry2 package temporarily until new release

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* trigger-ci

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* add tf2 dependency to the packages that use tf2_geometry_msgs

Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>

* Revert "Add geometry2 to repos (autowarefoundation#76)" (autowarefoundation#96)

* Revert "Add geometry2 to repos (autowarefoundation#76)"

This reverts commit 2e5ba3e86d0597920c0adf23f066521ea8a1a5b6.

* Re-add tf2 dependencies

* Revert "Re-add tf2 dependencies"

This reverts commit e23b0c8b0826cf9518924d33349f9de34b4975df.

* Debug CI pipeline

* Revert "Debug CI pipeline"

This reverts commit 58f1eba550360d82c08230552abfb64b33b23e0f.

* Explicitly install known versions of the geometry packages

* No need to skip tf2 packages anymore

Co-authored-by: Esteve Fernandez <esteve@apache.org>

* Rename h files to hpp (autowarefoundation#142)

* Change includes

* Rename files

* Adjustments to make things compile

* Other packages

* Adjust copyright notice on 532 out of 699 source files (autowarefoundation#143)

* Use quotes for includes where appropriate (autowarefoundation#144)

* Use quotes for includes where appropriate

* Fix lint tests

* Make tests pass hopefully

* Run uncrustify on the entire Pilot.Auto codebase (autowarefoundation#151)

* Run uncrustify on the entire Pilot.Auto codebase

* Exclude open PRs

* adding linters to pose2twist (autowarefoundation#193)

* adding linters to gyro_odometer (autowarefoundation#192)

* apply env_var to  use_sim_time (autowarefoundation#222)

* Fix dt in pose2twist (autowarefoundation#289)

* fix dt

Signed-off-by: Kosuke Murakami <kosuke.murakami@tier4.jp>

* apply format

Signed-off-by: Kosuke Murakami <kosuke.murakami@tier4.jp>

* fix covariance (autowarefoundation#875) (autowarefoundation#267)

Signed-off-by: Yamato Ando <yamato.ando@gmail.com>

Co-authored-by: YamatoAndo <yamato.ando@gmail.com>

* rm std_msgs (autowarefoundation#359)

* rm_std_msgs (autowarefoundation#402)

* Fix rolling build errors (autowarefoundation#1225)

* Add missing include files

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Replace rclcpp::Duration

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Use reference for exceptions

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Use from_seconds

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Sync public repo (autowarefoundation#1228)

* [simple_planning_simulator] add readme (autowarefoundation#424)

* add readme of simple_planning_simulator

Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com>

* Update simulator/simple_planning_simulator/README.md

* set transit_margin_time to intersect. planner (autowarefoundation#460)

* Fix pose2twist (autowarefoundation#462)

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Ros2 vehicle info param server (autowarefoundation#447)

* add vehicle_info_param_server

* update vehicle info

* apply format

* fix bug

* skip unnecessary search

* delete vehicle param file

* fix bug

* Ros2 fix topic name part2 (autowarefoundation#425)

* Fix topic name of traffic_light_classifier

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix topic name of traffic_light_visualization

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix topic name of traffic_light_ssd_fine_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix topic name of traffic_light_map_based_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_recognition

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_ssd_fine_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_classifier

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_classifier

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix lint traffic_light_ssd_fine_detector

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Fix issues in hdd_reader (autowarefoundation#466)

* Fix some issues detected by Coverity Scan and Clang-Tidy

* Update launch command

* Add more `close(new_sock)`

* Simplify the definitions of struct

* fix: re-construct laneletMapLayer for reindex RTree (autowarefoundation#463)

* Rviz overlay render fix (autowarefoundation#461)

* Moved painiting in SteeringAngle plugin to update()

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* super class now back to MFD

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* uncrustified

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* acquire data in mutex

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* back to RTD as superclass

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* Rviz overlay render in update (autowarefoundation#465)

* Moved painiting in SteeringAngle plugin to update()

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* super class now back to MFD

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* uncrustified

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* acquire data in mutex

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* removed unnecessary includes and some dead code

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* Adepted remaining vehicle plugin classes to render-in-update concept. Returned to MFD superclass

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

* restored RTD superclass

Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>

Co-authored-by: Takamasa Horibe <horibe.takamasa@gmail.com>
Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp>
Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com>
Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>
Co-authored-by: Makoto Tokunaga <vios-fish@users.noreply.github.com>
Co-authored-by: Adam Dąbrowski <adam.dabrowski@robotec.ai>

* Fix for rolling (autowarefoundation#1226)

* Replace doc by description

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Replace ns by push-ros-namespace

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Unify Apache-2.0 license name (autowarefoundation#1242)

* Remove use_sim_time for set_parameter (autowarefoundation#1260)

Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp>

* Feature/gyro odometer add twist with cov input (autowarefoundation#1586)

* add description for gyro_odometer package autowarefoundation#1819

* Fix -Wunused-parameter (autowarefoundation#1836)

* Fix -Wunused-parameter

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix mistake

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* fix spell

* Fix lint issues

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Ignore flake8 warnings

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp>

* Invoke code formatter at pre-commit (autowarefoundation#1935)

* Run ament_uncrustify at pre-commit

* Reformat existing files
* Fix copyright and cpplint errors

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>
Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Feature/add stop filter ros2 (autowarefoundation#1575)

* revert imu yaw bias (autowarefoundation#2040) (autowarefoundation#2043)

Co-authored-by: YamatoAndo <yamato.ando@gmail.com>

* add sort-package-xml hook in pre-commit (autowarefoundation#1881)

* add sort xml hook in pre-commit

* change retval to exit_status

* rename

* add prettier plugin-xml

* use early return

* add license note

* add tier4 license

* restore prettier

* change license order

* move local hooks to public repo

* move prettier-xml to pre-commit-hooks-ros

* update version for bug-fix

* apply pre-commit

* Change formatter to clang-format and black (autowarefoundation#2332)

* Revert "Temporarily comment out pre-commit hooks"

This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3.

* Replace ament_lint_common with autoware_lint_common

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Remove ament_cmake_uncrustify and ament_clang_format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply Black

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply clang-format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix build errors

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix for cpplint

* Fix include double quotes to angle brackets

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Apply clang-format

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Fix build errors

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Add COLCON_IGNORE (autowarefoundation#500)

Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>

* Remove COLCON_IGNORE under localization (autowarefoundation#553)

* [gyro_odometer]add readme (autowarefoundation#625)

* add readme

* update

* update

* Update localization/twist_estimator/gyro_odometer/README.md

Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>

* add discription

Co-authored-by: Takamasa Horibe <horibe.takamasa@gmail.com>
Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>

* add readme in pose2twist (autowarefoundation#662)

* add readme

Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com>

* Update localization/twist_estimator/pose2twist/src/README.md

Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>

Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>

* fix readme (autowarefoundation#669)

Signed-off-by: Takamasa Horibe <horibe.takamasa@gmail.com>

* convert VehicleReport to Twist msgs (autowarefoundation#657)

* add vehicle velocity converter package

* clang format

* add README

* add heading_rate value

* remove twist msg

* clang format

* set covariance value

* fixed bug

* [gyro_odometer] remove input twist (autowarefoundation#706)

* remove input twist

* update README

* fix: move README.md directory

Co-authored-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp>
Co-authored-by: Daichi Murakami <harihitode@gmail.com>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>
Co-authored-by: Nikolai Morin <nnmmgit@gmail.com>
Co-authored-by: Jilada Eccleston <jilada.eccleston@gmail.com>
Co-authored-by: nik-tier4 <71747268+nik-tier4@users.noreply.github.com>
Co-authored-by: Ryohsuke Mitsudome <43976834+mitsudome-r@users.noreply.github.com>
Co-authored-by: Esteve Fernandez <esteve@apache.org>
Co-authored-by: Kosuke Murakami <kosuke.murakami@tier4.jp>
Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com>
Co-authored-by: YamatoAndo <yamato.ando@gmail.com>
Co-authored-by: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com>
Co-authored-by: Takamasa Horibe <horibe.takamasa@gmail.com>
Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp>
Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com>
Co-authored-by: Kazuki Miyahara <kmiya@outlook.com>
Co-authored-by: Makoto Tokunaga <vios-fish@users.noreply.github.com>
Co-authored-by: Adam Dąbrowski <adam.dabrowski@robotec.ai>
Co-authored-by: Hiroki OTA <hiroki.ota@tier4.jp>
Co-authored-by: Takeshi Ishita <ishitah.takeshi@gmail.com>
Co-authored-by: Kenji Miyake <kenji.miyake@tier4.jp>
Co-authored-by: kminoda <44218668+kminoda@users.noreply.github.com>
Co-authored-by: autoware-iv-sync-ci[bot] <87871706+autoware-iv-sync-ci[bot]@users.noreply.github.com>
Co-authored-by: Keisuke Shima <19993104+KeisukeShima@users.noreply.github.com>
Co-authored-by: Sugatyon <32741405+Sugatyon@users.noreply.github.com>
Co-authored-by: RyuYamamoto <ryu.yamamoto@tier4.jp>
@aohsato aohsato added the component:perception Advanced sensor data processing and environment understanding. (auto-assigned) label Apr 14, 2022
@BonoloAWF BonoloAWF added type:bug Software flaws or errors. priority:high High urgency and importance. labels Apr 19, 2022
@plane-li
Copy link
Contributor

plane-li commented Apr 28, 2022

you can try to modify split_points_distance_tolerance in ground_segmentation.param.yaml,
or radial_divider_angle_deg in the scan_ground_filter_nodelet.cpp.

@mitsudome-r
Copy link
Member

We have discussed this in ASWG.

@piotr-zyskowski-rai said that he was able to reproduce the error. His suggestion is to modify a parameter as suggested by @plane-li, but we might want to have rosbag from different cases so that we can confirm the change is valid for other use cases.

@WJaworskiRobotec
Copy link
Contributor

@mitsudome-r I think it's a good idea here not to play around with parameters manually and assess them visually, but to introduce some simple metrics that will give an insight about the overall quality of the segmentation on all detected clusters in the dataset.
With such metrics, parameters could be tuned automatically and we will make sure that by improving one case we don't brake others.

We could develop node for calculation of such metrics in this task .

My initial though is to use something like 3D compactness metric to detect artifacts like shown in this issue, and additionally some metric related to distance between clusters to detect if single object was split into several small objects.

@piotr-zyskowski-rai
Copy link

@mitsudome-r Also, with a limited effort, we could provide ground truth point cloud segmentation functionality in lidar simulation. It would make it possible to create a metric comparing segmented by autoware with ground truth information

@WJaworskiRobotec
Copy link
Contributor

@mitsudome-r @piotr-zyskowski-rai It would be perfect to have GT segmentation information in the simulator, to properly tune the parameters of segmentation algorithms. If similar sensor to the one implemented in CARLA could be added to TierIV SIM it would be perfect for improving 3D segmentation algorithm

@sglee-morai
Copy link

sglee-morai commented May 11, 2022

Here is the link for the lidar data, created from the simulator - semantic/instance segmentation point cloud data are included.

Link for the demo lidar segmentation data, created from MORAI SIM: Drive

In case more data are required for research, MORAI can provide that.

@piotr-zyskowski-rai
Copy link

To test the data I have extracted only the segmentation part of the autoware launch system and created a separate launch file to run it.

I played around with split_points_distance_tolerance in ground_segmentation.param.yaml file and was able to reduce the size of the tail
Before:
image
After:
image

@sglee-morai Thanks for the rosbag. It will be very helpful. For the purpose of this task, it would be great to have more small objects in the scene, like the poles that are shown in the example in the task description. If you could provide such rosbags along with segmentation information that would be great. Thanks!

I was able to run provided rosbag with segmentation launched with the launch I prepared. I used the following steps to do that:

  1. Run the launch:
ros2 launch tier4_perception_launch perception_ground_seg.launch.xml 
  1. The point cloud data's base frame is lidar instead of base_link, I ran static transform publisher:
ros2 run  tf2_ros static_transform_publisher 0 0 5 0 0 0 1 base_link lidar

5m translation along z-axis is caused by the fact that it seems that ground level is different from what is expected by autoware, and without it everything was treated as not-ground.

  1. Run the bag with remapping to comply with the segmentation node:
ros2 bag play lidar_intensity/ --remap /velodyne/points_xyzi:=/perception/obstacle_segmentation/range_cropped/pointcloud

image

There is some inaccuracy in segmentation whose origin I do not understand, but I will look into this. At the same time they are pretty far away so I am not sure we should be worried about that:

image

@sglee-morai
Copy link

sglee-morai commented May 17, 2022

@piotr-zyskowski-rai Thanks a lot for the feedback! I'll create another rosbag created as you suggested and share that with you.

About what you mentioned:

"There is some inaccuracy in segmentation whose origin I do not understand, but I will look into this. At the same time they are pretty far away so I am not sure we should be worried about that"

That was maybe due to an error in the data. I used 32ch Lidar model to create the rosbag, but 32ch lidar data seems to be weird at that moment. I can create another version with 16 ch version and take a look at if the same happens.

Besides, you can use an evaluation version of MORAI SIM: Drive for this purpose so that you will be able to create a scene as you wanted. If you are interested, please let me know. Below is the simple document that I created for AWF, but it may not be detailed enough for your purpose.

Evaluation Version of MORAI SIM: Drive

Link for the Home Documentation (Created especially for AWF)

https://morai.atlassian.net/wiki/external/1098547535/MTJjMDRmZDlhZDhiNDI2YzhkNzgzMWJiMjNiYTYxMzc

IMPORTANT NOTE

Please note that this evaluation version has some issues. (e.g. NPC fails to follow its path when the scenario is loaded again) Schedules for the updated version release is under discussion

@sglee-morai
Copy link

sglee-morai commented May 31, 2022

@piotr-zyskowski-rai Sorry that me getting late for sharing another rosbag file.

My intention was to update MORAI SIM: Drive first and then record another one, but updating took quite a delay which was unexpected. Now I have updated the MORAI SIM successfully and I'm now creating some scenes, which would look something like this. I think I can finish creating some bag files quite soon.

image
image
image

@sglee-morai
Copy link

@piotr-zyskowski-rai

Hello Piotr, if you'd like you can use these rosbag files.

Here's the link to the download page: https://morai.atlassian.net/wiki/external/1133707265/OTQ5NTAxNjYxMjYwNDYxY2I1ZDJjNTFlNzBlYjcwYWU

Before downloading and checking that out, you can simply check whether these might suit your needs. You can see there are three rosbag files,

The reason why I used VLP-16 instead of the previous one (I remember it was HDL32) is to avoid the bug mentioned earlier.

In case the point cloud density is too low, I can provide another rosbag created with different models. I'm thinking of creating one with OS-1 64 ch model in the MORAI SIM: Drive, but since I haven't run it with ROS2 driver provided by Ouster, I'm not really sure how the result is gonna be at this moment.

@piotr-zyskowski-rai
Copy link

piotr-zyskowski-rai commented Jun 7, 2022

@sglee-morai Thanks a lot for the rosbag! I'll look into it soon.

@piotr-zyskowski-rai
Copy link

piotr-zyskowski-rai commented Jun 14, 2022

@sglee-morai I ran the bags, they look very good. Thanks a lot! I started to prepare processed + ground truth data set for metrics development.

@mitsudome-r
Copy link
Member

@piotr-zyskowski-rai will assign someone else to take this over.

@djargot
Copy link
Contributor

djargot commented Jul 26, 2022

Current status of the task:
I am writing a node to extract ground truth point clouds of ground and objects, using a ROS bag provided by MORAI as it has the ground truth information available.
In parallel I implemented a simple segmentation metric to use for validation of this task.

@xmfcx
Copy link
Contributor

xmfcx commented Aug 16, 2022

Related issue: autowarefoundation/autoware-projects#11

@djargot
Copy link
Contributor

djargot commented Aug 16, 2022

I have finished a node for extraction of ground truth point clouds of ground and objects (https://github.com/djargot/pcl_div). Using the node, I extracted data from ROS bag provided by MORAI and used segmentation metrics (#1600) to calculate quantitative results of ground segmentation quality.

Example results from segmentation metrics for a single point cloud:
image

As can be seen, it look like for this particular ROS bag ground is removed perfectly, in a sense that there are no false negatives. There are some false positives, which is to be expected in a scenario with perfect precision.

For the task and the problem stated at the very beginning, it would be perfect to have labeled ROS bag where the problem occurs. In another case, only qualitative analysis can be done that could lead to some unwanted/unexpected behavior (e.g. increasing the number of false negatives significantly).

@djargot
Copy link
Contributor

djargot commented Sep 13, 2022

By playing with following ground segmentation parameters: split_points_distance_tolerance and split_height_distance I was able to remove the tail. I also ran the modified ground segmentation with the ROS bag provided by MORAI and it looks ok with visual assessment. However, I still need to check thoroughly whether the general performance of the algorithm is not worsened with the modified parameters.

Before:
aold1

After:
aold2

@djargot
Copy link
Contributor

djargot commented Oct 4, 2022

I checked different parameters that i proposed and also used another ground segmentation method as suggested here: #1866 (comment) ray_ground_filter_nodelet instead of scan_ground_filter_nodelet for ground segmentation. It appears that the ray_ground_filter_nodelet method works better and does not lead to tail behind the pole.

Also using segmentation metrics node I got quantitative results using labeled point cloud provided by MORAI. The numbers below are cumulative results from 748 labeled point clouds from the aforementioned ROS bag.
The first two numbers correspond to original scan_ground_filter_nodelet and the one with changed split_points_distance_tolerance and split_height_distance as described in my previous comment. The third number is obtained with ray_ground_filter_nodelet.
Accuracy: 88,42 --> 89,00 | 89,38
Recall: 56,94 --> 59,16 | 60,12
Precision: 99,67 --> 99,63 | 99,60

scan_ground_filter_nodelet:
scan_old

ray_ground_filter_nodelet:
ray2_new

Final thought would be to switch to ray_ground_filter_nodelet if the problem occurs.

@kaancolak
Copy link
Contributor

@djargot We have faced the same problem on the BUS ODD project, and changed the ground remover algorithm to ray_ground_filter_nodelet, it looks working better.

@djargot
Copy link
Contributor

djargot commented Oct 11, 2022

I have checked that #1899 seems to remove the problem for scan_ground_filter_nodelet.

@mitsudome-r
Copy link
Member

@djargot Are there any other remaining issues? If not, I would like to close this issue. (and close #1866 if it is not needed anymore)

@mitsudome-r
Copy link
Member

@djargot friendly ping

@djargot
Copy link
Contributor

djargot commented Nov 1, 2022

@mitsudome-r
I am very sorry for the late reply.
I can confirm that with current version of ground segmentation the problem does not occur. So this issue can be closed as resolved with #1899

@BonoloAWF
Copy link

@mitsudome-r I am very sorry for the late reply. I can confirm that with current version of ground segmentation the problem does not occur. So this issue can be closed as resolved with #1899

1222-takeshi pushed a commit to 1222-takeshi/autoware.universe that referenced this issue Jul 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:perception Advanced sensor data processing and environment understanding. (auto-assigned) type:bug Software flaws or errors.
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.