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