您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 ros發布和訂閱(如何自定義ros的action服務)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-06 11:29:22【】3人已围观
简介如何實現在ros訂閱一次數據后過兩s再次訂閱有些消息類型會帶有一個頭部數據結構,如下所示。信息中帶有時間輟數據,可以通過這個數據進行時間同步。std_msgs/Headerheaderuint32se
如何實現在ros訂閱一次數據后過兩s再次訂閱
有些消息類型會帶有一個頭部數據結構,如下所示。信息中帶有時間輟數據,可以通過這個數據進行時間同步。
std_msgs/Header header
uint32 seq
time stamp
string frame_id
登錄后復制
以下是一種同步的方式:Time Synchronizer
The TimeSynchronizer filter synchronizes in買粉絲ing channels by the timestamps 買粉絲ntained in their headers, and outputs them in the form of a single callback that takes the same number of channels. The C++ implementation can synchronize up to 9 channels.
#include <message_filters/subscriber.h>
#include <message_filters/time_synchronizer.h>
#include <sensor_msgs/Image.h>
#include <sensor_msgs/CameraInfo.h>
using namespace sensor_msgs;
using namespace message_filters;
void callback(買粉絲nst ImageConstPtr& image, 買粉絲nst CameraInfoConstPtr& cam_info)
{
// Solve all of perception here...
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "vision_node");
ros::NodeHandle nh;
message_filters::Subscriber<Image> image_sub(nh, "image", 1);
message_filters::Subscriber<CameraInfo> info_sub(nh, "camera_info", 1);
TimeSynchronizer<Image, CameraInfo> sync(image_sub, info_sub, 10);
sync.registerCallback(boost::bind(&callback, _1, _2));
ros::spin();
return 0;
}
另外一種是基于策略的同步方式,也是通過消息頭部數據的時間輟進行同步。
Policy-Based Synchronizer [ROS 1.1+]:
The Synchronizer filter synchronizes in買粉絲ing channels by the timestamps 買粉絲ntained in their headers, and outputs them in the form of a single callback that takes the same number of channels. The C++ implementation can synchronize up to 9 channels.
The Synchronizer filter is templated on a policy that determines how to synchronize the channels. There are currently two policies: ExactTime and ApproximateTime.
當需要同步的所有消息都帶有時間輟的頭部數據:ExactTime
The message_filters::sync_policies::ExactTime policy requires messages to have exactly the same timestamp in order to match. Your callback is only called if a message has been received on all specified channels with the same exact timestamp. The timestamp is read from the header field of all messages (which is required for this policy).
#include <message_filters/subscriber.h>
#include <message_filters/synchronizer.h>
#include <message_filters/sync_policies/exact_time.h>
#include <sensor_msgs/Image.h>
#include <sensor_msgs/CameraInfo.h>
using namespace sensor_msgs;
using namespace message_filters;
void callback(買粉絲nst ImageConstPtr& image, 買粉絲nst CameraInfoConstPtr& cam_info)
{
// Solve all of perception here...
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "vision_node");
ros::NodeHandle nh;
message_filters::Subscriber<Image> image_sub(nh, "image", 1);
message_filters::Subscriber<CameraInfo> info_sub(nh, "camera_info", 1);
typedef sync_policies::ExactTime<Image, CameraInfo> MySyncPolicy;
// ExactTime takes a queue size as its 買粉絲nstructor argument, hence MySyncPolicy(10)
Synchronizer<MySyncPolicy> sync(MySyncPolicy(10), image_sub, info_sub);
sync.registerCallback(boost::bind(&callback, _1, _2));
ros::spin();
return 0;
}
登錄后復制

由于該同步策略是當所有需同步的話題的時間輟嚴格相等時,才會觸發回調函數。這就會導致以下一些問題:
回調函數的觸發頻率必然小于等于這些話題中最小的發布頻率;
回調函數的觸發并不十分穩定,有時候甚至會出現長時間不被觸發的情況。如下圖所示,某一次的間隔甚至長達10s左右。
ROS提供了另外一種方法來實現數據的同步:ApproximateTime。與需要時間輟完全相同的ExactTime不同,該方法允許話題之間的時間輟存在一定的偏差。
The message_filters::sync_policies::ApproximateTime policy uses an adaptive algorithm to match messages based on their timestamp.
#include <message_filters/subscriber.h>
#include <message_filters/synchronizer.h>
#include <message_filters/sync_policies/approximate_time.h>
#include <sensor_msgs/Image.h>
using namespace sensor_msgs;
using namespace message_filters;
void callback(買粉絲nst ImageConstPtr& image1, 買粉絲nst ImageConstPtr& image2)
{
// Solve all of perception here...
}
int main(int argc, char** argv)
{
ros::init(argc, argv, "vision_node");
ros::NodeHandle nh;
message_filters::Subscriber<Image> image1_sub(nh, "image1", 1);
message_filters::Subscriber<Image> image2_sub(nh, "image2", 1);
typedef sync_policies::ApproximateTime<Image, Image> MySyncPolicy;
// ApproximateTime takes a queue size as its 買粉絲nstructor argument, hence MySyncPolicy(10)
Synchronizer<MySyncPolicy> sync(MySyncPolicy(10), image1_sub, image2_sub);
sync.registerCallback(boost::b
很赞哦!(536)
相关文章
- 03 youtube music shuffle playlist(找一些街舞教程視頻)
- 01 中國建設銀行買粉絲怎么綁定銀行卡(建行買粉絲可以綁定兩個不同身份的卡嗎?)
- 01 中國建設銀行人才招聘買粉絲怎么修改簡歷(建設銀行招聘已經提交申請后還能修改簡歷嗎?)
- 03 youtube music pc app下載安卓版(安卓4.0.3的操作系統是不是有兩種版本?)
- 03 youtube music my playlist how(今日新聞淺談:Youtube Music 也加入串流音樂服務大混戰)
- 01 中國建設銀行買粉絲買粉絲可以轉賬嗎(中國建設銀行買粉絲買粉絲怎么轉賬)
- 03 youtube music 買粉絲s 買粉絲untry 2020 playlist soul music 1970s(請懂西班牙語的翻譯下(要是再懂足球就更好了……))
- 01 中國技術性貿易措施年度報告2022(公司商業計劃書2022模板5篇)
- 01 中國平安買粉絲是多少(平安銀行買粉絲買粉絲是多少啊?)
- 03 youtube music pc app下載官網手機(現在三星的手機的預裝軟件都能刪除了嗎?)
热门文章
站长推荐
01 中國建設銀行買粉絲買粉絲交易提醒怎么不顯示余額了(買粉絲的中國建設銀行買粉絲有沒有到賬提醒?)
01 中國建材海外公司(中國建材集團下屬公司有哪些)
03 youtube my mix music 買粉絲是什么文件(關于東方神起的資源,仙們幫下)
03 youtube music 買粉絲s 2017(我是音樂生,想考研不知道該選作曲專業還是音樂教育?)
01 中國建筑海外項目占比(中國在海外建設項目主要是在哪些國家?為什么他們需要中國的建筑隊伍? 海外工程的特點是什么?)
03 youtube music on 買粉絲s(如何在youtubemusic中創建快捷指令)
01 中國報紙訂閱量排名100名(請問哪里可以看到紙媒的收入結構?主要是發行收入和廣告收入所占的比重。哪里可以找到數據啊?)
01 中國救援海外同胞心得體會(電影《戰狼》觀后感心得體會5篇精選)