Git Product home page Git Product logo

Comments (8)

Linearl avatar Linearl commented on July 29, 2024 1

To be simple, you misunderstood the parameters.
If you look inside the code and you will find some functions in <octomap_server.cpp>.
in function OctomapServer::insertCloudCallback, author use function void OctomapServer::filterGroundPlane to do the filter work.
The base idea is to find a plane which is vertical to the axis-Z in world cordinate. zmin zmax are used to decide the inliers.
Enlarge the range between zmin~zmax will put too many points into account, which affect the ratio of inliers to outliers.In this situation, the efficiency of RANSAC decrease and pcl::SACSegmentation may not find the plane in 200 loops .
If your drone fly in different altitude, you should carefully modify your urdf file and activate your slam algorithm in the ground, so your drone can recognize the ground as z=0.After that,octomap_server should work properly.
Good luck!

from octomap_mapping.

ahornung avatar ahornung commented on July 29, 2024

That PCL error / warning appears when there can be no plane estimated, usually when there are to few or no points. Maybe the parameter sensor_model/max_range is too low?

You could also try debugging with rqt_console, depending on the log level set you'll see exactly what octomap_server is doing.

from octomap_mapping.

Blupblupblup avatar Blupblupblup commented on July 29, 2024

Hi ! I'm having the same issue, with or without defining a sensor_model/max_range

For example I run:

rosrun octomap_server octomap_server_node cloud_in:=/pcl_xyz _occupancy_min_z:=-.85 _occupancy_max_z:=0.5 _filter_ground:=true _ground_filter/plane_distance:=0.8

which includes points belonging to the ground.

To get similar errors:

[INFO] [1497343346.217816837]: PCL segmentation did not find any plane. [ WARN] [1497343346.217868956]: No ground plane found in scan [ERROR] [1497343346.426143499]: Transform error for ground plane filter: "base_footprint" passed to lookupTransform argument target_frame does not exist. , quitting callback. You need to set the base_frame_id or disable filter_ground. ^C[pcl::SampleConsensusModelPlane::optimizeModelCoefficients] Not enough inliers found to support a model (0)! Returning the same coefficients. [pcl::SampleConsensusModelPlane::optimizeModelCoefficients] Not enough inliers found to support a model (0)! Returning the same coefficients. [pcl::SampleConsensusModelPlane::optimizeModelCoefficients] Not enough inliers found to support a model (0)! Returning the same coefficients.

The PointCloud2 I'm using as input for octomap_server is published by a Parrot SlamDunk ROS node, it has a reasonable amount of points, although I admit not that much belonging to the ground, and thus, enabling a successful plane detection.

from octomap_mapping.

ahornung avatar ahornung commented on July 29, 2024

If there are too few points for a reasonable ground plane fit then you should not use the ground filter.

However, I'm seeing a Transform error in your log. Could it be that you're missing the proper base and base_footprint tf transforms?

from octomap_mapping.

Blupblupblup avatar Blupblupblup commented on July 29, 2024

Indeed ! I just tried it again, this time with proper parameters for octomap_server ~frame_id and ~base_frame_id (view_frames pdf return here), getting the no ground plane found warning again.

Command-line messages:

[pcl::SampleConsensusModelPlane::optimizeModelCoefficients] Not enough inliers found to support a model (0)! Returning the same coefficients. [ INFO] [1497517506.648828231]: PCL segmentation did not find any plane. [ WARN] [1497517506.648858067]: No ground plane found in scan [pcl::SampleConsensusModelPlane::optimizeModelCoefficients] Not enough inliers found to support a model (0)! Returning the same coefficients.

Command-line command:

rosrun octomap_server octomap_server_node cloud_in:=/pcl_xyz _occupancy_min_z:=-1 _occupancy_max_z:=0.5 _frame_id:=/map _base_frame_id:=/cam0 _filter_ground:=true _ground_filter/plane_distance:=0.7

I have quite a lot of points in my PointCloud2 (.pcd example file here), though not on the ground, I don't know why my sensor doesn't detect much there...

Anyway, if I can't do anything with octomap_server parameters to force the ground filter to work I guess I'll just have to find another way to do it. Thanks for your answer ! 👍

from octomap_mapping.

snakehaihai avatar snakehaihai commented on July 29, 2024

I tried octomap output with my own pcl ground filter node. it works fine. So you can use it same way as well

from octomap_mapping.

brunoeducsantos avatar brunoeducsantos commented on July 29, 2024

Did anyone find a solution?

from octomap_mapping.

tomkimsour avatar tomkimsour commented on July 29, 2024

Did anyone find a solution to this ? Which parameter should i tweak in the ros node to solve this ?
Is it pointcloud_max_z and pointcloud_min_z ? What range should I use.
I did not really understand the last answer

from octomap_mapping.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.