[{"data":1,"prerenderedAt":940},["ShallowReactive",2],{"wiki-page-/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin":3,"wiki-doc-items-/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin":572,"language-switcher-data-/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin":924,"wiki-i18n-paths-/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin":939},{"id":4,"title":5,"body":6,"canonicalPath":552,"chapter":553,"chapterSort":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":565,"locale":566,"localeSlug":567,"meta":568,"navigation":563,"path":552,"seo":569,"sourcePath":565,"sourceStem":561,"stem":561,"wikiDepth":570,"__hash__":571},"content/wiki/2023-12-30-ros2-tutorial/ch13-4-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],{},"支持同步/异步 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 / OpenCV / Qt / 普通 C++ 程序\n        ↓\n自己封装的 UdpSender / UdpReceiver 类\n        ↓\nboost::asio\n        ↓\nUDP socket\n        ↓\n雷达 / 网络设备 / 远程控制端\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 节点发布点云 / 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},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","13.4",13040000,"2023-12-30","wiki/2023-12-30-ros2-tutorial","zh-cn:2023-12-30-ros2-tutorial","/zh-cn/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki/2023-12-30-ros2-tutorial/ch13-4-UDP通信",false,true,null,"/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","zh-CN","zh-cn",{},{"title":5,"description":79},1,"loRUwx7YtMOG_NdufdkLqEoOgJu3kCiZ2hRSw0-6UPY",[573,579,585,591,597,603,609,615,621,627,633,639,645,651,657,663,669,675,680,686,691,692,698,704,710,716,722,728,734,740,746,752,758,764,770,776,782,788,794,800,806,812,818,824,830,836,842,848,854,860,866,872,878,884,890,896,902,908,914,920],{"path":574,"stem":575,"title":576,"date":555,"chapter":577,"chapterSort":578,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","ROS2介绍","1",1000000,{"path":580,"stem":581,"title":582,"date":555,"chapter":583,"chapterSort":584,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2仿真平台","10",10000000,{"path":586,"stem":587,"title":588,"date":555,"chapter":589,"chapterSort":590,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":592,"stem":593,"title":594,"date":555,"chapter":595,"chapterSort":596,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":598,"stem":599,"title":600,"date":555,"chapter":601,"chapterSort":602,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":604,"stem":605,"title":606,"date":555,"chapter":607,"chapterSort":608,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-4-igngz2gzsim","wiki/2023-12-30-ros2-tutorial/ch11-4-Igngz2gzsim","将Ign Gazebo迁移至Gz Sim","11.4",11040000,{"path":610,"stem":611,"title":612,"date":555,"chapter":613,"chapterSort":614,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gezebo仿真平台","11",11000000,{"path":616,"stem":617,"title":618,"date":555,"chapter":619,"chapterSort":620,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch12-1-humble-ban-ben","wiki/2023-12-30-ros2-tutorial/ch12-1-Humble版本","Humble导航仿真","12.1",12010000,{"path":622,"stem":623,"title":624,"date":555,"chapter":625,"chapterSort":626,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch12-2-jazzy-ban-ben","wiki/2023-12-30-ros2-tutorial/ch12-2-Jazzy版本","Jazzy导航仿真","12.2",12020000,{"path":628,"stem":629,"title":630,"date":555,"chapter":631,"chapterSort":632,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy","Humble与Jazzy导航的差异","12.3",12030000,{"path":634,"stem":635,"title":636,"date":555,"chapter":637,"chapterSort":638,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","wiki/2023-12-30-ros2-tutorial/ch12-机器人导航Navigation2(仿真篇)","机器人导航Navigation2(仿真篇)","12",12000000,{"path":640,"stem":641,"title":642,"date":555,"chapter":643,"chapterSort":644,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-1-1-boost-aiso","wiki/2023-12-30-ros2-tutorial/ch13-1-1-Boost.Aiso","Boost.Asio库","13.1.1",13010100,{"path":646,"stem":647,"title":648,"date":555,"chapter":649,"chapterSort":650,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2-serial-driver","wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2_serial_driver","ROS2 Serial Driver库","13.1.2",13010200,{"path":652,"stem":653,"title":654,"date":555,"chapter":655,"chapterSort":656,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-1-chuan-kou-tong-xin","wiki/2023-12-30-ros2-tutorial/ch13-1-串口通信","UART串口通信","13.1",13010000,{"path":658,"stem":659,"title":660,"date":555,"chapter":661,"chapterSort":662,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","SocketCAN","13.2.1",13020100,{"path":664,"stem":665,"title":666,"date":555,"chapter":667,"chapterSort":668,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2-socketcan","wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2_socketcan","ROS2_SocketCAN","13.2.2",13020200,{"path":670,"stem":671,"title":672,"date":555,"chapter":673,"chapterSort":674,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-2-can-tong-xin","wiki/2023-12-30-ros2-tutorial/ch13-2-CAN通信","CAN通信","13.2",13020000,{"path":676,"stem":677,"title":642,"date":555,"chapter":678,"chapterSort":679,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-3-1-boost-aiso","wiki/2023-12-30-ros2-tutorial/ch13-3-1-Boost.Aiso","13.3.1",13030100,{"path":681,"stem":682,"title":683,"date":555,"chapter":684,"chapterSort":685,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-3-tcp-tong-xin","wiki/2023-12-30-ros2-tutorial/ch13-3-TCP通信","TCP通信","13.3",13030000,{"path":687,"stem":688,"title":642,"date":555,"chapter":689,"chapterSort":690,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-4-1-boost-aiso","wiki/2023-12-30-ros2-tutorial/ch13-4-1-Boost.Aiso","13.4.1",13040100,{"path":552,"stem":561,"title":5,"date":555,"chapter":553,"chapterSort":554,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},{"path":693,"stem":694,"title":695,"date":555,"chapter":696,"chapterSort":697,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch13-linux-ying-jian-tong-xin","wiki/2023-12-30-ros2-tutorial/ch13-Linux硬件通信","Linux硬件通信","13",13000000,{"path":699,"stem":700,"title":701,"date":555,"chapter":702,"chapterSort":703,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-1-ji-qi-ren-zu-cheng","wiki/2023-12-30-ros2-tutorial/ch14-1-机器人组成","机器人组成","14.1",14010000,{"path":705,"stem":706,"title":707,"date":555,"chapter":708,"chapterSort":709,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-2-1-yuan-cheng-kai-fa-ssh","wiki/2023-12-30-ros2-tutorial/ch14-2-1-远程开发SSH","远程开发SSH","14.2.1",14020100,{"path":711,"stem":712,"title":713,"date":555,"chapter":714,"chapterSort":715,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-2-2-yuan-cheng-fang-wen-zhuo-mian","wiki/2023-12-30-ros2-tutorial/ch14-2-2-远程访问桌面","远程访问桌面","14.2.2",14020200,{"path":717,"stem":718,"title":719,"date":555,"chapter":720,"chapterSort":721,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-2-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","wiki/2023-12-30-ros2-tutorial/ch14-2-工控机之远程开发环境","工控机之远程开发环境","14.2",14020000,{"path":723,"stem":724,"title":725,"date":555,"chapter":726,"chapterSort":727,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-3-gong-kong-ji-zhi-wai-jie-usb-she-bei","wiki/2023-12-30-ros2-tutorial/ch14-3-工控机之外接USB设备","工控机之外接USB设备","14.3",14030000,{"path":729,"stem":730,"title":731,"date":555,"chapter":732,"chapterSort":733,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-4-fen-bu-shi-da-jian","wiki/2023-12-30-ros2-tutorial/ch14-4-分布式搭建","分布式搭建","14.4",14040000,{"path":735,"stem":736,"title":737,"date":555,"chapter":738,"chapterSort":739,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-5-you-hua-ri-zhi","wiki/2023-12-30-ros2-tutorial/ch14-5-优化日志","优化日志","14.5",14050000,{"path":741,"stem":742,"title":743,"date":555,"chapter":744,"chapterSort":745,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-1-li-cheng-ji-odom","wiki/2023-12-30-ros2-tutorial/ch14-6-1-里程计Odom","里程计Odom","14.6.1",14060100,{"path":747,"stem":748,"title":749,"date":555,"chapter":750,"chapterSort":751,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-2-guan-xing-ji-imu","wiki/2023-12-30-ros2-tutorial/ch14-6-2-惯性计IMU","惯性计IMU","14.6.2",14060200,{"path":753,"stem":754,"title":755,"date":555,"chapter":756,"chapterSort":757,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-3-ji-guang-lei-da-lidar","wiki/2023-12-30-ros2-tutorial/ch14-6-3-激光雷达LiDAR","激光雷达LiDAR","14.6.3",14060300,{"path":759,"stem":760,"title":761,"date":555,"chapter":762,"chapterSort":763,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-4-xiang-ji-camera","wiki/2023-12-30-ros2-tutorial/ch14-6-4-相机Camera","相机Camera","14.6.4",14060400,{"path":765,"stem":766,"title":767,"date":555,"chapter":768,"chapterSort":769,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-5-quan-qiu-ding-wei-gnss","wiki/2023-12-30-ros2-tutorial/ch14-6-5-全球定位GNSS","全球定位GNSS","14.6.5",14060500,{"path":771,"stem":772,"title":773,"date":555,"chapter":774,"chapterSort":775,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-6-shou-bing-joy","wiki/2023-12-30-ros2-tutorial/ch14-6-6-手柄joy","手柄JOY","14.6.6",14060600,{"path":777,"stem":778,"title":779,"date":555,"chapter":780,"chapterSort":781,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-7-jian-pan-kong-zhi-jie-dian","wiki/2023-12-30-ros2-tutorial/ch14-6-7-键盘控制节点","键盘控制节点","14.6.7",14060700,{"path":783,"stem":784,"title":785,"date":555,"chapter":786,"chapterSort":787,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-6-ying-jian-ping-tai","wiki/2023-12-30-ros2-tutorial/ch14-6-硬件平台","硬件平台","14.6",14060000,{"path":789,"stem":790,"title":791,"date":555,"chapter":792,"chapterSort":793,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-7-zuo-biao-xi-yu-hua-ti-guan-xi","wiki/2023-12-30-ros2-tutorial/ch14-7-坐标系与话题关系","坐标系与话题关系","14.7",14070000,{"path":795,"stem":796,"title":797,"date":555,"chapter":798,"chapterSort":799,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定","轮式里程计标定","14.8.1.1",14080101,{"path":801,"stem":802,"title":803,"date":555,"chapter":804,"chapterSort":805,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-lun-shi-li-cheng-ji-yu-imu-rong-he","wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-轮式里程计与IMU融合","轮式里程计与IMU融合","14.8.1.2",14080102,{"path":807,"stem":808,"title":809,"date":555,"chapter":810,"chapterSort":811,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-1-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","wiki/2023-12-30-ros2-tutorial/ch14-8-1-轮式里程计标定与融合","轮式里程计标定与融合","14.8.1",14080100,{"path":813,"stem":814,"title":815,"date":555,"chapter":816,"chapterSort":817,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-2-ji-guang-lei-da-gong-ju","wiki/2023-12-30-ros2-tutorial/ch14-8-2-激光雷达工具","激光雷达工具","14.8.2",14080200,{"path":819,"stem":820,"title":821,"date":555,"chapter":822,"chapterSort":823,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-3-xiang-ji-shi-yong-jin-jie","wiki/2023-12-30-ros2-tutorial/ch14-8-3-相机使用进阶","相机使用进阶","14.8.3",14080300,{"path":825,"stem":826,"title":827,"date":555,"chapter":828,"chapterSort":829,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-ying-jian-ping-tai-jin-jie","wiki/2023-12-30-ros2-tutorial/ch14-8-硬件平台进阶","硬件平台进阶","14.8",14080000,{"path":831,"stem":832,"title":833,"date":555,"chapter":834,"chapterSort":835,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","机器人硬件","14",14000000,{"path":837,"stem":838,"title":839,"date":555,"chapter":840,"chapterSort":841,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":843,"stem":844,"title":845,"date":555,"chapter":846,"chapterSort":847,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂","Moveit2工业机器人机械臂","16",16000000,{"path":849,"stem":850,"title":851,"date":555,"chapter":852,"chapterSort":853,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","wiki/2023-12-30-ros2-tutorial/ch17-机器人导航Navigation2(实体篇)","机器人导航Navigation2(实体篇)","17",17000000,{"path":855,"stem":856,"title":857,"date":555,"chapter":858,"chapterSort":859,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch18-microros","wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":861,"stem":862,"title":863,"date":555,"chapter":864,"chapterSort":865,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots仿真平台","19",19000000,{"path":867,"stem":868,"title":869,"date":555,"chapter":870,"chapterSort":871,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","wiki/2023-12-30-ros2-tutorial/ch2-入门操作","入门操作","2",2000000,{"path":873,"stem":874,"title":875,"date":555,"chapter":876,"chapterSort":877,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch20-opencv","wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","OpenCV","20",20000000,{"path":879,"stem":880,"title":881,"date":555,"chapter":882,"chapterSort":883,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch3-gong-zuo-kong-jian-yu-gong-neng-bao","wiki/2023-12-30-ros2-tutorial/ch3-工作空间与功能包","工作空间与功能包","3",3000000,{"path":885,"stem":886,"title":887,"date":555,"chapter":888,"chapterSort":889,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","wiki/2023-12-30-ros2-tutorial/ch4-四大通信","四大通信","4",4000000,{"path":891,"stem":892,"title":893,"date":555,"chapter":894,"chapterSort":895,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi","wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","ROS2其他通信机制","5",5000000,{"path":897,"stem":898,"title":899,"date":555,"chapter":900,"chapterSort":901,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch6-launch","wiki/2023-12-30-ros2-tutorial/ch6-Launch","Launch","6",6000000,{"path":903,"stem":904,"title":905,"date":555,"chapter":906,"chapterSort":907,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","回溯rosbag2","7",7000000,{"path":909,"stem":910,"title":911,"date":555,"chapter":912,"chapterSort":913,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","坐标变换TF","8",8000000,{"path":915,"stem":916,"title":917,"date":555,"chapter":918,"chapterSort":919,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":562},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","wiki/2023-12-30-ros2-tutorial/ch9-可视化平台RVIZ2与URDF建模语言","可视化平台RVIZ2与URDF建模语言","9",9000000,{"path":558,"stem":921,"title":922,"date":555,"chapter":564,"chapterSort":923,"docKey":557,"docRoot":558,"docTitle":559,"isWikiDoc":563,"isWikiIndex":563},"wiki/2023-12-30-ros2-tutorial/index","ROS2机器人操作系统教程",0,{"variants":925},[926,929,932,935,938],{"path":927,"localeSlug":928,"i18nKey":561},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","en-us",{"path":930,"localeSlug":931,"i18nKey":561},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","zh-hant",{"path":933,"localeSlug":934,"i18nKey":561},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","zh-hk",{"path":936,"localeSlug":937,"i18nKey":561},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","zh-tw",{"path":552,"localeSlug":567,"i18nKey":561},[927,565,930,565,933,565,936,565,552,565],1780663048462]