色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在代碼中配置DDS編程示例

麥辣雞腿堡 ? 來(lái)源:古月居 ? 作者:古月 ? 2023-11-24 18:08 ? 次閱讀

DDS編程示例
我們嘗試在代碼中配置DDS,以之前Hello World話(huà)題通信為例。

圖片

運(yùn)行效果

啟動(dòng)兩個(gè)終端,分別運(yùn)行發(fā)布者和訂閱者節(jié)點(diǎn):

$ ros2 run learning_qos qos_helloworld_pub
$ ros2 run learning_qos qos_helloworld_sub

可以看到兩個(gè)終端中的通信效果如下,和之前貌似并沒(méi)有太大區(qū)別。

圖片

圖片

看效果確實(shí)差不多,不過(guò)底層通信機(jī)理上可是有所不同的。

發(fā)布者代碼解析

我們看下在代碼中,如果加入QoS的配置。

learning_qos/qos_helloworld_pub.py

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""@作者: 古月居(www.guyuehome.com)@說(shuō)明: ROS2 QoS示例-發(fā)布“Hello World”話(huà)題"""import rclpy                     # ROS2 Python接口庫(kù)from rclpy.node import Node      # ROS2 節(jié)點(diǎn)類(lèi)from std_msgs.msg import String  # 字符串消息類(lèi)型from rclpy.qos import QoSProfile, QoSReliabilityPolicy, QoSHistoryPolicy # ROS2 QoS類(lèi)"""創(chuàng)建一個(gè)發(fā)布者節(jié)點(diǎn)"""class PublisherNode(Node):    def __init__(self, name):        super().__init__(name)        # ROS2節(jié)點(diǎn)父類(lèi)初始化        qos_profile = QoSProfile(     # 創(chuàng)建一個(gè)QoS原則            # reliability=QoSReliabilityPolicy.BEST_EFFORT,            reliability=QoSReliabilityPolicy.RELIABLE,            history=QoSHistoryPolicy.KEEP_LAST,            depth=1        )        self.pub = self.create_publisher(String, "chatter", qos_profile) # 創(chuàng)建發(fā)布者對(duì)象(消息類(lèi)型、話(huà)題名、QoS原則)        self.timer = self.create_timer(0.5, self.timer_callback)         # 創(chuàng)建一個(gè)定時(shí)器(單位為秒的周期,定時(shí)執(zhí)行的回調(diào)函數(shù))    def timer_callback(self):                                # 創(chuàng)建定時(shí)器周期執(zhí)行的回調(diào)函數(shù)        msg = String()                                       # 創(chuàng)建一個(gè)String類(lèi)型的消息對(duì)象        msg.data = 'Hello World'                             # 填充消息對(duì)象中的消息數(shù)據(jù)        self.pub.publish(msg)                                # 發(fā)布話(huà)題消息        self.get_logger().info('Publishing: "%s"' % msg.data)# 輸出日志信息,提示已經(jīng)完成話(huà)題發(fā)布def main(args=None):                           # ROS2節(jié)點(diǎn)主入口main函數(shù)    rclpy.init(args=args)                      # ROS2 Python接口初始化    node = PublisherNode("qos_helloworld_pub") # 創(chuàng)建ROS2節(jié)點(diǎn)對(duì)象并進(jìn)行初始化    rclpy.spin(node)                           # 循環(huán)等待ROS2退出    node.destroy_node()                        # 銷(xiāo)毀節(jié)點(diǎn)對(duì)象    rclpy.shutdown()                           # 關(guān)閉ROS2 Python接口

完成代碼的編寫(xiě)后需要設(shè)置功能包的編譯選項(xiàng),讓系統(tǒng)知道Python程序的入口,打開(kāi)功能包的setup.py文件,加入如下入口點(diǎn)的配置:

entry_points={    'console_scripts': [     'qos_helloworld_pub  = learning_qos.qos_helloworld_pub:main',},

訂閱者代碼解析

訂閱者中的QoS配置和發(fā)布者類(lèi)似。

learning_qos/qos_helloworld_sub.py

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""@作者: 古月居@說(shuō)明: ROS2 QoS示例-訂閱“Hello World”話(huà)題消息"""import rclpy                                     # ROS2 Python接口庫(kù)
from rclpy.node   import Node                    # ROS2 節(jié)點(diǎn)類(lèi)
from std_msgs.msg import String                  # ROS2標(biāo)準(zhǔn)定義的String消息from rclpy.qos import QoSProfile, QoSReliabilityPolicy, QoSHistoryPolicy  # ROS2 QoS類(lèi)"""創(chuàng)建一個(gè)訂閱者節(jié)點(diǎn)"""class SubscriberNode(Node):    def __init__(self, name):        super().__init__(name)         # ROS2節(jié)點(diǎn)父類(lèi)初始化        qos_profile = QoSProfile(      # 創(chuàng)建一個(gè)QoS原則            # reliability=QoSReliabilityPolicy.BEST_EFFORT,            reliability=QoSReliabilityPolicy.RELIABLE,            
history=QoSHistoryPolicy.KEEP_LAST,            depth=1        )        self.sub = self.create_subscription(            String, "chatter", self.listener_callback, qos_profile) # 創(chuàng)建訂閱者對(duì)象(消息類(lèi)型、話(huà)題名、訂閱者回調(diào)函數(shù)、QoS原則)    
def listener_callback(self, msg):                      # 創(chuàng)建回調(diào)函數(shù),執(zhí)行收到話(huà)題消息后對(duì)數(shù)據(jù)的處理        self.get_logger().info('I heard: "%s"' % msg.data) # 輸出日志信息,提示訂閱收到的話(huà)題消息def main(args=None):                               # ROS2節(jié)點(diǎn)主入口main函數(shù)    rclpy.init(args=args)                          # ROS2 Python接口初始化    node = SubscriberNode("qos_helloworld_sub")    # 創(chuàng)建ROS2節(jié)點(diǎn)對(duì)象并進(jìn)行初始化    rclpy.spin(node)                               # 循環(huán)等待ROS2退出    
node.destroy_node()                            # 銷(xiāo)毀節(jié)點(diǎn)對(duì)象    rclpy.shutdown()                               # 關(guān)閉ROS2 Python接口

完成代碼的編寫(xiě)后需要設(shè)置功能包的編譯選項(xiàng),讓系統(tǒng)知道Python程序的入口,打開(kāi)功能包的setup.py文件,加入如下入口點(diǎn)的配置:

entry_points={    'console_scripts': [     'qos_helloworld_pub  = learning_qos
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28618

    瀏覽量

    207923
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6064

    瀏覽量

    136275
  • DDS
    DDS
    +關(guān)注

    關(guān)注

    21

    文章

    636

    瀏覽量

    152834
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4819

    瀏覽量

    68879
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在MCUxpresso IDE的外設(shè)配置USB?

    我必須在 MCUxpresso IDE 中使用 LPC54113 實(shí)現(xiàn) USB 協(xié)議代碼。請(qǐng)?zhí)峁┮韵略敿?xì)信息,1. 如何在 MCUxpresso IDE 的外設(shè)配置 USB。2.US
    發(fā)表于 04-04 06:22

    仿射變換綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:仿射變換綜合示例
    發(fā)表于 06-06 15:39 ?5次下載

    實(shí)現(xiàn)多種重映射綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:實(shí)現(xiàn)多種重映射綜合示例
    發(fā)表于 06-06 15:39 ?4次下載

    漫水填充算法綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:漫水填充算法綜合示例
    發(fā)表于 06-06 15:39 ?2次下載

    形態(tài)學(xué)圖像處理綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:形態(tài)學(xué)圖像處理綜合示例
    發(fā)表于 06-06 15:52 ?8次下載

    線(xiàn)性圖像濾波綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:線(xiàn)性圖像濾波綜合示例
    發(fā)表于 06-06 15:52 ?8次下載

    圖像金字塔和resize綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:圖像金字塔和resize綜合示例
    發(fā)表于 06-06 15:52 ?3次下載

    圖像濾波綜合示例_《OpenCV3編程入門(mén)》書(shū)本配套源代碼

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:圖像濾波綜合示例
    發(fā)表于 06-06 15:52 ?6次下載

    何在代碼添加注釋

    什么是代碼注釋?zhuān)?b class='flag-5'>何在代碼添加注釋?zhuān)嘈琶恳晃涣私?b class='flag-5'>編程的人并不陌生。注釋里往往有很多有趣的腦洞和「真心話(huà)」
    的頭像 發(fā)表于 10-17 10:53 ?1.1w次閱讀

    Megawin 8051 MCU的IAP(應(yīng)用程序編程示例代碼

    Megawin 8051 MCU的IAP(應(yīng)用程序編程示例代碼分享
    發(fā)表于 07-01 10:36 ?3次下載
    Megawin 8051 MCU的IAP(應(yīng)用程序<b class='flag-5'>編程</b>)<b class='flag-5'>示例</b><b class='flag-5'>代碼</b>

    何在易e語(yǔ)言代碼中使用HTTP代理IP

    何在易e語(yǔ)言代碼中使用HTTP代理IP,示例代碼demo直接可用(步驟注釋清晰)
    的頭像 發(fā)表于 08-05 16:29 ?6992次閱讀

    何在c語(yǔ)言代碼中使用HTTP代理IP

    何在c語(yǔ)言代碼中使用HTTP代理IP,示例代碼demo直接可用(步驟注釋清晰)
    的頭像 發(fā)表于 08-05 16:31 ?2376次閱讀

    何在c#語(yǔ)言代碼中使用HTTP代理IP

    何在c#語(yǔ)言代碼中使用HTTP代理IP,示例代碼demo直接可用(步驟注釋清晰)
    的頭像 發(fā)表于 08-05 16:33 ?2646次閱讀

    移動(dòng)數(shù)據(jù)的編程示例

    編程示例 在此編程示例,將移動(dòng)在生產(chǎn)班次期間為示例收集的數(shù)據(jù)值以作進(jìn)一步處理。收集的數(shù)據(jù)放在
    的頭像 發(fā)表于 08-23 10:10 ?1471次閱讀
    移動(dòng)數(shù)據(jù)的<b class='flag-5'>編程</b><b class='flag-5'>示例</b>

    何在命令行配置DDS

    DDS這么好,那該如何配置和使用呢?我們先帶大家入個(gè)門(mén)。 案例一:在命令行配置DDS 我們先來(lái)試一試在命令行
    的頭像 發(fā)表于 11-24 18:03 ?1035次閱讀
    如<b class='flag-5'>何在</b>命令行<b class='flag-5'>中</b><b class='flag-5'>配置</b><b class='flag-5'>DDS</b>
    主站蜘蛛池模板: 日韩一区二区三区精品| 国产亚洲精品精品精品| 国产亚洲精品V在线观看一| 伦理片在线线看手机版| 日韩av国产av欧美天堂社区| 亚洲一区综合图区| 二色AV天堂在线| 麻豆Av国产在线播放| 西西人体一级裸片| BL全肉多攻NP高H| 九九热国产视频| 日韩一卡二卡三卡四卡免费观在线 | 美女gif趴跪式动态图| 亚洲 国产 日韩 欧美 在线| 99久久精品国产亚洲AV| 精品动漫国产亚洲AV在线观看| 日本一区精品久久久久影院| 总裁呻吟双腿大开男男H| 国产午夜一级淫片| 全黄H全肉禁乱公| 1300部真实小Y女视频合集| 荷兰少归BVBV| 双腿被绑成M型调教PLAY照片| 97无码人妻精品1国产精东影业 | 九九久久国产| 小便japanesewctv| 成人免费小视频| 美女隐私黄www视频| 亚洲区视频在线观看| 国产精品igao视频网网址| 欧美深深色噜噜狠狠yyy| 又紧又大又爽精品一区二区| 国产麻豆AV伦| 视频成人永久免费视频| 波野结衣qvod| 美女扒开尿孔| 正在播放黑人杂交派对卧槽| 精品免费视在线视频观看| 亚洲AV久久无码高潮喷水| 国产成人精品三级在线| 日产亚洲一区二区三区|