ROS回顾学习(5):订阅多个话题并对其进行同步处理

更新时间:2023-07-20 00:01:17 阅读: 评论:0

ROS回顾学习(5):订阅多个话题并对其进⾏同步处理
1. 研究背景
本⼩节针对在ROS节点中需要订阅两个及两个以上的话题时,需要保持对这两个话题数据的同步,且需要同时接收数据⼀起处理然后当做参数传⼊到另⼀个函数中。
研究背景:realnT265 和 realn D435 都有IMU数据,但是这两个传感器都将imu的数据拆开进⾏发布了,区分了线加速度和⾓加速,⽽在有⼀些场合我们需要合并使⽤。
2. 详细代码如下:
#include <message_filters/subscriber.h>
#include <message_filters/synchronizer.h>
#include <message_filters/sync_policies/approximate_time.h>
#include <boost/thread/thread.hpp>
using namespace message_filters;
金万利
void imu_callback(const nsor_msgs::ImuConstPtr &imu_msg_accel,const nsor_msgs::ImuConstPtr &imu_msg_gyro)
{
double t = imu_msg_accel->Sec();
double dx = imu_msg_accel->linear_acceleration.x;
double dy = imu_msg_accel->linear_acceleration.y;
double dz = imu_msg_accel->linear_acceleration.z;
double rx = imu_msg_gyro->angular_velocity.x;
double ry = imu_msg_gyro->angular_velocity.y;
约翰亚当斯double rz = imu_msg_gyro->angular_velocity.z;
Vector3d gyr(rx, ry, rz);
Vector3d acc(dx, dy, dz);剧院的英文
/**
处理函数 ......
*/
}
int main(int argc,char** argv)
{
// 需要⽤message_filter容器对两个话题的数据发布进⾏初始化,这⾥不能指定回调函数德语发音
手部怎么保养message_filters::Subscriber<nsor_msgs::Imu>sub_imu_accel(n,IMU_TOPIC_ACCEL,2000,ros::TransportHints().tcpNoDelay());
message_filters::Subscriber<nsor_msgs::Imu>sub_imu_gyro(n,IMU_TOPIC_GYRO,2000,ros::TransportHints().tcpNoDelay());
// 将两个话题的数据进⾏同步
typedef sync_policies::ApproximateTime<nsor_msgs::Imu, nsor_msgs::Imu> syncPolicy;
ecardSynchronizer<syncPolicy>sync(syncPolicy(10), sub_imu_accel, sub_imu_gyro);
// 指定⼀个回调函数,就可以实现两个话题数据的同步获取
ros::spin();
林肯的故事return0;
}
3. 和 l添加如下ROS包:
偷牛贼// 下添加:
find_package(catkin REQUIRED COMPONENTS
....
image_transport
.perspective是什么意思
...英语翻译人才
)
// l下添加:
<build_depend>image_transport</build_depend>
<exec_depend>image_transport</exec_depend>

本文发布于:2023-07-20 00:01:17,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/182675.html

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

标签:话题   数据   需要   发布   函数   处理   指定   回调
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图