ROSURDF(五):nsor_msgs::JointState消息类型的赋值

更新时间:2023-06-03 00:58:48 阅读: 评论:0

ROSURDF(五):nsor_msgs::JointState消息类型的赋值
为了使创建的URDF机器⼈模型正确运动,必须给出robot_state_publisher 节点所需的nsor_msgs::JointState型topic:joint_states。可参见:
nsor_msgs::JointState消息格式为:
std_msgs/Header header
形容健康的成语string[] name
一般人格权>梯田文化
float64[] position
float64[] velocity
相视而笑>黄云芝float64[] effort
那么,如何正确给nsor_msgs::JointState型消息赋值呢?
从消息格式可知,该消息类型包含消息头std_msgs/Header header和数据内容两部分,因此赋值时也需要正确处理这两部分内容,缺⼀不可,否则消息不能正确发布,并有异常报警导致程序异常。
假设声明消息变量为:努力奋斗的说说
nsor_msgs::JointState joint_state;
1.消息头赋值
消息头的赋值仅需处理如下即可:
joint_state.header.stamp = ros::Time::now();
2.消息内容的赋值
从上述消息格式中可知,该消息数据包含多个不同含义的数组,并且该数组没有指定数组长度,因此在赋值时需要明确指定其数组长度,并赋值。⽅法有两种:
1. resize指定数组长度,再赋值
joint_size(3); //指定name数组长度
joint_size(3);//指定position数组长度
joint_state.name[0] ="joint1";//name数组的第⼀个元素赋值
joint_state.position[0] = 0;//position数组的第⼀个元素赋值
2. {}赋值
该⽅法类似于C/C++声明数组并赋初值正月十五放假吗
joint_state.name={"joint1","joint2","joint3"};//指定数组⼤⼩,并赋值
joint_state.position={0,0,0};
velocity和effort相同,经过上述两步赋值后,可正常发布消息。
admitted

本文发布于:2023-06-03 00:58:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/840146.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   数组   赋值   长度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图