帮我写一份司岚A1激光雷达获取最近物体距离的C++代码
时间: 2023-12-14 15:36:45 浏览: 82
思岚A1激光雷达测试说明和工具软件
5星 · 资源好评率100%
好的,以下是一份基于ROS的示例代码,可以获取司岚A1激光雷达最近物体的距离:
```cpp
#include <ros/ros.h>
#include <sensor_msgs/LaserScan.h>
void laserScanCallback(const sensor_msgs::LaserScan::ConstPtr& msg)
{
// 获取激光雷达数据
std::vector<float> ranges = msg->ranges;
// 找到最小值
float min_distance = ranges[0];
for (int i = 1; i < ranges.size(); i++)
{
if (ranges[i] < min_distance)
{
min_distance = ranges[i];
}
}
// 输出最小值
ROS_INFO("Min distance: %f", min_distance);
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "laser_scan_node");
ros::NodeHandle nh;
// 订阅激光雷达数据
ros::Subscriber sub = nh.subscribe<sensor_msgs::LaserScan>("/scan", 1000, laserScanCallback);
ros::spin();
return 0;
}
```
你需要将其中的 `/scan` 替换为你实际的激光雷达话题名称。此外,此代码仅输出最近物体的距离,如果你需要获取多个物体的距离,需要对数据进行进一步处理。
阅读全文