24 #ifndef CREATE_POINTS_HPP_ 25 #define CREATE_POINTS_HPP_ 27 #include "mrob/SE3.hpp" 28 #include "mrob/plane.hpp" 29 #include "mrob/plane_registration.hpp" 33 #include <Eigen/StdVector> 37 using namespace Eigen;
52 Mat31 samplePosition();
53 SO3 sampleOrientation();
55 std::default_random_engine generator_;
56 std::uniform_real_distribution<double> rotationUniform_;
57 std::uniform_real_distribution<double> tUniform_;
75 std::default_random_engine generator_;
76 std::uniform_real_distribution<double> x_, y_;
77 std::normal_distribution<double> z_, bias_;
78 double xBias_ {}, yBias_ {};
89 CreatePoints(uint_t N = 10, uint_t numberPlanes = 4, uint_t numberPoses = 2,
90 double noisePerPoint = 0.01,
double noiseBias = 0.1,
91 const SE3 &initial_pose =
SE3());
103 std::vector<Mat31>& get_point_cloud(uint_t t);
104 std::vector<uint_t>& get_point_plane_ids(uint_t t);
106 uint_t get_number_planes()
const {
return numberPlanes_;};
107 uint_t get_number_poses()
const {
return numberPoses_;};
109 std::vector<SE3>& get_ground_truth_trajectory() {
return goundTruthTrajectory_;};
110 SE3 get_ground_truth_last_pose() {
return goundTruthTrajectory_.back();};
111 SE3 get_ground_truth_pose(uint_t i);
113 std::vector<SE3>& get_plane_poses() {
return planePoses_;};
114 std::vector<std::pair<uint_t, std::shared_ptr<Plane> >>& get_all_planes() {
return planes_;}
116 std::vector<Mat41>& get_plane_states() {
return plane_states_;};
123 uint_t numberPoints_;
124 uint_t numberPlanes_;
125 double noisePerPoint_, noiseBias_;
126 double rotationRange_;
128 double lamdaOutlier_;
133 std::vector< std::vector<Mat31> > X_;
135 std::vector< std::vector<uint_t>> pointId_;
138 double xRange_, yRange_;
140 std::vector<SE3> goundTruthTrajectory_;
144 std::vector<SE3> planePoses_;
145 std::vector<Mat41> plane_states_;
146 std::vector<std::pair<uint_t, std::shared_ptr<Plane> >> planes_;
Definition: create_points.hpp:64
Definition: create_points.hpp:84
Definition: plane_registration.hpp:46
Special Euclidean (group) in 3d Is the group representing rotations and translations, that is, rigid body transformations. SE3 = {T = [R t] | R SO3 , t Re^3 } [0 1] Associated to the groups of RBT, there is the Lie algebra se3 representing the same transformation in the tangent space around the identity. Particularly, xi =[w , v] Re^6, where w Re^3 represents the rotation and v the translation. We will preserve this order in this class.
Definition: matrix_base.hpp:36