-
Notifications
You must be signed in to change notification settings - Fork 630
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
Comments
* 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>
you can try to modify split_points_distance_tolerance in ground_segmentation.param.yaml, |
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. |
@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. 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. |
@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 |
@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 |
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. |
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 @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:
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.
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: |
@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:
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: DriveLink for the Home Documentation (Created especially for AWF)https://morai.atlassian.net/wiki/external/1098547535/MTJjMDRmZDlhZDhiNDI2YzhkNzgzMWJiMjNiYTYxMzc IMPORTANT NOTEPlease 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 |
@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. |
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. |
@sglee-morai Thanks a lot for the rosbag! I'll look into it soon. |
@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. |
@piotr-zyskowski-rai will assign someone else to take this over. |
Current status of the task: |
Related issue: autowarefoundation/autoware-projects#11 |
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: 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). |
By playing with following ground segmentation parameters: |
I checked different parameters that i proposed and also used another ground segmentation method as suggested here: #1866 (comment) 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. Final thought would be to switch to |
@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. |
I have checked that #1899 seems to remove the problem for |
@djargot friendly ping |
@mitsudome-r |
|
chore: sync upstream
Checklist
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.
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
Versions
No response
Possible causes
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: