Ask Your Question

Revision history [back]

Are you using a recent version of humanoid_navigation from GitHub?

You should be able to use humanoid_localization code with point clouds without converting them to a laser scan (which will also be better). We've used the code as it is published for the paper you mention above, although with an Asus Xtion sensor. So you should first ensure your point clouds are all in order (no nans, invalid values or similar). The callback pointCloudCallback is then called, using the functions prepareGeneralPointCloud and localizeWithMeasurement. So laserCallbackshould not be used at all.

The error you describe should never happen: you're trying to raycast to an endpoint in direction "0,0,0" in the map, that could be a result of broken TF frames or broken values in the point cloud.

Otherwise you can trace what's happening e.g. with rxconsole setting the log level to "debug". Set num_particles to something small so you don't get thousands of errors in that case.