ROS1 C++11 发布16进制数组示例
以下是发布16进制数组的 ROS1 C++11 代码示例:
#include <ros/ros.h>
#include <std_msgs/UInt8MultiArray.h>
int main(int argc, char** argv)
{
ros::init(argc, argv, 'hex_array_publisher');
ros::NodeHandle nh;
// Create publisher for UInt8MultiArray message
ros::Publisher pub = nh.advertise<std_msgs::UInt8MultiArray>('hex_array', 10);
// Create UInt8MultiArray message
std_msgs::UInt8MultiArray msg;
// Fill message with hex values
uint8_t hex_array[] = {0x12, 0xAB, 0xF0, 0x3D};
msg.data.assign(hex_array, hex_array + sizeof(hex_array));
// Publish message repeatedly
ros::Rate rate(10); // 10 Hz
while (ros::ok())
{
pub.publish(msg);
rate.sleep();
}
return 0;
}
在这个示例中,我们使用了 std_msgs/UInt8MultiArray 消息类型来发布16进制数组。首先,我们创建了一个 ros::Publisher 对象,它将消息发布到名为 'hex_array' 的话题上。接下来,我们创建一个 std_msgs::UInt8MultiArray 类型的消息,并使用 std::vector 的 assign 函数将16进制数组中的值赋给 msg.data。最后,我们创建一个 ros::Rate 对象来控制发布消息的速率,然后在循环中使用 pub.publish(msg) 来发布消息。
原文地址: https://www.cveoy.top/t/topic/nlnj 著作权归作者所有。请勿转载和采集!