minor change
parent
5830e46fed
commit
93b707c82f
|
@ -1,8 +1,14 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <iomanip>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
|
||||||
|
// #define LOG_TIMESTAMP(timestamp, precision)
|
||||||
|
// std::fixed << std::precision(precision) << timestamp;
|
||||||
|
#define LOG_TIMESTAMP(timestamp) \
|
||||||
|
std::fixed << std::setprecision(3) << timestamp;
|
||||||
|
|
||||||
#define DISALLOW_COPY_AND_ASSIGN(classname) \
|
#define DISALLOW_COPY_AND_ASSIGN(classname) \
|
||||||
classname(const classname &) = delete; \
|
classname(const classname &) = delete; \
|
||||||
classname &operator=(const classname &) = delete;
|
classname &operator=(const classname &) = delete;
|
||||||
|
|
9
main.cc
9
main.cc
|
@ -28,11 +28,6 @@ int main(int argc, char* argv[]) {
|
||||||
if (!slam.Init()) {
|
if (!slam.Init()) {
|
||||||
AFATAL << "Failed to initilize slam system.";
|
AFATAL << "Failed to initilize slam system.";
|
||||||
}
|
}
|
||||||
ADEBUG << "DEBUG";
|
|
||||||
AINFO << "INFO";
|
|
||||||
AWARN << "WARN";
|
|
||||||
AERROR << "ERROR";
|
|
||||||
AFATAL << "FATAL";
|
|
||||||
|
|
||||||
// ros
|
// ros
|
||||||
ros::init(argc, argv, "oh_my_loam");
|
ros::init(argc, argv, "oh_my_loam");
|
||||||
|
@ -49,7 +44,7 @@ void PointCloudHandler(const sensor_msgs::PointCloud2ConstPtr& msg,
|
||||||
OhMyLoam* const slam) {
|
OhMyLoam* const slam) {
|
||||||
PointCloud cloud;
|
PointCloud cloud;
|
||||||
pcl::fromROSMsg(*msg, cloud);
|
pcl::fromROSMsg(*msg, cloud);
|
||||||
AINFO << "Point num = " << cloud.size()
|
ADEBUG << "Point num = " << cloud.size()
|
||||||
<< ", ts = " << msg->header.stamp.toSec();
|
<< ", ts = " << LOG_TIMESTAMP(msg->header.stamp.toSec());
|
||||||
slam->Run(cloud, 0.0);
|
slam->Run(cloud, 0.0);
|
||||||
}
|
}
|
|
@ -14,7 +14,7 @@ const int kMinPtsNum = 100;
|
||||||
bool FeaturePointsExtractor::Init(const YAML::Node& config) {
|
bool FeaturePointsExtractor::Init(const YAML::Node& config) {
|
||||||
config_ = config;
|
config_ = config;
|
||||||
is_vis_ = Config::Instance()->Get<bool>("vis") && config_["vis"].as<bool>();
|
is_vis_ = Config::Instance()->Get<bool>("vis") && config_["vis"].as<bool>();
|
||||||
AINFO << "Feature points visualization: " << (is_vis_ ? "ON" : "OFF");
|
AINFO << "Feature points extraction visualizer: " << (is_vis_ ? "ON" : "OFF");
|
||||||
if (is_vis_) visualizer_.reset(new FeaturePointsVisualizer);
|
if (is_vis_) visualizer_.reset(new FeaturePointsVisualizer);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -22,10 +22,9 @@ bool FeaturePointsExtractor::Init(const YAML::Node& config) {
|
||||||
void FeaturePointsExtractor::Extract(const PointCloud& cloud_in,
|
void FeaturePointsExtractor::Extract(const PointCloud& cloud_in,
|
||||||
FeaturePoints* const feature) {
|
FeaturePoints* const feature) {
|
||||||
PointCloudPtr cloud(new PointCloud);
|
PointCloudPtr cloud(new PointCloud);
|
||||||
AINFO << "BEFORE REMOVE, num = " << cloud_in.size();
|
|
||||||
RemoveNaNPoint<Point>(cloud_in, cloud.get());
|
RemoveNaNPoint<Point>(cloud_in, cloud.get());
|
||||||
RemoveClosedPoints<Point>(*cloud, cloud.get(), kPointMinDist);
|
RemoveClosedPoints<Point>(*cloud, cloud.get(), kPointMinDist);
|
||||||
AINFO << "AFTER REMOVE, num = " << cloud->size();
|
ADEBUG << "AFTER REMOVE, point num = " << cloud->size();
|
||||||
if (cloud->size() < kMinPtsNum) {
|
if (cloud->size() < kMinPtsNum) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -41,7 +40,7 @@ void FeaturePointsExtractor::Extract(const PointCloud& cloud_in,
|
||||||
oss << scan.size() << " ";
|
oss << scan.size() << " ";
|
||||||
AssignPointType(&scan);
|
AssignPointType(&scan);
|
||||||
}
|
}
|
||||||
AWARN << oss.str();
|
ADEBUG << oss.str();
|
||||||
for (const auto& scan : scans) {
|
for (const auto& scan : scans) {
|
||||||
*feature->feature_pts += scan;
|
*feature->feature_pts += scan;
|
||||||
for (const auto& pt : scan.points) {
|
for (const auto& pt : scan.points) {
|
||||||
|
|
|
@ -6,10 +6,10 @@ int FeaturePointsExtractorVLP16::GetScanID(const Point& pt) const {
|
||||||
static int i = 0;
|
static int i = 0;
|
||||||
double omega = std::atan2(pt.z, Distance(pt)) * 180 * M_1_PI + 15.0;
|
double omega = std::atan2(pt.z, Distance(pt)) * 180 * M_1_PI + 15.0;
|
||||||
if (i++ < 10) {
|
if (i++ < 10) {
|
||||||
AWARN << "OMEGA: " << std::atan2(pt.z, Distance(pt)) * 180 * M_1_PI + 15.0
|
ADEBUG << "OMEGA: " << std::atan2(pt.z, Distance(pt)) * 180 * M_1_PI + 15.0
|
||||||
<< " id = " << static_cast<int>(std::round(omega / 2.0) + 0.01)
|
<< " id = " << static_cast<int>(std::round(omega / 2.0) + 0.01)
|
||||||
<< " z = " << pt.z << " "
|
<< " z = " << pt.z << " "
|
||||||
<< " d = " << Distance(pt) << std::endl;
|
<< " d = " << Distance(pt) << std::endl;
|
||||||
}
|
}
|
||||||
return static_cast<int>(std::round(omega / 2.0) + 1.e-5);
|
return static_cast<int>(std::round(omega / 2.0) + 1.e-5);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue