mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-08 13:57:46 +08:00
Fix the problem that angle_increment caused abnormal scan topic data
This commit is contained in:
@@ -439,6 +439,9 @@ void OBLidarNode::onNewFrameSetCallback(std::shared_ptr<ob::FrameSet> frame_set)
|
||||
|
||||
void OBLidarNode::publishScan(std::shared_ptr<ob::FrameSet> frame_set) {
|
||||
(void)frame_set;
|
||||
if (angle_increment_ == 0.0) {
|
||||
angle_increment_ = getScanAngleIncrement(rate_[LIDAR]);
|
||||
}
|
||||
if (frame_set == nullptr) {
|
||||
return;
|
||||
}
|
||||
@@ -453,7 +456,7 @@ void OBLidarNode::publishScan(std::shared_ptr<ob::FrameSet> frame_set) {
|
||||
scan_msg->header.frame_id = frame_id_[LIDAR];
|
||||
scan_msg->angle_min = 0.7853981852531433;
|
||||
scan_msg->angle_max = 5.495169162750244;
|
||||
scan_msg->angle_increment = 0.0026179938577115536;
|
||||
scan_msg->angle_increment = angle_increment_;
|
||||
scan_msg->time_increment = 1.0 / rate_int_[LIDAR] / scan_count;
|
||||
scan_msg->scan_time = 1.0 / rate_int_[LIDAR];
|
||||
scan_msg->range_min = min_range_;
|
||||
|
||||
@@ -961,6 +961,22 @@ std::string getDistortionModels(OBCameraDistortion distortion) {
|
||||
return sensor_msgs::distortion_models::PLUMB_BOB;
|
||||
}
|
||||
}
|
||||
double getScanAngleIncrement(OBLiDARScanRate fps) {
|
||||
switch (fps) {
|
||||
case OB_LIDAR_SCAN_15HZ:
|
||||
return deg2rad(0.075);
|
||||
case OB_LIDAR_SCAN_20HZ:
|
||||
return deg2rad(0.1);
|
||||
case OB_LIDAR_SCAN_25HZ:
|
||||
return deg2rad(0.125);
|
||||
case OB_LIDAR_SCAN_30HZ:
|
||||
return deg2rad(0.15);
|
||||
case OB_LIDAR_SCAN_40HZ:
|
||||
return deg2rad(0.2);
|
||||
default:
|
||||
return deg2rad(0.1);
|
||||
}
|
||||
}
|
||||
|
||||
double deg2rad(double deg) { return deg * M_PI / 180.0; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user