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

Make lidar measurement model class #195

Merged
merged 31 commits into from
Sep 25, 2018
Merged

Conversation

at-wat
Copy link
Owner

@at-wat at-wat commented Sep 9, 2018

No description provided.

@at-wat at-wat added the WIP label Sep 9, 2018
@at-wat at-wat self-assigned this Sep 9, 2018
return true;
return false;
};
pc->erase(
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

copy before erase

@at-wat

This comment has been minimized.

num_points_ = num_points_default_;
return;
}
size_t num = num_points_;
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

num_points_default_

@at-wat

This comment has been minimized.

@codecov-io
Copy link

Codecov Report

Merging #195 into master will decrease coverage by <.01%.
The diff coverage is 85.94%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #195      +/-   ##
==========================================
- Coverage   89.25%   89.25%   -0.01%     
==========================================
  Files           9       13       +4     
  Lines        1368     1312      -56     
==========================================
- Hits         1221     1171      -50     
+ Misses        147      141       -6
Impacted Files Coverage Δ
include/mcl_3dl/lidar_measurement_model_base.h 100% <100%> (ø)
include/mcl_3dl/point_cloud_random_sampler.h 100% <100%> (ø)
include/mcl_3dl/state_6dof.h 79.54% <79.54%> (ø)
src/mcl_3dl.cpp 86.8% <82.95%> (-0.08%) ⬇️
...rement_models/lidar_measurement_model_likelihood.h 96.61% <96.61%> (ø)
include/mcl_3dl/vec3.h 96% <0%> (-0.43%) ⬇️
include/mcl_3dl/chunked_kdtree.h 95.06% <0%> (-0.12%) ⬇️
include/mcl_3dl/pf.h 99.17% <0%> (-0.04%) ⬇️
include/mcl_3dl/raycast.h 100% <0%> (ø) ⬆️
... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 348f6d7...7e6e2ad. Read the comment docs.

@at-wat

This comment has been minimized.

virtual typename pcl::PointCloud<POINT_TYPE>::Ptr filter(
const typename pcl::PointCloud<POINT_TYPE>::Ptr &) const = 0;

virtual std::pair<float, float> measure(
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

define measurement result type

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on this PR?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, I've forgotten this. thanks.

src/mcl_3dl.cpp Outdated
if (match_ratio_min > qualities["likelihood"])
match_ratio_min = qualities["likelihood"];
if (match_ratio_max < qualities["likelihood"])
match_ratio_max = qualities["likelihood"];

// approximative beam model
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

implement beam model as a class

src/mcl_3dl.cpp Outdated
@@ -1560,7 +1290,7 @@ class MCL3dlNode
params_.global_localization_div_yaw = lroundf(2 * M_PI / grid_ang);

pnh_.param("num_particles", params_.num_particles, 64);
pf_.reset(new mcl_3dl::pf::ParticleFilter<State, float, ParticleWeightedMeanQuat>(params_.num_particles));
pf_.reset(new pf::ParticleFilter<State6DOF, float, ParticleWeightedMeanQuat>(params_.num_particles));
pnh_.param("num_points", params_.num_points, 96);
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

migrate old parameters to new parameters in the model specific namespace

typename pcl::PointCloud<POINT_TYPE>::Ptr output(new pcl::PointCloud<POINT_TYPE>);

output->width = 1;
output->height = 0;
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is done by pcl::PointCloud<>::push_back

@at-wat

This comment has been minimized.

@at-wat

This comment has been minimized.

@at-wat

This comment has been minimized.

@at-wat

This comment has been minimized.

@at-wat

This comment has been minimized.

@at-wat

This comment has been minimized.

class LidarMeasurementModelBase
{
static_assert(
std::is_base_of<pf::ParticleBase<float>, STATE_TYPE>::value,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is odd. how come you force to use only float? as it's template, a programmer might give other types, too.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's very complicated to static_assert templated class.
allowing pf::ParticleBase<float> and also pf::ParticleBase<double> would be enough for now.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO, this interface class doesn't need to take STATE_TYPE as class templates.
STATE_TYPE is used only for an argument of measure function. So, for me up-casting to pf::ParticleBase by the function argument is sufficient.

Copy link
Owner Author

@at-wat at-wat Sep 20, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically, this makes sense for me.
However in this case, since pf::ParticleBase is templated, it is not allowed to be used as an argument of virtual function.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you bind interfaces by pure virtual function, yes. Taking a derived class via class template parameter, and static cast from this pointer to a derived class for each member functions allows you to make common function interfaces that has own template parameters.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Come to think of it, these lidar measurement models are available only for State6DOF, not for general pf::ParticleBase.
So, just support State6DOF would be enough for this.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds reasonable.

public:
LidarMeasurementModelBeam(const float x, const float y, const float z)
{
map_grid_min_ = std::min(std::min(x, y), z);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

std::min({x, y, z})

LidarMeasurementModelBeam(const float x, const float y, const float z)
{
map_grid_min_ = std::min(std::min(x, y), z);
map_grid_max_ = std::max(std::max(x, y), z);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

std::max({x, y, z})

@at-wat
Copy link
Owner Author

at-wat commented Sep 20, 2018

[#517] PASSED on indigo

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#517] PASSED on kinetic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#517] PASSED on melodic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped


namespace mcl_3dl
{
template <class POINT_TYPE>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this template to sample().


namespace mcl_3dl
{
template <class STATE_TYPE, class POINT_TYPE>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LidarMeasurementModelBeam looks like not independent from the specific point type as it access to intensity field in the logic.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when you add support new point type, proper way can take slightly different, so that I think it's ok to create different classes depending on point type. do you think so?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my previous opinion, I would like to add specialized nodes for each input point type (PointXYZ and PointXYZI) to increase run-time performance as far as possible, reducing type conversion.
But this is not very much critical and simply converting point type at the subscriber callback should be reasonable.

@at-wat
Copy link
Owner Author

at-wat commented Sep 20, 2018

[#518] FAILED on indigo

catkin_make tests failed


[#518] FAILED on kinetic

catkin_make tests failed


[#518] FAILED on melodic

catkin_make tests failed

@at-wat
Copy link
Owner Author

at-wat commented Sep 20, 2018

[#519] PASSED on indigo

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#519] PASSED on kinetic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#519] PASSED on melodic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

@at-wat
Copy link
Owner Author

at-wat commented Sep 21, 2018

[#520] PASSED on kinetic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#520] PASSED on melodic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#520] PASSED on indigo

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

@at-wat
Copy link
Owner Author

at-wat commented Sep 21, 2018

@DaikiMaekawa addressed your comments. PTAL

}
static State6DOF generateNoise(
std::default_random_engine &engine_,
State6DOF mean, State6DOF sigma)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do you need copy?

src/lidar_measurement_model_likelihood.cpp Show resolved Hide resolved
}
size_t size() const override
{
return 10;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what kind of size is it?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

size allowed in operator[]

this must be 13 for current state model

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that makes sense to me if it's 13.

case 11:
return odom_err_integ_ang.y;
case 12:
return odom_err_integ_ang.z;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add range checking.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is intended to be only used by ParticleFilter class and range must be limited by the return value of the below size().
Since this is one of the most called function, range for this operator is better to be managed by the caller side. (like stl container)
Adding assert would be good for here.

@at-wat
Copy link
Owner Author

at-wat commented Sep 25, 2018

[#521] PASSED on indigo

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#521] PASSED on kinetic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#521] PASSED on melodic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

for (const auto &p_ref : points_ref)
{
if (p_ref[0] == p.x && p_ref[1] == p.y && p_ref[2] == p.z)
found = true;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

once found become true, you don't have to continue for loop.

}
float operator[](const size_t i) const
{
assert(i < 13);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why don't you use default?

@at-wat
Copy link
Owner Author

at-wat commented Sep 25, 2018

[#522] FAILED on indigo

catkin_make failed


[#522] FAILED on kinetic

catkin_make failed


[#522] FAILED on melodic

catkin_make failed

@at-wat
Copy link
Owner Author

at-wat commented Sep 25, 2018

[#523] PASSED on kinetic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#523] PASSED on melodic

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

[#523] PASSED on indigo

All tests passed
build/test_results/mcl_3dl/gtest-test_chunked_kdtree.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_filter.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_nd.xml: 2 tests
build/test_results/mcl_3dl/gtest-test_pf.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_point_cloud_random_sampler.xml: 1 tests
build/test_results/mcl_3dl/gtest-test_quat.xml: 4 tests
build/test_results/mcl_3dl/gtest-test_raycast.xml: 3 tests
build/test_results/mcl_3dl/gtest-test_vec3.xml: 5 tests
build/test_results/mcl_3dl/roslint-mcl_3dl.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_expansion_resetting_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_global_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_localization_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_mcl_3dl_compat_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_tf_rostest.xml: 1 tests
build/test_results/mcl_3dl/rostest-test_tests_transform_rostest.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_pose.xml: 1 tests
build/test_results/mcl_3dl/rosunit-compare_tf.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_expansion_resetting.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_global_localization.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_mcl_3dl_compat.xml: 1 tests
build/test_results/mcl_3dl/rosunit-test_transform_failure.xml: 1 tests
Summary: 35 tests, 0 errors, 0 failures, 0 skipped

@at-wat
Copy link
Owner Author

at-wat commented Sep 25, 2018

@DaikiMaekawa addressed your comments. PTAL

@at-wat at-wat merged commit 5e027cd into master Sep 25, 2018
@at-wat at-wat deleted the lidar-measurement-model-class branch September 25, 2018 11:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants