您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 ros訂閱不到消息(ROS訂閱的topic如何通過tcp傳送給QT并顯示到界面上)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-29 01:10:32【】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
很赞哦!(74138)
相关文章
- 01 youtube 買粉絲 music 2020 playlist clean youtube(今日新聞淺談:Youtube Music 也加入串流音樂服務大混戰)
- 01 買粉絲騰訊客服買粉絲在哪里買粉絲進不去(買粉絲買粉絲人工服務電話?)
- 01 買粉絲海外版國內可以用嗎(國外買粉絲和國內買粉絲互通嗎)
- 01 買粉絲直播訂閱提醒在哪里設置(買粉絲關注的主播開播提醒怎么設置)
- 01 youtube vanced manager(puretuber和vanced哪個好)
- 01 youtube vanced latest version download 買粉絲(youtubevanced無法播放)
- 01 youtube 買粉絲s 2022 music 買粉絲s 2023 today(2022-2023學年英語周報八年級第21期答案及試題)
- 01 買粉絲海外用戶數量2023年(2023年買粉絲封號原因)
- 01 youtube 買粉絲s 2020 music awards什么意思網絡(今日新聞淺談:Youtube Music 也加入串流音樂服務大混戰)
- 01 youtube 買粉絲s 2020 action movies list 2016 download(淺談美國LLM專業)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片
职业:程序员,设计师
现居:贵州黔东南台江县
工作室:小组
Email:[email protected]
热门文章
站长推荐
01 買粉絲的訂閱信息在哪(買粉絲訂閱號在哪里查看)
01 youtube 買粉絲 music 買粉絲 download(如何讓YTmusic在后臺播放)
01 youtube 買粉絲s 2022 music playlist 2022(如何在youtubemusic中創建快捷指令)
01 youtube vanced manager github(youtube vanced鴻蒙閃退)
01 youtube 買粉絲s 2020 movies online websites(看Youtube的主頁有一個詞叫做"Promoted Videos"...請問這個Promoted 是什么意思啊)
01 買粉絲海外版國內可以用嗎(海外版買粉絲和國內版能否互通)
01 youtube 買粉絲s 2020 music playlist full songs youtube(如何讓YTmusic在后臺播放)
01 買粉絲的訂閱號怎么取消掉(買粉絲訂閱號怎么徹底關掉?)