gpt4 book ai didi

c++ - 您将如何在结构 vector 的 ROS 中发布消息?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:15 25 4
gpt4 key购买 nike

我想发布一个未知长度的结构 vector ,其中包含两个整数和两个字符串。 ROS 中有发布者和订阅者可以做到这一点吗?

如果没有,我一直在查看 tutorial of how to create custom messages我想我可以制作一个 .msg 文件,其中包含:

int32 upperLeft
int32 lowerRight
string color
string cameraID

和另一个包含先前消息数组的 .msg 文件。但是教程没有给出数组使用的例子,所以我不知道在第二个.msg文件里放什么。此外,我什至不确定如何在 C++ 程序中使用此自定义消息。

任何有关如何执行此操作的提示都很棒!

最佳答案

稍微扩展一下@Sterling已经解释过了...

如果您有一个名为“test_messages”的项目(以及目录),并且您在 test_messages/msg 中有这两种类型的消息:

#> cat test.msg 
string first_name
string last_name
uint8 age
uint32 score

#> cat test_vector.msg
string vector_name
uint32 vector_len # not really necessary, just for testing
test[] vector_test

然后您可以编写此 C++ 代码:

#include "test_messages/test.h"
#include "test_messages/test_vector.h"

...

::test_messages::test test_msg;

test_msg.age = 29;
test_msg.first_name = "Firstname";
test_msg.last_name = "Lastname";
test_msg.score = 79;

test_pub.publish(test_msg);


::test_messages::test_vector test_vec;

test_vec.vector_len = 5;
test_vec.vector_name = std::string("test vector name");

for (int idx = 0; idx < test_vec.vector_len; idx++)
{
test_msg.age = 50;
test_msg.score = 100;
test_msg.first_name = std::string("aaaa");
test_msg.last_name = std::string("bbbb");

test_vec.vector_test.push_back(test_msg);
}

test_vector_pub.publish(test_vec);

关于c++ - 您将如何在结构 vector 的 ROS 中发布消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com