用C++写一段将csv文件里的两列浮点型数据读取出来并在ros里面发布出去
时间: 2024-04-12 07:30:53 浏览: 119
您可以使用以下代码段将CSV文件中的两列浮点型数据读取出来并在ROS中发布出去:
```cpp
#include <ros/ros.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
int main(int argc, char** argv)
{
ros::init(argc, argv, "csv_publisher");
ros::NodeHandle nh;
ros::Publisher pub = nh.advertise<std_msgs::Float32MultiArray>("csv_data", 1000);
std::ifstream file("data.csv"); // 替换为您的CSV文件路径
std::string line;
while (std::getline(file, line))
{
std::stringstream ss(line);
std::string cell;
std::vector<float> row;
while (std::getline(ss, cell, ','))
{
row.push_back(std::stof(cell));
}
if (row.size() >= 2)
{
std_msgs::Float32MultiArray msg;
msg.data.push_back(row[0]);
msg.data.push_back(row[1]);
pub.publish(msg);
ros::spinOnce();
}
}
file.close();
return 0;
}
```
请确保您已经安装了ROS和相应的C++库。这段代码将读取名为"data.csv"的CSV文件,并将每行的前两个浮点数作为ROS消息发布出去。您需要将文件路径替换为实际的CSV文件路径。
阅读全文