[{"data":1,"prerenderedAt":882},["ShallowReactive",2],{"wiki-page-\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin":3,"wiki-doc-items-\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin":572,"language-switcher-data-\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin":866,"wiki-i18n-paths-\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin":881},{"id":4,"title":5,"body":6,"canonicalPath":552,"chapterDepth":553,"chapterOrder":554,"date":555,"description":79,"docI18nKey":556,"docKey":557,"docRoot":558,"docTitle":559,"extension":560,"i18nKey":561,"isBlogPost":562,"isWikiDoc":563,"isWikiIndex":562,"layout":564,"legacyPath":564,"locale":565,"localeSlug":566,"meta":567,"navigation":563,"path":552,"seo":568,"sourcePath":569,"sourceStem":561,"stem":570,"wikiDepth":553,"__hash__":571},"content\u002F_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信.md","UDP通信",{"type":7,"value":8,"toc":539},"minimark",[9,14,18,21,24,27,55,58,63,66,69,72,83,86,92,95,171,174,178,181,271,274,277,342,345,348,354,357,374,377,383,387,390,473,476,482,486,489,492,495,501,504,510,513,516],[10,11,13],"h2",{"id":12},"linux-udp-通信","Linux UDP 通信",[15,16,17],"p",{},"UDP 通信是 Linux 網絡編程中非常常見的一種通信方式。",[15,19,20],{},"相比 TCP，UDP 不需要提前建立連接，發送方可以直接向指定 IP 和端口發送數據。它的特點是簡單、延遲低、開銷小，但不保證數據一定送達，也不保證順序。",[15,22,23],{},"在機器人項目中，UDP 常用於高頻、實時、允許少量丟包的數據傳輸場景。",[15,25,26],{},"在實際項目中，UDP 通信常見於：",[28,29,30,34,37,40,43,46,49,52],"ul",{},[31,32,33],"li",{},"激光雷達數據傳輸",[31,35,36],{},"網絡相機或傳感器數據流",[31,38,39],{},"機器人狀態廣播",[31,41,42],{},"局域網設備發現",[31,44,45],{},"遙控器或手柄數據傳輸",[31,47,48],{},"多機器人之間的簡單通信",[31,50,51],{},"高頻狀態上報",[31,53,54],{},"對實時性要求高、但允許少量丟包的場景",[15,56,57],{},"UDP 的核心特點是快，但不可靠。因此它更適合“持續發送的數據流”，而不是“必須保證每條消息都送達”的場景。",[59,60,62],"h3",{"id":61},"udp-通信是什麼","UDP 通信是什麼",[15,64,65],{},"UDP，全稱 User Datagram Protocol，是一種無連接的傳輸協議。",[15,67,68],{},"和 TCP 不同，UDP 通信不需要建立連接。只要知道目標 IP 和端口，就可以直接發送數據。",[15,70,71],{},"典型結構如下：",[73,74,80],"pre",{"className":75,"code":77,"language":78,"meta":79},[76],"language-text","UDP Sender\n    ↓\nUDP Receiver\n","text","",[81,82,77],"code",{"__ignoreMap":79},[15,84,85],{},"也可以是雙向通信：",[73,87,90],{"className":88,"code":89,"language":78,"meta":79},[76],"程序 A  ←UDP→  程序 B\n",[81,91,89],{"__ignoreMap":79},[15,93,94],{},"常見概念包括：",[96,97,98,111],"table",{},[99,100,101],"thead",{},[102,103,104,108],"tr",{},[105,106,107],"th",{},"概念",[105,109,110],{},"說明",[112,113,114,123,131,139,147,155,163],"tbody",{},[102,115,116,120],{},[117,118,119],"td",{},"IP 地址",[117,121,122],{},"用來定位網絡中的設備",[102,124,125,128],{},[117,126,127],{},"端口號",[117,129,130],{},"用來區分不同程序",[102,132,133,136],{},[117,134,135],{},"Datagram",[117,137,138],{},"UDP 數據報，一次發送對應一個數據報",[102,140,141,144],{},[117,142,143],{},"廣播",[117,145,146],{},"向局域網內多個設備發送數據",[102,148,149,152],{},[117,150,151],{},"組播",[117,153,154],{},"向加入同一組播組的設備發送數據",[102,156,157,160],{},[117,158,159],{},"丟包",[117,161,162],{},"UDP 不保證數據一定送達",[102,164,165,168],{},[117,166,167],{},"亂序",[117,169,170],{},"UDP 不保證數據按順序到達",[15,172,173],{},"UDP 和 TCP 最大的區別是：TCP 是可靠字節流，UDP 是不可靠數據報。",[59,175,177],{"id":176},"linux-下常見-udp-庫","Linux 下常見 UDP 庫",[15,179,180],{},"Linux 下進行 UDP 通信有多種方案，常見的包括：",[96,182,183,199],{},[99,184,185],{},[102,186,187,190,193,196],{},[105,188,189],{},"方案",[105,191,192],{},"類型",[105,194,195],{},"特點",[105,197,198],{},"適合場景",[112,200,201,215,229,243,257],{},[102,202,203,206,209,212],{},[117,204,205],{},"Linux socket API",[117,207,208],{},"Linux 原生接口",[117,210,211],{},"最底層、依賴少、通用性強",[117,213,214],{},"想深入理解網絡通信機制",[102,216,217,220,223,226],{},[117,218,219],{},"boost::asio",[117,221,222],{},"通用 C++ 網絡庫",[117,224,225],{},"支持同步\u002F異步 UDP，適合工程封裝",[117,227,228],{},"推薦用於 C++ 項目",[102,230,231,234,237,240],{},[117,232,233],{},"Qt Network",[117,235,236],{},"Qt 網絡模塊",[117,238,239],{},"和 Qt 界面程序結合方便",[117,241,242],{},"Qt 上位機",[102,244,245,248,251,254],{},[117,246,247],{},"Python socket",[117,249,250],{},"Python 標準庫",[117,252,253],{},"簡單方便，適合測試",[117,255,256],{},"Python 調試腳本",[102,258,259,262,265,268],{},[117,260,261],{},"ROS 2 topic",[117,263,264],{},"ROS 2 通信機制",[117,266,267],{},"ROS 2 內部通信方便",[117,269,270],{},"ROS 2 系統內部數據傳輸",[15,272,273],{},"這些方案本質上都是爲了完成 UDP 數據報的發送和接收，只是封裝方式不同。",[59,275,276],{"id":276},"各方案對比",[96,278,279,291],{},[99,280,281],{},[102,282,283,285,288],{},[105,284,189],{},[105,286,287],{},"優點",[105,289,290],{},"缺點",[112,292,293,303,313,323,333],{},[102,294,295,297,300],{},[117,296,205],{},[117,298,299],{},"原生、穩定、依賴少、通用性強",[117,301,302],{},"代碼相對繁瑣，異步處理麻煩",[102,304,305,307,310],{},[117,306,219],{},[117,308,309],{},"C++ 工程友好，異步 UDP 方便，適合封裝 driver",[117,311,312],{},"需要理解 io_context、endpoint、socket 等概念",[102,314,315,317,320],{},[117,316,233],{},[117,318,319],{},"和 Qt 程序結合自然，適合上位機",[117,321,322],{},"不適合脫離 Qt 的底層 driver",[102,324,325,327,330],{},[117,326,247],{},[117,328,329],{},"上手快，適合測試 UDP 包",[117,331,332],{},"不適合作爲 C++ 底層主線",[102,334,335,337,339],{},[117,336,261],{},[117,338,267],{},[117,340,341],{},"不適合替代通用 UDP 學習",[59,343,344],{"id":344},"本教程建議選擇",[15,346,347],{},"本教程建議優先選擇：",[73,349,352],{"className":350,"code":351,"language":78,"meta":79},[76],"boost::asio\n",[81,353,351],{"__ignoreMap":79},[15,355,356],{},"原因是：",[28,358,359,362,365,368,371],{},[31,360,361],{},"適合 C++ 工程開發",[31,363,364],{},"和 TCP、串口、定時器可以使用同一套 Boost.Asio 編程模型",[31,366,367],{},"支持同步和異步 UDP 收發",[31,369,370],{},"不依賴 ROS 2，方便在普通 C++、OpenCV、Qt、嵌入式 Linux 項目中複用",[31,372,373],{},"適合封裝網絡傳感器、遠程遙控、狀態廣播等功能",[15,375,376],{},"推薦的工程結構是：",[73,378,381],{"className":379,"code":380,"language":78,"meta":79},[76],"上层项目：ROS 2 \u002F OpenCV \u002F Qt \u002F 普通 C++ 程序\n        ↓\n自己封装的 UdpSender \u002F UdpReceiver 类\n        ↓\nboost::asio\n        ↓\nUDP socket\n        ↓\n雷达 \u002F 网络设备 \u002F 远程控制端\n",[81,382,380],{"__ignoreMap":79},[59,384,386],{"id":385},"tcp-和-udp-怎麼選","TCP 和 UDP 怎麼選",[15,388,389],{},"TCP 和 UDP 都很常用，但適合的場景不同。",[96,391,392,405],{},[99,393,394],{},[102,395,396,399,402],{},[105,397,398],{},"對比項",[105,400,401],{},"TCP",[105,403,404],{},"UDP",[112,406,407,418,429,440,451,462],{},[102,408,409,412,415],{},[117,410,411],{},"是否連接",[117,413,414],{},"需要建立連接",[117,416,417],{},"不需要建立連接",[102,419,420,423,426],{},[117,421,422],{},"可靠性",[117,424,425],{},"可靠傳輸",[117,427,428],{},"不保證送達",[102,430,431,434,437],{},[117,432,433],{},"順序",[117,435,436],{},"保證順序",[117,438,439],{},"不保證順序",[102,441,442,445,448],{},[117,443,444],{},"延遲",[117,446,447],{},"相對更高",[117,449,450],{},"相對更低",[102,452,453,456,459],{},[117,454,455],{},"適合數據",[117,457,458],{},"命令、配置、文件、日誌",[117,460,461],{},"高頻數據、廣播、實時狀態",[102,463,464,467,470],{},[117,465,466],{},"典型場景",[117,468,469],{},"遠程控制、服務器通信、參數配置",[117,471,472],{},"雷達數據、遙控數據、狀態廣播",[15,474,475],{},"簡單理解：",[73,477,480],{"className":478,"code":479,"language":78,"meta":79},[76],"TCP：我要确保这条消息送到\nUDP：我要快速持续发送，偶尔丢一包也能接受\n",[81,481,479],{"__ignoreMap":79},[59,483,485],{"id":484},"與-ros-2-的關係","與 ROS 2 的關係",[15,487,488],{},"學習 UDP，並不代表要用 UDP 替代 ROS 2 的 topic。",[15,490,491],{},"在 ROS 2 系統內部，節點之間通信通常優先使用 ROS 2 自己的通信機制。而 UDP 更適合用來連接 ROS 2 系統之外的網絡設備，或者實現輕量級的遠程通信。",[15,493,494],{},"例如：",[73,496,499],{"className":497,"code":498,"language":78,"meta":79},[76],"激光雷达\n        ↓\nUDP 数据包\n        ↓\n自己封装的 UdpReceiver\n        ↓\nROS 2 节点发布点云 \u002F LaserScan\n",[81,500,498],{"__ignoreMap":79},[15,502,503],{},"也可以用於：",[73,505,508],{"className":506,"code":507,"language":78,"meta":79},[76],"远程遥控端\n        ↓\nUDP\n        ↓\n机器人主控程序\n",[81,509,507],{"__ignoreMap":79},[59,511,512],{"id":512},"本章學習目標",[15,514,515],{},"學習完本章後，應該能夠掌握：",[28,517,518,521,524,527,530,533,536],{},[31,519,520],{},"UDP 通信的基本概念",[31,522,523],{},"UDP 和 TCP 的主要區別",[31,525,526],{},"IP 地址、端口號、endpoint 的含義",[31,528,529],{},"使用 C++ 發送和接收 UDP 數據",[31,531,532],{},"理解 UDP 丟包、亂序、廣播等特性",[31,534,535],{},"使用 Boost.Asio 封裝 UDP 通信類",[31,537,538],{},"爲後續雷達數據接收、遠程遙控、狀態廣播打基礎",{"title":79,"searchDepth":540,"depth":540,"links":541},2,[542],{"id":12,"depth":540,"text":13,"children":543},[544,546,547,548,549,550,551],{"id":61,"depth":545,"text":62},3,{"id":176,"depth":545,"text":177},{"id":276,"depth":545,"text":276},{"id":344,"depth":545,"text":344},{"id":385,"depth":545,"text":386},{"id":484,"depth":545,"text":485},{"id":512,"depth":545,"text":512},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin",1,"1300-0400","2023-12-30","wiki\u002F2023-12-30-ros2-tutorial","zh-hant:2023-12-30-ros2-tutorial","\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信",false,true,null,"zh-Hant","zh-hant",{},{"title":5,"description":79},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信","ZhAWACSfqKhR2rmonPT6-Bdi5f1nYJ7HS9lbkUbnv8E",[573,579,584,589,594,599,604,609,614,619,624,629,634,639,644,649,654,659,664,669,674,679,684,689,694,699,703,708,712,713,718,723,728,733,738,743,748,753,758,763,768,773,778,783,788,793,798,803,808,813,818,823,828,833,838,843,848,853,858,863],{"path":574,"stem":575,"title":576,"date":555,"chapterOrder":577,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","ROS2介紹","0100",0,{"path":580,"stem":581,"title":582,"date":555,"chapterOrder":583,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","入門操作","0200",{"path":585,"stem":586,"title":587,"date":555,"chapterOrder":588,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包","工作空間與功能包","0300",{"path":590,"stem":591,"title":592,"date":555,"chapterOrder":593,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","四大通信","0400",{"path":595,"stem":596,"title":597,"date":555,"chapterOrder":598,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ros2-qi-ta-tong-xin-ji-zhi","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ROS2其他通信机制","ROS2其他通信機制","0500",{"path":600,"stem":601,"title":602,"date":555,"chapterOrder":603,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch","0600",{"path":605,"stem":606,"title":607,"date":555,"chapterOrder":608,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","回溯rosbag2","0700",{"path":610,"stem":611,"title":612,"date":555,"chapterOrder":613,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","座標變換TF","0800",{"path":615,"stem":616,"title":617,"date":555,"chapterOrder":618,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-可视化平台RVIZ2与URDF建模语言","可視化平臺RVIZ2與URDF建模語言","0900",{"path":620,"stem":621,"title":622,"date":555,"chapterOrder":623,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-stage-ros2-fang-zhen-ping-tai","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-Stage_Ros2仿真平台","Stage_Ros2仿真平臺","1000",{"path":625,"stem":626,"title":627,"date":555,"chapterOrder":628,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic","1100-0100",{"path":630,"stem":631,"title":632,"date":555,"chapterOrder":633,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-ignitiongazebo","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","1100-0200",{"path":635,"stem":636,"title":637,"date":555,"chapterOrder":638,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-gazebosim","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-GazeboSim","Gz Sim（Gazebo Harmonic）","1100-0300",{"path":640,"stem":641,"title":642,"date":555,"chapterOrder":643,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-igngz2gzsim","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-Igngz2gzsim","將Ign Gazebo遷移至Gz Sim","1100-0400",{"path":645,"stem":646,"title":647,"date":555,"chapterOrder":648,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gezebo仿真平臺","1100",{"path":650,"stem":651,"title":652,"date":555,"chapterOrder":653,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-humble-ban-ben","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-Humble版本","Humble導航仿真","1200-0100",{"path":655,"stem":656,"title":657,"date":555,"chapterOrder":658,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-jazzy-ban-ben","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-Jazzy版本","Jazzy導航仿真","1200-0200",{"path":660,"stem":661,"title":662,"date":555,"chapterOrder":663,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","Humble與Jazzy導航的差異","1200-0300",{"path":665,"stem":666,"title":667,"date":555,"chapterOrder":668,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-机器人导航Navigation2(仿真篇)","機器人導航Navigation2(仿真篇)","1200",{"path":670,"stem":671,"title":672,"date":555,"chapterOrder":673,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-boost-aiso","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-Boost.Aiso","Boost.Asio庫","1300-0100-0100",{"path":675,"stem":676,"title":677,"date":555,"chapterOrder":678,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2-serial-driver","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2_serial_driver","ROS2 Serial Driver庫","1300-0100-0200",{"path":680,"stem":681,"title":682,"date":555,"chapterOrder":683,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-chuan-kou-tong-xin","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-串口通信","UART串口通信","1300-0100",{"path":685,"stem":686,"title":687,"date":555,"chapterOrder":688,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","SocketCAN","1300-0200-0100",{"path":690,"stem":691,"title":692,"date":555,"chapterOrder":693,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2-socketcan","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2_socketcan","ROS2_SocketCAN","1300-0200-0200",{"path":695,"stem":696,"title":697,"date":555,"chapterOrder":698,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-can-tong-xin","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-CAN通信","CAN通信","1300-0200",{"path":700,"stem":701,"title":672,"date":555,"chapterOrder":702,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-boost-aiso","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-Boost.Aiso","1300-0300-0100",{"path":704,"stem":705,"title":706,"date":555,"chapterOrder":707,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-tcp-tong-xin","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-TCP通信","TCP通信","1300-0300",{"path":709,"stem":710,"title":672,"date":555,"chapterOrder":711,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-boost-aiso","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-Boost.Aiso","1300-0400-0100",{"path":552,"stem":570,"title":5,"date":555,"chapterOrder":554,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},{"path":714,"stem":715,"title":716,"date":555,"chapterOrder":717,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux硬件通信","1300",{"path":719,"stem":720,"title":721,"date":555,"chapterOrder":722,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-ji-qi-ren-zu-cheng","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-机器人组成","機器人組成","1400-0100",{"path":724,"stem":725,"title":726,"date":555,"chapterOrder":727,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-yuan-cheng-kai-fa-ssh","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-远程开发SSH","遠程開發SSH","1400-0200-0100",{"path":729,"stem":730,"title":731,"date":555,"chapterOrder":732,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-yuan-cheng-fang-wen-zhuo-mian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-远程访问桌面","遠程訪問桌面","1400-0200-0200",{"path":734,"stem":735,"title":736,"date":555,"chapterOrder":737,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-工控机之远程开发环境","工控機之遠程開發環境","1400-0200",{"path":739,"stem":740,"title":741,"date":555,"chapterOrder":742,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-工控机之外接USB设备","工控機之外接USB設備","1400-0300",{"path":744,"stem":745,"title":746,"date":555,"chapterOrder":747,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-fen-bu-shi-da-jian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-分布式搭建","分佈式搭建","1400-0400",{"path":749,"stem":750,"title":751,"date":555,"chapterOrder":752,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","優化日誌","1400-0500",{"path":754,"stem":755,"title":756,"date":555,"chapterOrder":757,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-li-cheng-ji-odom","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-里程计Odom","里程計Odom","1400-0600-0100",{"path":759,"stem":760,"title":761,"date":555,"chapterOrder":762,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-guan-xing-ji-imu","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-惯性计IMU","慣性計IMU","1400-0600-0200",{"path":764,"stem":765,"title":766,"date":555,"chapterOrder":767,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-ji-guang-lei-da-lidar","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-激光雷达LiDAR","激光雷達LiDAR","1400-0600-0300",{"path":769,"stem":770,"title":771,"date":555,"chapterOrder":772,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-xiang-ji-camera","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-相机Camera","相機Camera","1400-0600-0400",{"path":774,"stem":775,"title":776,"date":555,"chapterOrder":777,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-quan-qiu-ding-wei-gnss","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-全球定位GNSS","全球定位GNSS","1400-0600-0500",{"path":779,"stem":780,"title":781,"date":555,"chapterOrder":782,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-shou-bing-joy","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-手柄joy","手柄JOY","1400-0600-0600",{"path":784,"stem":785,"title":786,"date":555,"chapterOrder":787,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-jian-pan-kong-zhi-jie-dian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-键盘控制节点","鍵盤控制節點","1400-0600-0700",{"path":789,"stem":790,"title":791,"date":555,"chapterOrder":792,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","硬件平臺","1400-0600",{"path":794,"stem":795,"title":796,"date":555,"chapterOrder":797,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-坐标系与话题关系","座標系與話題關係","1400-0700",{"path":799,"stem":800,"title":801,"date":555,"chapterOrder":802,"chapterDepth":545,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-lun-shi-li-cheng-ji-biao-ding","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-轮式里程计标定","輪式里程計標定","1400-0800-0100-0100",{"path":804,"stem":805,"title":806,"date":555,"chapterOrder":807,"chapterDepth":545,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-轮式里程计与IMU融合","輪式里程計與IMU融合","1400-0800-0100-0200",{"path":809,"stem":810,"title":811,"date":555,"chapterOrder":812,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-轮式里程计标定与融合","輪式里程計標定與融合","1400-0800-0100",{"path":814,"stem":815,"title":816,"date":555,"chapterOrder":817,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-ji-guang-lei-da-gong-ju","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-激光雷达工具","激光雷達工具","1400-0800-0200",{"path":819,"stem":820,"title":821,"date":555,"chapterOrder":822,"chapterDepth":540,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-xiang-ji-shi-yong-jin-jie","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-相机使用进阶","相機使用進階","1400-0800-0300",{"path":824,"stem":825,"title":826,"date":555,"chapterOrder":827,"chapterDepth":553,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-ying-jian-ping-tai-jin-jie","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-硬件平台进阶","硬件平臺進階","1400-0800",{"path":829,"stem":830,"title":831,"date":555,"chapterOrder":832,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","機器人硬件","1400",{"path":834,"stem":835,"title":836,"date":555,"chapterOrder":837,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control","1500",{"path":839,"stem":840,"title":841,"date":555,"chapterOrder":842,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-Moveit2工业机器人机械臂","Moveit2工業機器人機械臂","1600",{"path":844,"stem":845,"title":846,"date":555,"chapterOrder":847,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇)","機器人導航Navigation2(實體篇)","1700",{"path":849,"stem":850,"title":851,"date":555,"chapterOrder":852,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS","1800",{"path":854,"stem":855,"title":856,"date":555,"chapterOrder":857,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","Webots仿真平臺","1900",{"path":859,"stem":860,"title":861,"date":555,"chapterOrder":862,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV","OpenCV","2000",{"path":558,"stem":864,"title":865,"date":555,"chapterOrder":564,"chapterDepth":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":563},"_i18n\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2機器人操作系統教程",{"variants":867},[868,871,872,875,878],{"path":869,"localeSlug":870,"i18nKey":561},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","en-us",{"path":552,"localeSlug":566,"i18nKey":561},{"path":873,"localeSlug":874,"i18nKey":561},"\u002Fzh-hk\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","zh-hk",{"path":876,"localeSlug":877,"i18nKey":561},"\u002Fzh-tw\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","zh-tw",{"path":879,"localeSlug":880,"i18nKey":561},"\u002Fzh-cn\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","zh-cn",[869,569,552,569,873,569,876,569,879,569],1784646800073]