[{"data":1,"prerenderedAt":4818},["ShallowReactive",2],{"wiki-page-/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi":3,"wiki-doc-items-/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi":4676},{"id":4,"title":5,"body":6,"chapter":4662,"chapterSort":4663,"date":4664,"description":19,"docKey":4665,"docRoot":4666,"docTitle":4667,"extension":4668,"isWikiDoc":263,"isWikiIndex":4669,"layout":4670,"meta":4671,"navigation":263,"path":4672,"seo":4673,"stem":4674,"wikiDepth":126,"__hash__":4675},"content/wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制.md","ROS2其他通信机制",{"type":7,"value":8,"toc":4652},"minimark",[9,13,21,26,29,34,37,39,44,49,54,57,62,67,72,75,81,84,89,92,95,100,103,105,110,113,142,145,148,168,171,176,179,184,189,192,197,200,213,218,221,238,241,430,433,436,439,442,445,448,451,454,459,462,465,468,473,476,481,484,487,492,497,502,507,512,517,520,522,527,532,537,540,545,550,553,558,560,565,568,571,574,579,582,587,590,593,596,601,606,611,613,616,621,624,629,632,637,640,645,650,655,658,661,666,671,674,679,688,693,696,701,704,709,714,719,722,725,730,732,737,742,770,773,778,783,805,808,811,814,819,821,826,831,861,864,869,874,879,900,905,910,913,918,921,926,931,1029,1032,1035,1038,1043,1060,1065,1070,1072,1080,1083,1086,1091,1150,1155,1171,1173,1178,1181,1186,1237,1242,1258,1260,1265,1270,1275,1277,1280,1285,1427,1432,1540,1545,1656,1661,1663,1668,1673,1678,1683,1686,1691,1938,1943,1948,1953,1958,1961,1966,1971,1976,1978,1983,1988,2008,2010,2013,2018,2023,2028,2033,2038,2055,2058,2061,2066,2071,2074,2079,2082,2087,2090,2093,2096,2099,2104,2109,2111,2116,2119,2122,2127,2132,2137,2142,2147,2152,2157,2162,2165,2272,2277,2282,2285,2488,2493,2498,2500,2505,2510,2513,2518,2521,2524,2527,2532,2537,2542,2547,2825,2830,2835,2840,2843,2848,2853,2856,2861,2866,2869,2873,2878,2881,2884,2887,2890,2895,2897,2902,2907,2912,2917,2920,2925,2930,2935,3306,3308,3313,3318,3323,3328,3331,3336,3339,3344,3347,3352,3355,3358,3361,3364,3369,3374,3379,3384,3993,3995,4000,4005,4010,4013,4016,4021,4026,4031,4033,4038,4043,4048,4051,4054,4059,4064,4069,4074,4079,4084,4087,4091,4096,4101,4103,4108,4111,4116,4121,4124,4129,4134,4139,4144,4149,4152,4154,4159,4164,4167,4172,4177,4180,4182,4187,4192,4195,4200,4205,4210,4215,4220,4223,4228,4233,4236,4241,4244,4249,4252,4257,4262,4267,4272,4274,4279,4284,4287,4290,4293,4296,4301,4304,4309,4314,4317,4322,4325,4330,4335,4337,4342,4350,4355,4358,4366,4368,4373,4378,4383,4388,4393,4396,4401,4404,4407,4412,4415,4420,4425,4428,4433,4438,4441,4446,4451,4456,4461,4466,4469,4474,4479,4484,4487,4492,4496,4501,4506,4511,4516,4521,4526,4531,4533,4538,4543,4546,4548,4553,4558,4561,4566,4569,4574,4577,4582,4585,4590,4595,4597,4602,4607,4610,4615,4618,4623,4628,4630,4635,4638,4643,4645,4648],[10,11,12],"h3",{"id":12},"概述",[14,15,16],"p",{},[17,18],"img",{"alt":19,"src":20},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image846.webp",[14,22,23],{},[17,24],{"alt":19,"src":25},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image847.webp",[27,28],"hr",{},[14,30,31],{},[17,32],{"alt":19,"src":33},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image848.webp",[14,35,36],{},"不同设备之间的通信，是通过分布式来实现的。",[27,38],{},[14,40,41],{},[17,42],{"alt":19,"src":43},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image849.webp",[14,45,46],{},[17,47],{"alt":19,"src":48},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image850.webp",[14,50,51],{},[17,52],{"alt":19,"src":53},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image851.webp",[14,55,56],{},"镜像王八",[14,58,59],{},[17,60],{"alt":19,"src":61},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image852.webp",[14,63,64],{},[17,65],{"alt":19,"src":66},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image853.webp",[14,68,69],{},[17,70],{"alt":19,"src":71},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image854.webp",[10,73,74],{"id":74},"分布式搭建",[14,76,77],{},[78,79,80],"strong",{},"场景",[14,82,83],{},"在许多机器人相关的应用场景中都涉及到多台ROS2设备协作，比如：无人车编队、无人机编队、远程控制等等，那么不同的ROS2设备之间是如何实现通信的呢？",[14,85,86],{},[78,87,88],{},"概念",[14,90,91],{},"分布式通信是指可以通过网络在不同主机之间实现数据交互的一种通信策略。",[14,93,94],{},"ROS2本身是一个分布式通信框架，可以很方便的实现不同设备之间的通信，ROS2所基于的中间件是DDS，当处于同一网络中时，通过DDS的域ID机制(ROS_DOMAIN_ID)可以实现分布式通信，大致流程是：在启动节点之前，可以设置域ID的值，不同节点如果域ID相同，那么可以自由发现并通信，反之，如果域ID值不同，则不能实现。默认情况下，所有节点启动时所使用的域ID为0，换言之，只要保证在同一网络，你不需要做任何配置，不同ROS2设备上的不同节点即可实现分布式通信。",[14,96,97],{},[78,98,99],{},"作用",[14,101,102],{},"分布式通信的应用场景是较为广泛的，如上所述：机器人编队时，机器人可能需要获取周边机器人的速度、位置、运行轨迹的相关信息，远程控制时，则可能需要控制端获取机器人采集的环境信息并下发控制指令...... 这些数据的交互都依赖于分布式通信。",[27,104],{},[14,106,107],{},[78,108,109],{},"实现",[14,111,112],{},"多机通信时，可以通过域ID对节点进行分组，组内的节点之间可以自由通信，不同组之间的节点则不可通信。如果所有节点都属于同一组，那么直接使用默认域ID即可，如果要将不同节点划分为多个组，那么可以在终端中启动节点前设置该节点的域ID(比如设置为6)，具体执行命令为：",[114,115,119],"pre",{"className":116,"code":117,"language":118,"meta":19,"style":19},"language-bash shiki shiki-themes github-light github-dark","export ROS_DOMAIN_ID=6\n","bash",[120,121,122],"code",{"__ignoreMap":19},[123,124,127,131,135,138],"span",{"class":125,"line":126},"line",1,[123,128,130],{"class":129},"szBVR","export",[123,132,134],{"class":133},"sVt8B"," ROS_DOMAIN_ID",[123,136,137],{"class":129},"=",[123,139,141],{"class":140},"sj4cs","6\n",[14,143,144],{},"上述指令执行后，该节点将被划分到ID为6的域内。",[14,146,147],{},"如果要为当前设备下的所有节点设置统一的域ID，那么可以执行如下指令：",[114,149,151],{"className":116,"code":150,"language":118,"meta":19,"style":19},"echo \"export ROS_DOMAIN_ID=6\" >> ~/.bashrc\n",[120,152,153],{"__ignoreMap":19},[123,154,155,158,162,165],{"class":125,"line":126},[123,156,157],{"class":140},"echo",[123,159,161],{"class":160},"sZZnC"," \"export ROS_DOMAIN_ID=6\"",[123,163,164],{"class":129}," >>",[123,166,167],{"class":160}," ~/.bashrc\n",[14,169,170],{},"执行完毕后再重新启动终端，运行的所有节点将自动被划分到ID为6的域内。",[14,172,173],{},[17,174],{"alt":19,"src":175},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image855.webp",[14,177,178],{},"默认域ID是0，域ID不一样，无法互相通信。",[14,180,181],{},[17,182],{"alt":19,"src":183},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image856.webp",[14,185,186],{},[17,187],{"alt":19,"src":188},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image857.webp",[14,190,191],{},"ID不一样就无法正常通信，和在ROS1内需要指定ROS Master一样。",[14,193,194],{},[78,195,196],{},"注意",[14,198,199],{},"在设置ROS_DOMAIN_ID的值时并不是随意的，也是有一定约束的：",[201,202,203,207,210],"ol",{},[204,205,206],"li",{},"建议ROS_DOMAIN_ID的取值在[0,101] 之间，包含0和101；",[204,208,209],{},"每个域ID内的节点总数是有限制的，需要小于等于120个；",[204,211,212],{},"如果域ID为101，那么该域的节点总数需要小于等于54个。",[14,214,215],{},[78,216,217],{},"DDS 域 ID 值的计算规则",[14,219,220],{},"域ID值的相关计算规则如下：",[201,222,223,226,229,232,235],{},[204,224,225],{},"DDS是基于TCP/IP或UDP/IP网络通信协议的，网络通信时需要指定端口号，端口号由2个字节的无符号整数表示，其取值范围在[0,65535]之间；",[204,227,228],{},"端口号的分配也是有其规则的，并非可以任意使用的，根据DDS协议规定以7400作为起始端口，也即可用端口为[7400,65535]，又已知按照DDS协议默认情况下，每个域ID占用250个端口，那么域ID的个数为：(65535-7400)/250 = 232(个)，对应的其取值范围为[0,231]；",[204,230,231],{},"操作系统还会设置一些预留端口，在DDS中使用端口时，还需要避开这些预留端口，以免使用中产生冲突，不同的操作系统预留端口又有所差异，其最终结果是，在Linux下，可用的域ID为[0,101]与[215-231]，在Windows和Mac中可用的域ID为[0,166]，综上，为了兼容多平台，建议域ID在[0,101] 范围内取值。",[204,233,234],{},"每个域ID默认占用250个端口，且每个ROS2节点需要占用两个端口，另外，按照DDS协议每个域ID的端口段内，第1、2个端口是Discovery Multicast端口与User Multicast端口，从第11、12个端口开始是域内第一个节点的Discovery Unicast端口与User Unicast，后续节点所占用端口依次顺延，那么一个域ID中的最大节点个数为：(250-10)/2 = 120(个)；",[204,236,237],{},"特殊情况：域ID值为101时，其后半段端口属于操作系统的预留端口，其节点最大个数为54个。",[14,239,240],{},"上述计算规则了解即可。",[114,242,244],{"className":116,"code":243,"language":118,"meta":19,"style":19},"域 ID 与节点所占用端口示意\n\nDomain ID:      0\nParticipant ID: 0\n\nDiscovery Multicast Port: 7400\nUser Multicast Port:      7401\nDiscovery Unicast Port:   7410\nUser Unicast Port:        7411\n\n---\n\nDomain ID:      1\nParticipant ID: 2\nDiscovery Multicast Port: 7650\nUser Multicast Port:      7651\nDiscovery Unicast Port:   7664\nUser Unicast Port:        7665\n",[120,245,246,258,265,277,288,293,308,321,334,346,351,357,362,372,382,394,406,418],{"__ignoreMap":19},[123,247,248,252,255],{"class":125,"line":126},[123,249,251],{"class":250},"sScJk","域",[123,253,254],{"class":160}," ID",[123,256,257],{"class":160}," 与节点所占用端口示意\n",[123,259,261],{"class":125,"line":260},2,[123,262,264],{"emptyLinePlaceholder":263},true,"\n",[123,266,268,271,274],{"class":125,"line":267},3,[123,269,270],{"class":250},"Domain",[123,272,273],{"class":160}," ID:",[123,275,276],{"class":140},"      0\n",[123,278,280,283,285],{"class":125,"line":279},4,[123,281,282],{"class":250},"Participant",[123,284,273],{"class":160},[123,286,287],{"class":140}," 0\n",[123,289,291],{"class":125,"line":290},5,[123,292,264],{"emptyLinePlaceholder":263},[123,294,296,299,302,305],{"class":125,"line":295},6,[123,297,298],{"class":250},"Discovery",[123,300,301],{"class":160}," Multicast",[123,303,304],{"class":160}," Port:",[123,306,307],{"class":140}," 7400\n",[123,309,311,314,316,318],{"class":125,"line":310},7,[123,312,313],{"class":250},"User",[123,315,301],{"class":160},[123,317,304],{"class":160},[123,319,320],{"class":140},"      7401\n",[123,322,324,326,329,331],{"class":125,"line":323},8,[123,325,298],{"class":250},[123,327,328],{"class":160}," Unicast",[123,330,304],{"class":160},[123,332,333],{"class":140},"   7410\n",[123,335,337,339,341,343],{"class":125,"line":336},9,[123,338,313],{"class":250},[123,340,328],{"class":160},[123,342,304],{"class":160},[123,344,345],{"class":140},"        7411\n",[123,347,349],{"class":125,"line":348},10,[123,350,264],{"emptyLinePlaceholder":263},[123,352,354],{"class":125,"line":353},11,[123,355,356],{"class":250},"---\n",[123,358,360],{"class":125,"line":359},12,[123,361,264],{"emptyLinePlaceholder":263},[123,363,365,367,369],{"class":125,"line":364},13,[123,366,270],{"class":250},[123,368,273],{"class":160},[123,370,371],{"class":140},"      1\n",[123,373,375,377,379],{"class":125,"line":374},14,[123,376,282],{"class":250},[123,378,273],{"class":160},[123,380,381],{"class":140}," 2\n",[123,383,385,387,389,391],{"class":125,"line":384},15,[123,386,298],{"class":250},[123,388,301],{"class":160},[123,390,304],{"class":160},[123,392,393],{"class":140}," 7650\n",[123,395,397,399,401,403],{"class":125,"line":396},16,[123,398,313],{"class":250},[123,400,301],{"class":160},[123,402,304],{"class":160},[123,404,405],{"class":140},"      7651\n",[123,407,409,411,413,415],{"class":125,"line":408},17,[123,410,298],{"class":250},[123,412,328],{"class":160},[123,414,304],{"class":160},[123,416,417],{"class":140},"   7664\n",[123,419,421,423,425,427],{"class":125,"line":420},18,[123,422,313],{"class":250},[123,424,328],{"class":160},[123,426,304],{"class":160},[123,428,429],{"class":140},"        7665\n",[14,431,432],{},"Domain ID是指域ID",[14,434,435],{},"Participant ID是参与组ID，是指该域内的第几个节点",[14,437,438],{},"Discovery Multicast Port主发现端口，DDS规定，端口应从7400开始",[14,440,441],{},"User Multicast Port用户广播端口，",[14,443,444],{},"Discovery Unicast Port单播发现端口，7410是第一个节点开始使用的Discovery Unicast端口，因为DDS规定的，第11个端口才是第一个节点的Discovery Unicast端口。",[14,446,447],{},"User Unicast Port单播用户端口，7411才是第一个节点开始使用的User Unicast端口，因为DDS规定的，第12个端口才是第一个节点的User Unicast端口。",[14,449,450],{},"Discovery Unicast Port和User Unicast Port是第一个节点所占用的端口，所以一共占用了俩端口。",[14,452,453],{},"如果Domain ID不变还为0，Participant ID变成1的话，那么下一个节点的Discovery Unicast Port为7412，User Unicast Port为7413。",[14,455,456],{},[17,457],{"alt":19,"src":458},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image858.webp",[14,460,461],{},"以此类推。",[14,463,464],{},"一个Domain ID占用250个端口，所以当Domain ID为1的时候，Discovery Unicast Port应该是7650。",[14,466,467],{},"这是第三个节点，所以是7664和7665。",[14,469,470],{},[17,471],{"alt":19,"src":472},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image859.webp",[14,474,475],{},"实践：在树莓派5上跑一个ROS2 Jazzy开启键盘控制节点，然后在电脑实体机Linux(或者在Docker里跑也行，但要设置好网络)里跑一个ROS2 Humble，并打开乌龟显示节点。",[14,477,478],{},[17,479],{"alt":19,"src":480},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image860.webp",[14,482,483],{},"会发现是可以正常通信的。",[10,485,486],{"id":486},"工作空间覆盖",[14,488,489],{},[17,490],{"alt":19,"src":491},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image861.webp",[14,493,494],{},[17,495],{"alt":19,"src":496},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image862.webp",[14,498,499],{},[78,500,501],{},"没什么用，建议不要使用",[14,503,504],{},[17,505],{"alt":19,"src":506},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image863.webp",[14,508,509],{},[17,510],{"alt":19,"src":511},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image864.webp",[14,513,514],{},[17,515],{"alt":19,"src":516},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image865.webp",[14,518,519],{},"这个是和你的bashrc文件里，加载bash文件的顺序有关，谁最后加载，谁就会运行，也就是最高优先级。除了ROS2本身自带的bash，这个bash是不论在哪加载，都是最低优先级。",[27,521],{},[14,523,524],{},[17,525],{"alt":19,"src":526},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image866.webp",[14,528,529],{},[17,530],{"alt":19,"src":531},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image867.webp",[14,533,534],{},[17,535],{"alt":19,"src":536},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image868.webp",[10,538,539],{"id":539},"元功能包",[14,541,542],{},[17,543],{"alt":19,"src":544},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image869.webp",[14,546,547],{},[17,548],{"alt":19,"src":549},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image870.webp",[14,551,552],{},"distro就是发行版的意思",[14,554,555],{},[17,556],{"alt":19,"src":557},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image871.webp",[27,559],{},[14,561,562],{},[17,563],{"alt":19,"src":564},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image872.webp",[14,566,567],{},"--build-type默认C++，",[14,569,570],{},"--dependent默认无，",[14,572,573],{},"--node-name本身是虚包，所以也无需设置。",[14,575,576],{},[17,577],{"alt":19,"src":578},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image873.webp",[14,580,581],{},"CmakeLists无需修改",[14,583,584],{},[17,585],{"alt":19,"src":586},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image874.webp",[14,588,589],{},"先把12，13行删除",[14,591,592],{},"\u003Cexec_depend>xxxxxx\u003C/exec_depend>",[14,594,595],{},"所要依赖的功能包名",[14,597,598],{},[17,599],{"alt":19,"src":600},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image875.webp",[14,602,603],{},[17,604],{"alt":19,"src":605},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image876.webp",[14,607,608],{},[17,609],{"alt":19,"src":610},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image877.webp",[27,612],{},[14,614,615],{},"以后可能需要的元功能包：",[14,617,618],{},[17,619],{"alt":19,"src":620},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image878.webp",[14,622,623],{},"这个功能包是导航相关的",[14,625,626],{},[17,627],{"alt":19,"src":628},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image879.webp",[14,630,631],{},"这个就是个元功能包",[14,633,634],{},[17,635],{"alt":19,"src":636},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image880.webp",[14,638,639],{},"只有配置文件，没有其他实质性实现",[14,641,642],{},[17,643],{"alt":19,"src":644},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image881.webp",[14,646,647],{},[17,648],{"alt":19,"src":649},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image882.webp",[14,651,652],{},[17,653],{"alt":19,"src":654},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image883.webp",[14,656,657],{},"元功能包的作用就是方便安装，把自己的东西打包，可以共享到ROS2社区。也方便安装别人的东西。",[10,659,660],{"id":660},"节点重名",[14,662,663],{},[17,664],{"alt":19,"src":665},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image884.webp",[14,667,668],{},[17,669],{"alt":19,"src":670},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image885.webp",[14,672,673],{},"而且节点名称都是一致的，图中有个\u003C2>，这是操作系统给的标号，其他的操作系统是没有这个标号的。",[14,675,676],{},[17,677],{"alt":19,"src":678},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image886.webp",[114,680,682],{"className":116,"code":681,"language":118,"meta":19,"style":19},"rqt_graph\n",[120,683,684],{"__ignoreMap":19},[123,685,686],{"class":125,"line":126},[123,687,681],{"class":250},[14,689,690],{},[17,691],{"alt":19,"src":692},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image887.webp",[14,694,695],{},"他只显示一个turtlesim，实际上我们是使用了两个turtlesim的。",[14,697,698],{},[17,699],{"alt":19,"src":700},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image888.webp",[14,702,703],{},"这样虽然都显示了，但是是一模一样的名字，容易混淆，而且上面也给重名警告了。",[14,705,706],{},[17,707],{"alt":19,"src":708},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image889.webp",[14,710,711],{},[17,712],{"alt":19,"src":713},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image890.webp",[14,715,716],{},[17,717],{"alt":19,"src":718},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image891.webp",[14,720,721],{},"要么起别名：王大宝，王小宝",[14,723,724],{},"要么加命名空间： 毛驴子家的王宝，李二狗家的王宝",[14,726,727],{},[17,728],{"alt":19,"src":729},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image892.webp",[27,731],{},[14,733,734],{},[17,735],{"alt":19,"src":736},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image893.webp",[14,738,739],{},[17,740],{"alt":19,"src":741},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image894.webp",[114,743,745],{"className":116,"code":744,"language":118,"meta":19,"style":19},"ros2 run turtlesim turtlesim_node --ros-args --remap __ns:=/t1\n",[120,746,747],{"__ignoreMap":19},[123,748,749,752,755,758,761,764,767],{"class":125,"line":126},[123,750,751],{"class":250},"ros2",[123,753,754],{"class":160}," run",[123,756,757],{"class":160}," turtlesim",[123,759,760],{"class":160}," turtlesim_node",[123,762,763],{"class":140}," --ros-args",[123,765,766],{"class":140}," --remap",[123,768,769],{"class":160}," __ns:=/t1\n",[14,771,772],{},"ros2 run 功能包名 节点名 --ros-args --remap __ns:=/命名空间",[14,774,775],{},[17,776],{"alt":19,"src":777},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image895.webp",[14,779,780],{},[17,781],{"alt":19,"src":782},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image896.webp",[114,784,786],{"className":116,"code":785,"language":118,"meta":19,"style":19},"ros2 run turtlesim turtlesim_node --ros-args --remap __name:=turtlesim2\n",[120,787,788],{"__ignoreMap":19},[123,789,790,792,794,796,798,800,802],{"class":125,"line":126},[123,791,751],{"class":250},[123,793,754],{"class":160},[123,795,757],{"class":160},[123,797,760],{"class":160},[123,799,763],{"class":140},[123,801,766],{"class":140},[123,803,804],{"class":160}," __name:=turtlesim2\n",[14,806,807],{},"ros2 run 功能包名 节点名 --ros-args --remap __name:=别名",[14,809,810],{},"or",[14,812,813],{},"ros2 run 功能包名 节点名 --ros-args --remap __node:=别名",[14,815,816],{},[17,817],{"alt":19,"src":818},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image897.webp",[27,820],{},[14,822,823],{},[17,824],{"alt":19,"src":825},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image898.webp",[14,827,828],{},[17,829],{"alt":19,"src":830},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image899.webp",[114,832,834],{"className":116,"code":833,"language":118,"meta":19,"style":19},"ros2 pkg create cpp05_names --build-type ament_cmake --node-name demo01_names\n",[120,835,836],{"__ignoreMap":19},[123,837,838,840,843,846,849,852,855,858],{"class":125,"line":126},[123,839,751],{"class":250},[123,841,842],{"class":160}," pkg",[123,844,845],{"class":160}," create",[123,847,848],{"class":160}," cpp05_names",[123,850,851],{"class":140}," --build-type",[123,853,854],{"class":160}," ament_cmake",[123,856,857],{"class":140}," --node-name",[123,859,860],{"class":160}," demo01_names\n",[14,862,863],{},"节点名可以不设置，这里设置主要是为以后学习做铺垫。",[14,865,866],{},[17,867],{"alt":19,"src":868},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image900.webp",[14,870,871],{},[17,872],{"alt":19,"src":873},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image901.webp",[14,875,876],{},[17,877],{"alt":19,"src":878},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image902.webp",[114,880,884],{"className":881,"code":882,"language":883,"meta":19,"style":19},"language-cmake shiki shiki-themes github-light github-dark","install(DIRECTORY launch DESTINATION share/${PROJECT_NAME})\n","cmake",[120,885,886],{"__ignoreMap":19},[123,887,888,891,894,897],{"class":125,"line":126},[123,889,890],{"class":129},"install",[123,892,893],{"class":133},"(DIRECTORY launch DESTINATION share/",[123,895,896],{"class":129},"${PROJECT_NAME}",[123,898,899],{"class":133},")\n",[14,901,902],{},[17,903],{"alt":19,"src":904},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image903.webp",[14,906,907],{},[17,908],{"alt":19,"src":909},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image904.webp",[14,911,912],{},"先导俩包",[14,914,915],{},[17,916],{"alt":19,"src":917},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image905.webp",[14,919,920],{},"这个LaunchDescription对象里面呢是个列表，这个列表就是存储要启动的若干个节点。",[14,922,923],{},[17,924],{"alt":19,"src":925},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image906.webp",[14,927,928],{},[17,929],{"alt":19,"src":930},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image907.webp",[114,932,936],{"className":933,"code":934,"language":935,"meta":19,"style":19},"language-python shiki shiki-themes github-light github-dark","from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n    return LaunchDescription([\n        Node(package=\"turtlesim\",executable=\"turtlesim_node\",name=\"t1\")\n    ])\n","python",[120,937,938,952,964,968,979,987,1024],{"__ignoreMap":19},[123,939,940,943,946,949],{"class":125,"line":126},[123,941,942],{"class":129},"from",[123,944,945],{"class":133}," launch ",[123,947,948],{"class":129},"import",[123,950,951],{"class":133}," LaunchDescription\n",[123,953,954,956,959,961],{"class":125,"line":260},[123,955,942],{"class":129},[123,957,958],{"class":133}," launch_ros.actions ",[123,960,948],{"class":129},[123,962,963],{"class":133}," Node\n",[123,965,966],{"class":125,"line":267},[123,967,264],{"emptyLinePlaceholder":263},[123,969,970,973,976],{"class":125,"line":279},[123,971,972],{"class":129},"def",[123,974,975],{"class":250}," generate_launch_description",[123,977,978],{"class":133},"():\n",[123,980,981,984],{"class":125,"line":290},[123,982,983],{"class":129},"    return",[123,985,986],{"class":133}," LaunchDescription([\n",[123,988,989,992,996,998,1001,1004,1007,1009,1012,1014,1017,1019,1022],{"class":125,"line":295},[123,990,991],{"class":133},"        Node(",[123,993,995],{"class":994},"s4XuR","package",[123,997,137],{"class":129},[123,999,1000],{"class":160},"\"turtlesim\"",[123,1002,1003],{"class":133},",",[123,1005,1006],{"class":994},"executable",[123,1008,137],{"class":129},[123,1010,1011],{"class":160},"\"turtlesim_node\"",[123,1013,1003],{"class":133},[123,1015,1016],{"class":994},"name",[123,1018,137],{"class":129},[123,1020,1021],{"class":160},"\"t1\"",[123,1023,899],{"class":133},[123,1025,1026],{"class":125,"line":310},[123,1027,1028],{"class":133},"    ])\n",[14,1030,1031],{},"package功能包名",[14,1033,1034],{},"executable节点名",[14,1036,1037],{},"name别名",[14,1039,1040],{},[17,1041],{"alt":19,"src":1042},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image908.webp",[114,1044,1046],{"className":116,"code":1045,"language":118,"meta":19,"style":19},"ros2 launch cpp05_names demo01_names_launch.py\n",[120,1047,1048],{"__ignoreMap":19},[123,1049,1050,1052,1055,1057],{"class":125,"line":126},[123,1051,751],{"class":250},[123,1053,1054],{"class":160}," launch",[123,1056,848],{"class":160},[123,1058,1059],{"class":160}," demo01_names_launch.py\n",[14,1061,1062],{},[17,1063],{"alt":19,"src":1064},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image909.webp",[14,1066,1067],{},[17,1068],{"alt":19,"src":1069},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image910.webp",[27,1071],{},[14,1073,1074,1077],{},[17,1075],{"alt":19,"src":1076},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image911.webp",[17,1078],{"alt":19,"src":1079},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image912.webp",[14,1081,1082],{},"根标签是Launch",[14,1084,1085],{},"子集标签是node",[14,1087,1088],{},[17,1089],{"alt":19,"src":1090},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image913.webp",[114,1092,1096],{"className":1093,"code":1094,"language":1095,"meta":19,"style":19},"language-xml shiki shiki-themes github-light github-dark","\u003Claunch>\n    \u003Cnode pkg=\"turtlesim\" exec=\"turtlesim_node\" name=\"t1\" />\n\u003C/launch>\n","xml",[120,1097,1098,1110,1141],{"__ignoreMap":19},[123,1099,1100,1103,1107],{"class":125,"line":126},[123,1101,1102],{"class":133},"\u003C",[123,1104,1106],{"class":1105},"s9eBZ","launch",[123,1108,1109],{"class":133},">\n",[123,1111,1112,1115,1118,1120,1122,1124,1127,1129,1131,1134,1136,1138],{"class":125,"line":260},[123,1113,1114],{"class":133},"    \u003C",[123,1116,1117],{"class":1105},"node",[123,1119,842],{"class":250},[123,1121,137],{"class":133},[123,1123,1000],{"class":160},[123,1125,1126],{"class":250}," exec",[123,1128,137],{"class":133},[123,1130,1011],{"class":160},[123,1132,1133],{"class":250}," name",[123,1135,137],{"class":133},[123,1137,1021],{"class":160},[123,1139,1140],{"class":133}," />\n",[123,1142,1143,1146,1148],{"class":125,"line":267},[123,1144,1145],{"class":133},"\u003C/",[123,1147,1106],{"class":1105},[123,1149,1109],{"class":133},[14,1151,1152],{},[17,1153],{"alt":19,"src":1154},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image914.webp",[114,1156,1158],{"className":116,"code":1157,"language":118,"meta":19,"style":19},"ros2 launch cpp05_names demo02_names_launch.xml \n",[120,1159,1160],{"__ignoreMap":19},[123,1161,1162,1164,1166,1168],{"class":125,"line":126},[123,1163,751],{"class":250},[123,1165,1054],{"class":160},[123,1167,848],{"class":160},[123,1169,1170],{"class":160}," demo02_names_launch.xml\n",[27,1172],{},[14,1174,1175],{},[17,1176],{"alt":19,"src":1177},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image915.webp",[14,1179,1180],{},"yaml的根标签也是launch",[14,1182,1183],{},[17,1184],{"alt":19,"src":1185},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image916.webp",[114,1187,1191],{"className":1188,"code":1189,"language":1190,"meta":19,"style":19},"language-yaml shiki shiki-themes github-light github-dark","launch:\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  name: \"t1\"\n","yaml",[120,1192,1193,1200,1206,1217,1227],{"__ignoreMap":19},[123,1194,1195,1197],{"class":125,"line":126},[123,1196,1106],{"class":1105},[123,1198,1199],{"class":133},":\n",[123,1201,1202,1204],{"class":125,"line":260},[123,1203,1117],{"class":1105},[123,1205,1199],{"class":133},[123,1207,1208,1211,1214],{"class":125,"line":267},[123,1209,1210],{"class":1105},"  pkg",[123,1212,1213],{"class":133},": ",[123,1215,1216],{"class":160},"\"turtlesim\"\n",[123,1218,1219,1222,1224],{"class":125,"line":279},[123,1220,1221],{"class":1105},"  exec",[123,1223,1213],{"class":133},[123,1225,1226],{"class":160},"\"turtlesim_node\"\n",[123,1228,1229,1232,1234],{"class":125,"line":290},[123,1230,1231],{"class":1105},"  name",[123,1233,1213],{"class":133},[123,1235,1236],{"class":160},"\"t1\"\n",[14,1238,1239],{},[17,1240],{"alt":19,"src":1241},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image917.webp",[114,1243,1245],{"className":116,"code":1244,"language":118,"meta":19,"style":19},"ros2 launch cpp05_names demo03_names_launch.yaml \n",[120,1246,1247],{"__ignoreMap":19},[123,1248,1249,1251,1253,1255],{"class":125,"line":126},[123,1250,751],{"class":250},[123,1252,1054],{"class":160},[123,1254,848],{"class":160},[123,1256,1257],{"class":160}," demo03_names_launch.yaml\n",[27,1259],{},[14,1261,1262],{},[17,1263],{"alt":19,"src":1264},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image918.webp",[14,1266,1267],{},[17,1268],{"alt":19,"src":1269},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image919.webp",[14,1271,1272],{},[17,1273],{"alt":19,"src":1274},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image920.webp",[14,1276,1037],{},[14,1278,1279],{},"namespace命名空间",[14,1281,1282],{},[17,1283],{"alt":19,"src":1284},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image921.webp",[114,1286,1288],{"className":933,"code":1287,"language":935,"meta":19,"style":19},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n    return LaunchDescription([\n        Node(package=\"turtlesim\",executable=\"turtlesim_node\",name=\"turtle1\"),\n        Node(package=\"turtlesim\",executable=\"turtlesim_node\",namespace=\"t1\"),\n        Node(package=\"turtlesim\",executable=\"turtlesim_node\",namespace=\"t1\",name=\"turtle1\")\n    ])\n",[120,1289,1290,1300,1310,1314,1322,1328,1358,1387,1423],{"__ignoreMap":19},[123,1291,1292,1294,1296,1298],{"class":125,"line":126},[123,1293,942],{"class":129},[123,1295,945],{"class":133},[123,1297,948],{"class":129},[123,1299,951],{"class":133},[123,1301,1302,1304,1306,1308],{"class":125,"line":260},[123,1303,942],{"class":129},[123,1305,958],{"class":133},[123,1307,948],{"class":129},[123,1309,963],{"class":133},[123,1311,1312],{"class":125,"line":267},[123,1313,264],{"emptyLinePlaceholder":263},[123,1315,1316,1318,1320],{"class":125,"line":279},[123,1317,972],{"class":129},[123,1319,975],{"class":250},[123,1321,978],{"class":133},[123,1323,1324,1326],{"class":125,"line":290},[123,1325,983],{"class":129},[123,1327,986],{"class":133},[123,1329,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1355],{"class":125,"line":295},[123,1331,991],{"class":133},[123,1333,995],{"class":994},[123,1335,137],{"class":129},[123,1337,1000],{"class":160},[123,1339,1003],{"class":133},[123,1341,1006],{"class":994},[123,1343,137],{"class":129},[123,1345,1011],{"class":160},[123,1347,1003],{"class":133},[123,1349,1016],{"class":994},[123,1351,137],{"class":129},[123,1353,1354],{"class":160},"\"turtle1\"",[123,1356,1357],{"class":133},"),\n",[123,1359,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1381,1383,1385],{"class":125,"line":310},[123,1361,991],{"class":133},[123,1363,995],{"class":994},[123,1365,137],{"class":129},[123,1367,1000],{"class":160},[123,1369,1003],{"class":133},[123,1371,1006],{"class":994},[123,1373,137],{"class":129},[123,1375,1011],{"class":160},[123,1377,1003],{"class":133},[123,1379,1380],{"class":994},"namespace",[123,1382,137],{"class":129},[123,1384,1021],{"class":160},[123,1386,1357],{"class":133},[123,1388,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413,1415,1417,1419,1421],{"class":125,"line":323},[123,1390,991],{"class":133},[123,1392,995],{"class":994},[123,1394,137],{"class":129},[123,1396,1000],{"class":160},[123,1398,1003],{"class":133},[123,1400,1006],{"class":994},[123,1402,137],{"class":129},[123,1404,1011],{"class":160},[123,1406,1003],{"class":133},[123,1408,1380],{"class":994},[123,1410,137],{"class":129},[123,1412,1021],{"class":160},[123,1414,1003],{"class":133},[123,1416,1016],{"class":994},[123,1418,137],{"class":129},[123,1420,1354],{"class":160},[123,1422,899],{"class":133},[123,1424,1425],{"class":125,"line":336},[123,1426,1028],{"class":133},[14,1428,1429],{},[17,1430],{"alt":19,"src":1431},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image922.webp",[114,1433,1435],{"className":1093,"code":1434,"language":1095,"meta":19,"style":19},"\u003Claunch>\n    \u003Cnode pkg =\"turtlesim\" exec =\"turtlesim_node\" name =\"turtle1\" />\n    \u003Cnode pkg =\"turtlesim\" exec =\"turtlesim_node\" namespace =\"t1\" />\n    \u003Cnode pkg =\"turtlesim\" exec =\"turtlesim_node\" namespace =\"t1\" name= \"turtle1\" />\n\u003C/launch>\n",[120,1436,1437,1445,1472,1499,1532],{"__ignoreMap":19},[123,1438,1439,1441,1443],{"class":125,"line":126},[123,1440,1102],{"class":133},[123,1442,1106],{"class":1105},[123,1444,1109],{"class":133},[123,1446,1447,1449,1451,1453,1456,1458,1460,1462,1464,1466,1468,1470],{"class":125,"line":260},[123,1448,1114],{"class":133},[123,1450,1117],{"class":1105},[123,1452,842],{"class":250},[123,1454,1455],{"class":133}," =",[123,1457,1000],{"class":160},[123,1459,1126],{"class":250},[123,1461,1455],{"class":133},[123,1463,1011],{"class":160},[123,1465,1133],{"class":250},[123,1467,1455],{"class":133},[123,1469,1354],{"class":160},[123,1471,1140],{"class":133},[123,1473,1474,1476,1478,1480,1482,1484,1486,1488,1490,1493,1495,1497],{"class":125,"line":267},[123,1475,1114],{"class":133},[123,1477,1117],{"class":1105},[123,1479,842],{"class":250},[123,1481,1455],{"class":133},[123,1483,1000],{"class":160},[123,1485,1126],{"class":250},[123,1487,1455],{"class":133},[123,1489,1011],{"class":160},[123,1491,1492],{"class":250}," namespace",[123,1494,1455],{"class":133},[123,1496,1021],{"class":160},[123,1498,1140],{"class":133},[123,1500,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1528,1530],{"class":125,"line":279},[123,1502,1114],{"class":133},[123,1504,1117],{"class":1105},[123,1506,842],{"class":250},[123,1508,1455],{"class":133},[123,1510,1000],{"class":160},[123,1512,1126],{"class":250},[123,1514,1455],{"class":133},[123,1516,1011],{"class":160},[123,1518,1492],{"class":250},[123,1520,1455],{"class":133},[123,1522,1021],{"class":160},[123,1524,1133],{"class":250},[123,1526,1527],{"class":133},"= ",[123,1529,1354],{"class":160},[123,1531,1140],{"class":133},[123,1533,1534,1536,1538],{"class":125,"line":290},[123,1535,1145],{"class":133},[123,1537,1106],{"class":1105},[123,1539,1109],{"class":133},[14,1541,1542],{},[17,1543],{"alt":19,"src":1544},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image923.webp",[114,1546,1548],{"className":1188,"code":1547,"language":1190,"meta":19,"style":19},"launch:\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  name: \"turtle\"\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  namespace: \"t1\"\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  namespace: \"t1\"\n  name: \"turtle\"\n",[120,1549,1550,1556,1562,1570,1578,1587,1593,1601,1609,1618,1624,1632,1640,1648],{"__ignoreMap":19},[123,1551,1552,1554],{"class":125,"line":126},[123,1553,1106],{"class":1105},[123,1555,1199],{"class":133},[123,1557,1558,1560],{"class":125,"line":260},[123,1559,1117],{"class":1105},[123,1561,1199],{"class":133},[123,1563,1564,1566,1568],{"class":125,"line":267},[123,1565,1210],{"class":1105},[123,1567,1213],{"class":133},[123,1569,1216],{"class":160},[123,1571,1572,1574,1576],{"class":125,"line":279},[123,1573,1221],{"class":1105},[123,1575,1213],{"class":133},[123,1577,1226],{"class":160},[123,1579,1580,1582,1584],{"class":125,"line":290},[123,1581,1231],{"class":1105},[123,1583,1213],{"class":133},[123,1585,1586],{"class":160},"\"turtle\"\n",[123,1588,1589,1591],{"class":125,"line":295},[123,1590,1117],{"class":1105},[123,1592,1199],{"class":133},[123,1594,1595,1597,1599],{"class":125,"line":310},[123,1596,1210],{"class":1105},[123,1598,1213],{"class":133},[123,1600,1216],{"class":160},[123,1602,1603,1605,1607],{"class":125,"line":323},[123,1604,1221],{"class":1105},[123,1606,1213],{"class":133},[123,1608,1226],{"class":160},[123,1610,1611,1614,1616],{"class":125,"line":336},[123,1612,1613],{"class":1105},"  namespace",[123,1615,1213],{"class":133},[123,1617,1236],{"class":160},[123,1619,1620,1622],{"class":125,"line":348},[123,1621,1117],{"class":1105},[123,1623,1199],{"class":133},[123,1625,1626,1628,1630],{"class":125,"line":353},[123,1627,1210],{"class":1105},[123,1629,1213],{"class":133},[123,1631,1216],{"class":160},[123,1633,1634,1636,1638],{"class":125,"line":359},[123,1635,1221],{"class":1105},[123,1637,1213],{"class":133},[123,1639,1226],{"class":160},[123,1641,1642,1644,1646],{"class":125,"line":364},[123,1643,1613],{"class":1105},[123,1645,1213],{"class":133},[123,1647,1236],{"class":160},[123,1649,1650,1652,1654],{"class":125,"line":374},[123,1651,1231],{"class":1105},[123,1653,1213],{"class":133},[123,1655,1586],{"class":160},[14,1657,1658],{},[17,1659],{"alt":19,"src":1660},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image924.webp",[27,1662],{},[14,1664,1665],{},[17,1666],{"alt":19,"src":1667},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image925.webp",[14,1669,1670],{},[17,1671],{"alt":19,"src":1672},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image926.webp",[14,1674,1675],{},[17,1676],{"alt":19,"src":1677},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image927.webp",[14,1679,1680],{},[17,1681],{"alt":19,"src":1682},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image928.webp",[14,1684,1685],{},"可指定命名空间",[14,1687,1688],{},[17,1689],{"alt":19,"src":1690},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image929.webp",[114,1692,1696],{"className":1693,"code":1694,"language":1695,"meta":19,"style":19},"language-cpp shiki shiki-themes github-light github-dark","#include \"rclcpp/rclcpp.hpp\"\n\nclass MyNode: public rclcpp::Node\n{\n  public:\n    MyNode():Node(\"mynode_node_cpp\",\"t1_ns\")\n    {\n      RCLCPP_INFO(this->get_logger(),\"Hello World!\");\n    }\n};\n\nint main(int argc, char ** argv)\n{\n  rclcpp::init(argc,argv);\n\n  auto node = std::make_shared\u003CMyNode>();\n\n  rclcpp::spin(node);\n\n  rclcpp::shutdown();\n  return 0;\n}\n","cpp",[120,1697,1698,1706,1710,1732,1737,1742,1766,1771,1796,1801,1806,1810,1839,1843,1856,1860,1886,1890,1902,1907,1920,1932],{"__ignoreMap":19},[123,1699,1700,1703],{"class":125,"line":126},[123,1701,1702],{"class":129},"#include",[123,1704,1705],{"class":160}," \"rclcpp/rclcpp.hpp\"\n",[123,1707,1708],{"class":125,"line":260},[123,1709,264],{"emptyLinePlaceholder":263},[123,1711,1712,1715,1718,1720,1723,1726,1729],{"class":125,"line":267},[123,1713,1714],{"class":129},"class",[123,1716,1717],{"class":250}," MyNode",[123,1719,1213],{"class":133},[123,1721,1722],{"class":129},"public",[123,1724,1725],{"class":250}," rclcpp",[123,1727,1728],{"class":133},"::",[123,1730,1731],{"class":250},"Node\n",[123,1733,1734],{"class":125,"line":279},[123,1735,1736],{"class":133},"{\n",[123,1738,1739],{"class":125,"line":290},[123,1740,1741],{"class":129},"  public:\n",[123,1743,1744,1747,1750,1753,1756,1759,1761,1764],{"class":125,"line":295},[123,1745,1746],{"class":250},"    MyNode",[123,1748,1749],{"class":133},"():",[123,1751,1752],{"class":250},"Node",[123,1754,1755],{"class":133},"(",[123,1757,1758],{"class":160},"\"mynode_node_cpp\"",[123,1760,1003],{"class":133},[123,1762,1763],{"class":160},"\"t1_ns\"",[123,1765,899],{"class":133},[123,1767,1768],{"class":125,"line":310},[123,1769,1770],{"class":133},"    {\n",[123,1772,1773,1776,1778,1781,1784,1787,1790,1793],{"class":125,"line":323},[123,1774,1775],{"class":250},"      RCLCPP_INFO",[123,1777,1755],{"class":133},[123,1779,1780],{"class":140},"this",[123,1782,1783],{"class":133},"->",[123,1785,1786],{"class":250},"get_logger",[123,1788,1789],{"class":133},"(),",[123,1791,1792],{"class":160},"\"Hello World!\"",[123,1794,1795],{"class":133},");\n",[123,1797,1798],{"class":125,"line":336},[123,1799,1800],{"class":133},"    }\n",[123,1802,1803],{"class":125,"line":348},[123,1804,1805],{"class":133},"};\n",[123,1807,1808],{"class":125,"line":353},[123,1809,264],{"emptyLinePlaceholder":263},[123,1811,1812,1815,1818,1820,1822,1825,1828,1831,1834,1837],{"class":125,"line":359},[123,1813,1814],{"class":129},"int",[123,1816,1817],{"class":250}," main",[123,1819,1755],{"class":133},[123,1821,1814],{"class":129},[123,1823,1824],{"class":994}," argc",[123,1826,1827],{"class":133},", ",[123,1829,1830],{"class":129},"char",[123,1832,1833],{"class":129}," **",[123,1835,1836],{"class":994}," argv",[123,1838,899],{"class":133},[123,1840,1841],{"class":125,"line":364},[123,1842,1736],{"class":133},[123,1844,1845,1848,1850,1853],{"class":125,"line":374},[123,1846,1847],{"class":250},"  rclcpp",[123,1849,1728],{"class":133},[123,1851,1852],{"class":250},"init",[123,1854,1855],{"class":133},"(argc,argv);\n",[123,1857,1858],{"class":125,"line":384},[123,1859,264],{"emptyLinePlaceholder":263},[123,1861,1862,1865,1868,1870,1873,1875,1878,1880,1883],{"class":125,"line":396},[123,1863,1864],{"class":129},"  auto",[123,1866,1867],{"class":133}," node ",[123,1869,137],{"class":129},[123,1871,1872],{"class":250}," std",[123,1874,1728],{"class":133},[123,1876,1877],{"class":250},"make_shared",[123,1879,1102],{"class":133},[123,1881,1882],{"class":250},"MyNode",[123,1884,1885],{"class":133},">();\n",[123,1887,1888],{"class":125,"line":408},[123,1889,264],{"emptyLinePlaceholder":263},[123,1891,1892,1894,1896,1899],{"class":125,"line":420},[123,1893,1847],{"class":250},[123,1895,1728],{"class":133},[123,1897,1898],{"class":250},"spin",[123,1900,1901],{"class":133},"(node);\n",[123,1903,1905],{"class":125,"line":1904},19,[123,1906,264],{"emptyLinePlaceholder":263},[123,1908,1910,1912,1914,1917],{"class":125,"line":1909},20,[123,1911,1847],{"class":250},[123,1913,1728],{"class":133},[123,1915,1916],{"class":250},"shutdown",[123,1918,1919],{"class":133},"();\n",[123,1921,1923,1926,1929],{"class":125,"line":1922},21,[123,1924,1925],{"class":129},"  return",[123,1927,1928],{"class":140}," 0",[123,1930,1931],{"class":133},";\n",[123,1933,1935],{"class":125,"line":1934},22,[123,1936,1937],{"class":133},"}\n",[14,1939,1940],{},[17,1941],{"alt":19,"src":1942},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image930.webp",[14,1944,1945],{},[17,1946],{"alt":19,"src":1947},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image931.webp",[14,1949,1950],{},[17,1951],{"alt":19,"src":1952},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image932.webp",[14,1954,1955],{},[17,1956],{"alt":19,"src":1957},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image933.webp",[10,1959,1960],{"id":1960},"话题重名",[14,1962,1963],{},[17,1964],{"alt":19,"src":1965},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image934.webp",[14,1967,1968],{},[17,1969],{"alt":19,"src":1970},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image935.webp",[14,1972,1973],{},[17,1974],{"alt":19,"src":1975},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image936.webp",[27,1977],{},[14,1979,1980],{},[17,1981],{"alt":19,"src":1982},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image937.webp",[14,1984,1985],{},[17,1986],{"alt":19,"src":1987},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image938.webp",[114,1989,1990],{"className":116,"code":744,"language":118,"meta":19,"style":19},[120,1991,1992],{"__ignoreMap":19},[123,1993,1994,1996,1998,2000,2002,2004,2006],{"class":125,"line":126},[123,1995,751],{"class":250},[123,1997,754],{"class":160},[123,1999,757],{"class":160},[123,2001,760],{"class":160},[123,2003,763],{"class":140},[123,2005,766],{"class":140},[123,2007,769],{"class":160},[14,2009,772],{},[14,2011,2012],{},"这种加命名空间的方式，不仅对节点重名生效，当然对话题名称依然生效。",[14,2014,2015],{},[17,2016],{"alt":19,"src":2017},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image939.webp",[14,2019,2020],{},[17,2021],{"alt":19,"src":2022},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image940.webp",[14,2024,2025],{},[17,2026],{"alt":19,"src":2027},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image941.webp",[14,2029,2030],{},[17,2031],{"alt":19,"src":2032},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image942.webp",[14,2034,2035],{},[17,2036],{"alt":19,"src":2037},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image943.webp",[114,2039,2041],{"className":116,"code":2040,"language":118,"meta":19,"style":19},"ros2 run teleop_twist_keyboard teleop_twist_keyboard \n",[120,2042,2043],{"__ignoreMap":19},[123,2044,2045,2047,2049,2052],{"class":125,"line":126},[123,2046,751],{"class":250},[123,2048,754],{"class":160},[123,2050,2051],{"class":160}," teleop_twist_keyboard",[123,2053,2054],{"class":160}," teleop_twist_keyboard\n",[14,2056,2057],{},"这个是打开控制机器人运动的节点",[14,2059,2060],{},"ros2 run teleop_twist_keyboard teleop_twist_keyboard",[14,2062,2063],{},[17,2064],{"alt":19,"src":2065},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image944.webp",[14,2067,2068],{},[17,2069],{"alt":19,"src":2070},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image945.webp",[14,2072,2073],{},"其所对应的话题名称是这个。",[14,2075,2076],{},[17,2077],{"alt":19,"src":2078},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image946.webp",[14,2080,2081],{},"但此时控制乌龟运动无效，是因为话题命名空间不同。",[14,2083,2084],{},[17,2085],{"alt":19,"src":2086},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image947.webp",[14,2088,2089],{},"乌龟接收的话题是/turtle1/cmd_vel，命名空间是/turtle1",[14,2091,2092],{},"而控制乌龟运动的是/cmd_vel，命名空间不同，",[14,2094,2095],{},"所以我们要把两者命名空间弄成一样的。",[14,2097,2098],{},"随便改即可，只要改成一样的，就可以正常通信了。",[14,2100,2101],{},[17,2102],{"alt":19,"src":2103},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image948.webp",[14,2105,2106],{},[17,2107],{"alt":19,"src":2108},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image949.webp",[27,2110],{},[14,2112,2113],{},[17,2114],{"alt":19,"src":2115},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image950.webp",[14,2117,2118],{},"remappings可以实现话题的重映射，该参数是一个列表，然后里面是元组，每一个元组都可以对一个话题进行重映射，元组里第一个参数是原话题名称，第二个参数是重映射后的话题名称。",[14,2120,2121],{},"namespace可以实现命名空间。",[14,2123,2124],{},[17,2125],{"alt":19,"src":2126},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image951.webp",[14,2128,2129],{},[17,2130],{"alt":19,"src":2131},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image952.webp",[14,2133,2134],{},[17,2135],{"alt":19,"src":2136},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image953.webp",[14,2138,2139],{},[17,2140],{"alt":19,"src":2141},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image954.webp",[14,2143,2144],{},[17,2145],{"alt":19,"src":2146},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image955.webp",[14,2148,2149],{},[17,2150],{"alt":19,"src":2151},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image956.webp",[14,2153,2154],{},[17,2155],{"alt":19,"src":2156},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image957.webp",[14,2158,2159],{},[17,2160],{"alt":19,"src":2161},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image958.webp",[14,2163,2164],{},"remp也是可以设置重映射，from是原话题名称，to是重映射的名称。",[114,2166,2168],{"className":1093,"code":2167,"language":1095,"meta":19,"style":19},"\u003Claunch>\n\n    \u003Cnode pkg =\"turtlesim\" exec =\"turtlesim_node\" namespace =\"t1\" />\n    \u003Cnode pkg =\"turtlesim\" exec =\"turtlesim_node\" >\n        \u003Cremap from= \"/turtle1/cmd_vel\" to=\"/cmd_vel\" />\n    \u003C/node>\n\u003C/launch>\n",[120,2169,2170,2178,2182,2208,2229,2255,2264],{"__ignoreMap":19},[123,2171,2172,2174,2176],{"class":125,"line":126},[123,2173,1102],{"class":133},[123,2175,1106],{"class":1105},[123,2177,1109],{"class":133},[123,2179,2180],{"class":125,"line":260},[123,2181,264],{"emptyLinePlaceholder":263},[123,2183,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206],{"class":125,"line":267},[123,2185,1114],{"class":133},[123,2187,1117],{"class":1105},[123,2189,842],{"class":250},[123,2191,1455],{"class":133},[123,2193,1000],{"class":160},[123,2195,1126],{"class":250},[123,2197,1455],{"class":133},[123,2199,1011],{"class":160},[123,2201,1492],{"class":250},[123,2203,1455],{"class":133},[123,2205,1021],{"class":160},[123,2207,1140],{"class":133},[123,2209,2210,2212,2214,2216,2218,2220,2222,2224,2226],{"class":125,"line":279},[123,2211,1114],{"class":133},[123,2213,1117],{"class":1105},[123,2215,842],{"class":250},[123,2217,1455],{"class":133},[123,2219,1000],{"class":160},[123,2221,1126],{"class":250},[123,2223,1455],{"class":133},[123,2225,1011],{"class":160},[123,2227,2228],{"class":133}," >\n",[123,2230,2231,2234,2237,2240,2242,2245,2248,2250,2253],{"class":125,"line":290},[123,2232,2233],{"class":133},"        \u003C",[123,2235,2236],{"class":1105},"remap",[123,2238,2239],{"class":250}," from",[123,2241,1527],{"class":133},[123,2243,2244],{"class":160},"\"/turtle1/cmd_vel\"",[123,2246,2247],{"class":250}," to",[123,2249,137],{"class":133},[123,2251,2252],{"class":160},"\"/cmd_vel\"",[123,2254,1140],{"class":133},[123,2256,2257,2260,2262],{"class":125,"line":295},[123,2258,2259],{"class":133},"    \u003C/",[123,2261,1117],{"class":1105},[123,2263,1109],{"class":133},[123,2265,2266,2268,2270],{"class":125,"line":310},[123,2267,1145],{"class":133},[123,2269,1106],{"class":1105},[123,2271,1109],{"class":133},[14,2273,2274],{},[17,2275],{"alt":19,"src":2276},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image959.webp",[14,2278,2279],{},[17,2280],{"alt":19,"src":2281},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image960.webp",[14,2283,2284],{},"launch:",[114,2286,2288],{"className":1188,"code":2287,"language":1190,"meta":19,"style":19},"- node:\npkg: \"turtlesim\"\nexec: \"turtlesim_node\"\nname: \"turtle\"\n- node:\npkg: \"turtlesim\"\nexec: \"turtlesim_node\"\nnamespace: \"t1\"\n- node:\npkg: \"turtlesim\"\nexec: \"turtlesim_node\"\nnamespace: \"t1\"\nname: \"turtle\"\n\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  namespace: \"t1\"\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  remap:\n  -\n      from: \"/turtle1/cmd_vel\"\n      to: \"/cmd_vel\"\n",[120,2289,2290,2299,2308,2317,2325,2333,2341,2349,2357,2365,2373,2381,2389,2397,2401,2407,2415,2423,2431,2437,2445,2453,2460,2466,2477],{"__ignoreMap":19},[123,2291,2292,2295,2297],{"class":125,"line":126},[123,2293,2294],{"class":133},"- ",[123,2296,1117],{"class":1105},[123,2298,1199],{"class":133},[123,2300,2301,2304,2306],{"class":125,"line":260},[123,2302,2303],{"class":1105},"pkg",[123,2305,1213],{"class":133},[123,2307,1216],{"class":160},[123,2309,2310,2313,2315],{"class":125,"line":267},[123,2311,2312],{"class":1105},"exec",[123,2314,1213],{"class":133},[123,2316,1226],{"class":160},[123,2318,2319,2321,2323],{"class":125,"line":279},[123,2320,1016],{"class":1105},[123,2322,1213],{"class":133},[123,2324,1586],{"class":160},[123,2326,2327,2329,2331],{"class":125,"line":290},[123,2328,2294],{"class":133},[123,2330,1117],{"class":1105},[123,2332,1199],{"class":133},[123,2334,2335,2337,2339],{"class":125,"line":295},[123,2336,2303],{"class":1105},[123,2338,1213],{"class":133},[123,2340,1216],{"class":160},[123,2342,2343,2345,2347],{"class":125,"line":310},[123,2344,2312],{"class":1105},[123,2346,1213],{"class":133},[123,2348,1226],{"class":160},[123,2350,2351,2353,2355],{"class":125,"line":323},[123,2352,1380],{"class":1105},[123,2354,1213],{"class":133},[123,2356,1236],{"class":160},[123,2358,2359,2361,2363],{"class":125,"line":336},[123,2360,2294],{"class":133},[123,2362,1117],{"class":1105},[123,2364,1199],{"class":133},[123,2366,2367,2369,2371],{"class":125,"line":348},[123,2368,2303],{"class":1105},[123,2370,1213],{"class":133},[123,2372,1216],{"class":160},[123,2374,2375,2377,2379],{"class":125,"line":353},[123,2376,2312],{"class":1105},[123,2378,1213],{"class":133},[123,2380,1226],{"class":160},[123,2382,2383,2385,2387],{"class":125,"line":359},[123,2384,1380],{"class":1105},[123,2386,1213],{"class":133},[123,2388,1236],{"class":160},[123,2390,2391,2393,2395],{"class":125,"line":364},[123,2392,1016],{"class":1105},[123,2394,1213],{"class":133},[123,2396,1586],{"class":160},[123,2398,2399],{"class":125,"line":374},[123,2400,264],{"emptyLinePlaceholder":263},[123,2402,2403,2405],{"class":125,"line":384},[123,2404,1117],{"class":1105},[123,2406,1199],{"class":133},[123,2408,2409,2411,2413],{"class":125,"line":396},[123,2410,1210],{"class":1105},[123,2412,1213],{"class":133},[123,2414,1216],{"class":160},[123,2416,2417,2419,2421],{"class":125,"line":408},[123,2418,1221],{"class":1105},[123,2420,1213],{"class":133},[123,2422,1226],{"class":160},[123,2424,2425,2427,2429],{"class":125,"line":420},[123,2426,1613],{"class":1105},[123,2428,1213],{"class":133},[123,2430,1236],{"class":160},[123,2432,2433,2435],{"class":125,"line":1904},[123,2434,1117],{"class":1105},[123,2436,1199],{"class":133},[123,2438,2439,2441,2443],{"class":125,"line":1909},[123,2440,1210],{"class":1105},[123,2442,1213],{"class":133},[123,2444,1216],{"class":160},[123,2446,2447,2449,2451],{"class":125,"line":1922},[123,2448,1221],{"class":1105},[123,2450,1213],{"class":133},[123,2452,1226],{"class":160},[123,2454,2455,2458],{"class":125,"line":1934},[123,2456,2457],{"class":1105},"  remap",[123,2459,1199],{"class":133},[123,2461,2463],{"class":125,"line":2462},23,[123,2464,2465],{"class":133},"  -\n",[123,2467,2469,2472,2474],{"class":125,"line":2468},24,[123,2470,2471],{"class":1105},"      from",[123,2473,1213],{"class":133},[123,2475,2476],{"class":160},"\"/turtle1/cmd_vel\"\n",[123,2478,2480,2483,2485],{"class":125,"line":2479},25,[123,2481,2482],{"class":1105},"      to",[123,2484,1213],{"class":133},[123,2486,2487],{"class":160},"\"/cmd_vel\"\n",[14,2489,2490],{},[17,2491],{"alt":19,"src":2492},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image961.webp",[14,2494,2495],{},[17,2496],{"alt":19,"src":2497},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image962.webp",[27,2499],{},[14,2501,2502],{},[17,2503],{"alt":19,"src":2504},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image963.webp",[14,2506,2507],{},[17,2508],{"alt":19,"src":2509},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image964.webp",[14,2511,2512],{},"命名空间可以有好几级。",[14,2514,2515],{},[17,2516],{"alt":19,"src":2517},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image965.webp",[14,2519,2520],{},"全局话题是和节点命名空间平级，也就是挂载在根下的。",[14,2522,2523],{},"相对话题是挂载在命名空间下的。",[14,2525,2526],{},"私有话题是节点名称的子级。",[14,2528,2529],{},[17,2530],{"alt":19,"src":2531},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image966.webp",[14,2533,2534],{},[17,2535],{"alt":19,"src":2536},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image967.webp",[14,2538,2539],{},[17,2540],{"alt":19,"src":2541},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image968.webp",[14,2543,2544],{},[17,2545],{"alt":19,"src":2546},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image969.webp",[114,2548,2550],{"className":1693,"code":2549,"language":1695,"meta":19,"style":19},"#include \"rclcpp/rclcpp.hpp\"\n#include \"std_msgs/msg/string.hpp\"\n\nusing std_msgs::msg::String;\n\nclass MyNode: public rclcpp::Node\n{\n  public:\n    MyNode():Node(\"mynode_node_name\",\"t1_namespace\")\n    {\n      RCLCPP_INFO(this->get_logger(),\"Hello World!\");\n      publisher_ = this->create_publisher\u003CString>(\"/global_topics\",10);\n    }\n  private:\n    rclcpp::Publisher\u003CString>::SharedPtr publisher_;\n};\n\nint main(int argc, char ** argv)\n{\n  rclcpp::init(argc,argv);\n\n  auto node = std::make_shared\u003CMyNode>();\n\n  rclcpp::spin(node);\n\n  rclcpp::shutdown();\n  return 0;\n}\n",[120,2551,2552,2558,2565,2569,2585,2589,2605,2609,2613,2633,2637,2655,2688,2692,2697,2714,2718,2722,2744,2748,2758,2762,2782,2786,2796,2800,2811,2820],{"__ignoreMap":19},[123,2553,2554,2556],{"class":125,"line":126},[123,2555,1702],{"class":129},[123,2557,1705],{"class":160},[123,2559,2560,2562],{"class":125,"line":260},[123,2561,1702],{"class":129},[123,2563,2564],{"class":160}," \"std_msgs/msg/string.hpp\"\n",[123,2566,2567],{"class":125,"line":267},[123,2568,264],{"emptyLinePlaceholder":263},[123,2570,2571,2574,2577,2579,2582],{"class":125,"line":279},[123,2572,2573],{"class":129},"using",[123,2575,2576],{"class":250}," std_msgs",[123,2578,1728],{"class":133},[123,2580,2581],{"class":250},"msg",[123,2583,2584],{"class":133},"::String;\n",[123,2586,2587],{"class":125,"line":290},[123,2588,264],{"emptyLinePlaceholder":263},[123,2590,2591,2593,2595,2597,2599,2601,2603],{"class":125,"line":295},[123,2592,1714],{"class":129},[123,2594,1717],{"class":250},[123,2596,1213],{"class":133},[123,2598,1722],{"class":129},[123,2600,1725],{"class":250},[123,2602,1728],{"class":133},[123,2604,1731],{"class":250},[123,2606,2607],{"class":125,"line":310},[123,2608,1736],{"class":133},[123,2610,2611],{"class":125,"line":323},[123,2612,1741],{"class":129},[123,2614,2615,2617,2619,2621,2623,2626,2628,2631],{"class":125,"line":336},[123,2616,1746],{"class":250},[123,2618,1749],{"class":133},[123,2620,1752],{"class":250},[123,2622,1755],{"class":133},[123,2624,2625],{"class":160},"\"mynode_node_name\"",[123,2627,1003],{"class":133},[123,2629,2630],{"class":160},"\"t1_namespace\"",[123,2632,899],{"class":133},[123,2634,2635],{"class":125,"line":348},[123,2636,1770],{"class":133},[123,2638,2639,2641,2643,2645,2647,2649,2651,2653],{"class":125,"line":353},[123,2640,1775],{"class":250},[123,2642,1755],{"class":133},[123,2644,1780],{"class":140},[123,2646,1783],{"class":133},[123,2648,1786],{"class":250},[123,2650,1789],{"class":133},[123,2652,1792],{"class":160},[123,2654,1795],{"class":133},[123,2656,2657,2660,2662,2665,2668,2670,2673,2676,2678,2681,2683,2686],{"class":125,"line":359},[123,2658,2659],{"class":133},"      publisher_ ",[123,2661,137],{"class":129},[123,2663,2664],{"class":140}," this",[123,2666,2667],{"class":133},"->create_publisher",[123,2669,1102],{"class":129},[123,2671,2672],{"class":133},"String",[123,2674,2675],{"class":129},">",[123,2677,1755],{"class":133},[123,2679,2680],{"class":160},"\"/global_topics\"",[123,2682,1003],{"class":133},[123,2684,2685],{"class":140},"10",[123,2687,1795],{"class":133},[123,2689,2690],{"class":125,"line":364},[123,2691,1800],{"class":133},[123,2693,2694],{"class":125,"line":374},[123,2695,2696],{"class":129},"  private:\n",[123,2698,2699,2702,2704,2707,2709,2711],{"class":125,"line":384},[123,2700,2701],{"class":250},"    rclcpp",[123,2703,1728],{"class":133},[123,2705,2706],{"class":250},"Publisher",[123,2708,1102],{"class":133},[123,2710,2672],{"class":250},[123,2712,2713],{"class":133},">::SharedPtr publisher_;\n",[123,2715,2716],{"class":125,"line":396},[123,2717,1805],{"class":133},[123,2719,2720],{"class":125,"line":408},[123,2721,264],{"emptyLinePlaceholder":263},[123,2723,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742],{"class":125,"line":420},[123,2725,1814],{"class":129},[123,2727,1817],{"class":250},[123,2729,1755],{"class":133},[123,2731,1814],{"class":129},[123,2733,1824],{"class":994},[123,2735,1827],{"class":133},[123,2737,1830],{"class":129},[123,2739,1833],{"class":129},[123,2741,1836],{"class":994},[123,2743,899],{"class":133},[123,2745,2746],{"class":125,"line":1904},[123,2747,1736],{"class":133},[123,2749,2750,2752,2754,2756],{"class":125,"line":1909},[123,2751,1847],{"class":250},[123,2753,1728],{"class":133},[123,2755,1852],{"class":250},[123,2757,1855],{"class":133},[123,2759,2760],{"class":125,"line":1922},[123,2761,264],{"emptyLinePlaceholder":263},[123,2763,2764,2766,2768,2770,2772,2774,2776,2778,2780],{"class":125,"line":1934},[123,2765,1864],{"class":129},[123,2767,1867],{"class":133},[123,2769,137],{"class":129},[123,2771,1872],{"class":250},[123,2773,1728],{"class":133},[123,2775,1877],{"class":250},[123,2777,1102],{"class":133},[123,2779,1882],{"class":250},[123,2781,1885],{"class":133},[123,2783,2784],{"class":125,"line":2462},[123,2785,264],{"emptyLinePlaceholder":263},[123,2787,2788,2790,2792,2794],{"class":125,"line":2468},[123,2789,1847],{"class":250},[123,2791,1728],{"class":133},[123,2793,1898],{"class":250},[123,2795,1901],{"class":133},[123,2797,2798],{"class":125,"line":2479},[123,2799,264],{"emptyLinePlaceholder":263},[123,2801,2803,2805,2807,2809],{"class":125,"line":2802},26,[123,2804,1847],{"class":250},[123,2806,1728],{"class":133},[123,2808,1916],{"class":250},[123,2810,1919],{"class":133},[123,2812,2814,2816,2818],{"class":125,"line":2813},27,[123,2815,1925],{"class":129},[123,2817,1928],{"class":140},[123,2819,1931],{"class":133},[123,2821,2823],{"class":125,"line":2822},28,[123,2824,1937],{"class":133},[14,2826,2827],{},[17,2828],{"alt":19,"src":2829},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image970.webp",[14,2831,2832],{},[17,2833],{"alt":19,"src":2834},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image971.webp",[14,2836,2837],{},[17,2838],{"alt":19,"src":2839},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image972.webp",[14,2841,2842],{},"全局话题",[14,2844,2845],{},[17,2846],{"alt":19,"src":2847},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image973.webp",[14,2849,2850],{},[17,2851],{"alt":19,"src":2852},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image974.webp",[14,2854,2855],{},"相对话题",[14,2857,2858],{},[17,2859],{"alt":19,"src":2860},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image975.webp",[14,2862,2863],{},[17,2864],{"alt":19,"src":2865},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image976.webp",[14,2867,2868],{},"私有话题",[10,2870,2872],{"id":2871},"时间相关api","时间相关API",[14,2874,2875],{},[17,2876],{"alt":19,"src":2877},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image977.webp",[14,2879,2880],{},"发消息可以有消息头，消息头里有时间戳，接收方解析消息头，并把消息时间和当前时间进行比对，看是否延迟过高。",[14,2882,2883],{},"Rate是频率",[14,2885,2886],{},"Time是时刻",[14,2888,2889],{},"Duration是持续时间",[14,2891,2892],{},[17,2893],{"alt":19,"src":2894},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image978.webp",[27,2896],{},[14,2898,2899],{},[17,2900],{"alt":19,"src":2901},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image979.webp",[14,2903,2904],{},[17,2905],{"alt":19,"src":2906},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image980.webp",[14,2908,2909],{},[17,2910],{"alt":19,"src":2911},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image981.webp",[14,2913,2914],{},[17,2915],{"alt":19,"src":2916},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image982.webp",[14,2918,2919],{},"这个类的构造函数有两个重载，第一个是周期，第二个是频率。",[14,2921,2922],{},[17,2923],{"alt":19,"src":2924},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image983.webp",[14,2926,2927],{},[17,2928],{"alt":19,"src":2929},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image984.webp",[14,2931,2932],{},[17,2933],{"alt":19,"src":2934},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image985.webp",[114,2936,2938],{"className":1693,"code":2937,"language":1695,"meta":19,"style":19},"#include \"rclcpp/rclcpp.hpp\"\n\nusing namespace std::chrono_literals;\n\nclass MyNode: public rclcpp::Node\n{\n  public:\n    MyNode():Node(\"time_node_cpp\")\n    {\n      RCLCPP_INFO(this->get_logger(),\"Hello World!\");\n      demo_rate();\n    }\n  private:\n    void demo_rate()\n    {\n      rclcpp::Rate rate1(500ms);\n      rclcpp::Rate rate2(1.0);\n      // while(rclcpp::ok())\n      // {\n      //   RCLCPP_INFO(this->get_logger(),\"休眠500ms\");\n      //   rate1.sleep();\n      // }\n      while(rclcpp::ok())\n      {\n        RCLCPP_INFO(this->get_logger(),\"休眠1000ms\");\n        rate2.sleep();\n      }\n    }\n};\n\nint main(int argc, char ** argv)\n{\n  rclcpp::init(argc,argv);\n\n  auto node = std::make_shared\u003CMyNode>();\n\n  rclcpp::spin(node);\n\n  rclcpp::shutdown();\n  return 0;\n}\n",[120,2939,2940,2946,2950,2965,2969,2985,2989,2993,3008,3012,3030,3037,3041,3045,3056,3060,3081,3097,3103,3108,3113,3118,3123,3141,3146,3166,3176,3181,3185,3190,3195,3218,3223,3234,3239,3260,3265,3276,3281,3292,3301],{"__ignoreMap":19},[123,2941,2942,2944],{"class":125,"line":126},[123,2943,1702],{"class":129},[123,2945,1705],{"class":160},[123,2947,2948],{"class":125,"line":260},[123,2949,264],{"emptyLinePlaceholder":263},[123,2951,2952,2954,2956,2958,2960,2963],{"class":125,"line":267},[123,2953,2573],{"class":129},[123,2955,1492],{"class":129},[123,2957,1872],{"class":250},[123,2959,1728],{"class":133},[123,2961,2962],{"class":250},"chrono_literals",[123,2964,1931],{"class":133},[123,2966,2967],{"class":125,"line":279},[123,2968,264],{"emptyLinePlaceholder":263},[123,2970,2971,2973,2975,2977,2979,2981,2983],{"class":125,"line":290},[123,2972,1714],{"class":129},[123,2974,1717],{"class":250},[123,2976,1213],{"class":133},[123,2978,1722],{"class":129},[123,2980,1725],{"class":250},[123,2982,1728],{"class":133},[123,2984,1731],{"class":250},[123,2986,2987],{"class":125,"line":295},[123,2988,1736],{"class":133},[123,2990,2991],{"class":125,"line":310},[123,2992,1741],{"class":129},[123,2994,2995,2997,2999,3001,3003,3006],{"class":125,"line":323},[123,2996,1746],{"class":250},[123,2998,1749],{"class":133},[123,3000,1752],{"class":250},[123,3002,1755],{"class":133},[123,3004,3005],{"class":160},"\"time_node_cpp\"",[123,3007,899],{"class":133},[123,3009,3010],{"class":125,"line":336},[123,3011,1770],{"class":133},[123,3013,3014,3016,3018,3020,3022,3024,3026,3028],{"class":125,"line":348},[123,3015,1775],{"class":250},[123,3017,1755],{"class":133},[123,3019,1780],{"class":140},[123,3021,1783],{"class":133},[123,3023,1786],{"class":250},[123,3025,1789],{"class":133},[123,3027,1792],{"class":160},[123,3029,1795],{"class":133},[123,3031,3032,3035],{"class":125,"line":353},[123,3033,3034],{"class":250},"      demo_rate",[123,3036,1919],{"class":133},[123,3038,3039],{"class":125,"line":359},[123,3040,1800],{"class":133},[123,3042,3043],{"class":125,"line":364},[123,3044,2696],{"class":129},[123,3046,3047,3050,3053],{"class":125,"line":374},[123,3048,3049],{"class":129},"    void",[123,3051,3052],{"class":250}," demo_rate",[123,3054,3055],{"class":133},"()\n",[123,3057,3058],{"class":125,"line":384},[123,3059,1770],{"class":133},[123,3061,3062,3065,3068,3071,3073,3076,3079],{"class":125,"line":396},[123,3063,3064],{"class":250},"      rclcpp",[123,3066,3067],{"class":133},"::Rate ",[123,3069,3070],{"class":250},"rate1",[123,3072,1755],{"class":133},[123,3074,3075],{"class":140},"500",[123,3077,3078],{"class":129},"ms",[123,3080,1795],{"class":133},[123,3082,3083,3085,3087,3090,3092,3095],{"class":125,"line":408},[123,3084,3064],{"class":250},[123,3086,3067],{"class":133},[123,3088,3089],{"class":250},"rate2",[123,3091,1755],{"class":133},[123,3093,3094],{"class":140},"1.0",[123,3096,1795],{"class":133},[123,3098,3099],{"class":125,"line":420},[123,3100,3102],{"class":3101},"sJ8bj","      // while(rclcpp::ok())\n",[123,3104,3105],{"class":125,"line":1904},[123,3106,3107],{"class":3101},"      // {\n",[123,3109,3110],{"class":125,"line":1909},[123,3111,3112],{"class":3101},"      //   RCLCPP_INFO(this->get_logger(),\"休眠500ms\");\n",[123,3114,3115],{"class":125,"line":1922},[123,3116,3117],{"class":3101},"      //   rate1.sleep();\n",[123,3119,3120],{"class":125,"line":1934},[123,3121,3122],{"class":3101},"      // }\n",[123,3124,3125,3128,3130,3133,3135,3138],{"class":125,"line":2462},[123,3126,3127],{"class":129},"      while",[123,3129,1755],{"class":133},[123,3131,3132],{"class":250},"rclcpp",[123,3134,1728],{"class":133},[123,3136,3137],{"class":250},"ok",[123,3139,3140],{"class":133},"())\n",[123,3142,3143],{"class":125,"line":2468},[123,3144,3145],{"class":133},"      {\n",[123,3147,3148,3151,3153,3155,3157,3159,3161,3164],{"class":125,"line":2479},[123,3149,3150],{"class":250},"        RCLCPP_INFO",[123,3152,1755],{"class":133},[123,3154,1780],{"class":140},[123,3156,1783],{"class":133},[123,3158,1786],{"class":250},[123,3160,1789],{"class":133},[123,3162,3163],{"class":160},"\"休眠1000ms\"",[123,3165,1795],{"class":133},[123,3167,3168,3171,3174],{"class":125,"line":2802},[123,3169,3170],{"class":133},"        rate2.",[123,3172,3173],{"class":250},"sleep",[123,3175,1919],{"class":133},[123,3177,3178],{"class":125,"line":2813},[123,3179,3180],{"class":133},"      }\n",[123,3182,3183],{"class":125,"line":2822},[123,3184,1800],{"class":133},[123,3186,3188],{"class":125,"line":3187},29,[123,3189,1805],{"class":133},[123,3191,3193],{"class":125,"line":3192},30,[123,3194,264],{"emptyLinePlaceholder":263},[123,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216],{"class":125,"line":3197},31,[123,3199,1814],{"class":129},[123,3201,1817],{"class":250},[123,3203,1755],{"class":133},[123,3205,1814],{"class":129},[123,3207,1824],{"class":994},[123,3209,1827],{"class":133},[123,3211,1830],{"class":129},[123,3213,1833],{"class":129},[123,3215,1836],{"class":994},[123,3217,899],{"class":133},[123,3219,3221],{"class":125,"line":3220},32,[123,3222,1736],{"class":133},[123,3224,3226,3228,3230,3232],{"class":125,"line":3225},33,[123,3227,1847],{"class":250},[123,3229,1728],{"class":133},[123,3231,1852],{"class":250},[123,3233,1855],{"class":133},[123,3235,3237],{"class":125,"line":3236},34,[123,3238,264],{"emptyLinePlaceholder":263},[123,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258],{"class":125,"line":3241},35,[123,3243,1864],{"class":129},[123,3245,1867],{"class":133},[123,3247,137],{"class":129},[123,3249,1872],{"class":250},[123,3251,1728],{"class":133},[123,3253,1877],{"class":250},[123,3255,1102],{"class":133},[123,3257,1882],{"class":250},[123,3259,1885],{"class":133},[123,3261,3263],{"class":125,"line":3262},36,[123,3264,264],{"emptyLinePlaceholder":263},[123,3266,3268,3270,3272,3274],{"class":125,"line":3267},37,[123,3269,1847],{"class":250},[123,3271,1728],{"class":133},[123,3273,1898],{"class":250},[123,3275,1901],{"class":133},[123,3277,3279],{"class":125,"line":3278},38,[123,3280,264],{"emptyLinePlaceholder":263},[123,3282,3284,3286,3288,3290],{"class":125,"line":3283},39,[123,3285,1847],{"class":250},[123,3287,1728],{"class":133},[123,3289,1916],{"class":250},[123,3291,1919],{"class":133},[123,3293,3295,3297,3299],{"class":125,"line":3294},40,[123,3296,1925],{"class":129},[123,3298,1928],{"class":140},[123,3300,1931],{"class":133},[123,3302,3304],{"class":125,"line":3303},41,[123,3305,1937],{"class":133},[27,3307],{},[14,3309,3310],{},[17,3311],{"alt":19,"src":3312},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image986.webp",[14,3314,3315],{},[17,3316],{"alt":19,"src":3317},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image987.webp",[14,3319,3320],{},[17,3321],{"alt":19,"src":3322},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image988.webp",[14,3324,3325],{},[17,3326],{"alt":19,"src":3327},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image989.webp",[14,3329,3330],{},"可以传入一个纳秒",[14,3332,3333],{},[17,3334],{"alt":19,"src":3335},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image990.webp",[14,3337,3338],{},"也可以传入一个秒和一个纳秒",[14,3340,3341],{},[17,3342],{"alt":19,"src":3343},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image991.webp",[14,3345,3346],{},"因为是int64_t类型的，所以我们后面加个L，这是5亿纳秒，也就是0.5秒。",[14,3348,3349],{},[17,3350],{"alt":19,"src":3351},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image992.webp",[14,3353,3354],{},"这样time2代表2.5秒。",[14,3356,3357],{},"获取当前时刻有两种方式，",[14,3359,3360],{},"一个是this->get_clock()->now()，",[14,3362,3363],{},"另一个是this->now();",[14,3365,3366],{},[17,3367],{"alt":19,"src":3368},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image993.webp",[14,3370,3371],{},[17,3372],{"alt":19,"src":3373},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image994.webp",[14,3375,3376],{},[17,3377],{"alt":19,"src":3378},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image995.webp",[14,3380,3381],{},[17,3382],{"alt":19,"src":3383},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image996.webp",[114,3385,3387],{"className":1693,"code":3386,"language":1695,"meta":19,"style":19},"#include \"rclcpp/rclcpp.hpp\"\n\nusing namespace std::chrono_literals;\n\nclass MyNode: public rclcpp::Node\n{\n  public:\n    MyNode():Node(\"time_node_cpp\")\n    {\n      RCLCPP_INFO(this->get_logger(),\"Hello World!\");\n      // demo_rate();\n      demo_time();\n    }\n  private:\n    void demo_rate()\n    {\n      rclcpp::Rate rate1(500ms);\n      rclcpp::Rate rate2(1.0);\n      // while(rclcpp::ok())\n      // {\n      //   RCLCPP_INFO(this->get_logger(),\"休眠500ms\");\n      //   rate1.sleep();\n      // }\n      while(rclcpp::ok())\n      {\n        RCLCPP_INFO(this->get_logger(),\"休眠1000ms\");\n        rate2.sleep();\n      }\n    }\n\n    void demo_time()\n    {\n      rclcpp::Time time1(500000000L);\n      rclcpp::Time time2(2,500000000L);\n      rclcpp::Time right_now_1 = this->get_clock()->now();\n      rclcpp::Time right_now_2 = this->now();\n\n      RCLCPP_INFO(this->get_logger(),\"s = %.2f , ns = %ld\",time1.seconds(),time1.nanoseconds());\n      RCLCPP_INFO(this->get_logger(),\"s = %.2f , ns = %ld\",time2.seconds(),time2.nanoseconds());\n      RCLCPP_INFO(this->get_logger(),\"s = %.2f , ns = %ld\",right_now_1.seconds(),right_now_1.nanoseconds());\n      RCLCPP_INFO(this->get_logger(),\"s = %.2f , ns = %ld\",right_now_2.seconds(),right_now_2.nanoseconds());\n    }\n};\n\nint main(int argc, char ** argv)\n{\n  rclcpp::init(argc,argv);\n\n  auto node = std::make_shared\u003CMyNode>();\n\n  rclcpp::spin(node);\n\n  rclcpp::shutdown();\n  return 0;\n}\n",[120,3388,3389,3395,3399,3413,3417,3433,3437,3441,3455,3459,3477,3482,3489,3493,3497,3505,3509,3525,3539,3543,3547,3551,3555,3559,3573,3577,3595,3603,3607,3611,3615,3624,3628,3648,3670,3694,3711,3715,3759,3795,3831,3867,3872,3877,3882,3905,3910,3921,3926,3947,3952,3963,3968,3979,3988],{"__ignoreMap":19},[123,3390,3391,3393],{"class":125,"line":126},[123,3392,1702],{"class":129},[123,3394,1705],{"class":160},[123,3396,3397],{"class":125,"line":260},[123,3398,264],{"emptyLinePlaceholder":263},[123,3400,3401,3403,3405,3407,3409,3411],{"class":125,"line":267},[123,3402,2573],{"class":129},[123,3404,1492],{"class":129},[123,3406,1872],{"class":250},[123,3408,1728],{"class":133},[123,3410,2962],{"class":250},[123,3412,1931],{"class":133},[123,3414,3415],{"class":125,"line":279},[123,3416,264],{"emptyLinePlaceholder":263},[123,3418,3419,3421,3423,3425,3427,3429,3431],{"class":125,"line":290},[123,3420,1714],{"class":129},[123,3422,1717],{"class":250},[123,3424,1213],{"class":133},[123,3426,1722],{"class":129},[123,3428,1725],{"class":250},[123,3430,1728],{"class":133},[123,3432,1731],{"class":250},[123,3434,3435],{"class":125,"line":295},[123,3436,1736],{"class":133},[123,3438,3439],{"class":125,"line":310},[123,3440,1741],{"class":129},[123,3442,3443,3445,3447,3449,3451,3453],{"class":125,"line":323},[123,3444,1746],{"class":250},[123,3446,1749],{"class":133},[123,3448,1752],{"class":250},[123,3450,1755],{"class":133},[123,3452,3005],{"class":160},[123,3454,899],{"class":133},[123,3456,3457],{"class":125,"line":336},[123,3458,1770],{"class":133},[123,3460,3461,3463,3465,3467,3469,3471,3473,3475],{"class":125,"line":348},[123,3462,1775],{"class":250},[123,3464,1755],{"class":133},[123,3466,1780],{"class":140},[123,3468,1783],{"class":133},[123,3470,1786],{"class":250},[123,3472,1789],{"class":133},[123,3474,1792],{"class":160},[123,3476,1795],{"class":133},[123,3478,3479],{"class":125,"line":353},[123,3480,3481],{"class":3101},"      // demo_rate();\n",[123,3483,3484,3487],{"class":125,"line":359},[123,3485,3486],{"class":250},"      demo_time",[123,3488,1919],{"class":133},[123,3490,3491],{"class":125,"line":364},[123,3492,1800],{"class":133},[123,3494,3495],{"class":125,"line":374},[123,3496,2696],{"class":129},[123,3498,3499,3501,3503],{"class":125,"line":384},[123,3500,3049],{"class":129},[123,3502,3052],{"class":250},[123,3504,3055],{"class":133},[123,3506,3507],{"class":125,"line":396},[123,3508,1770],{"class":133},[123,3510,3511,3513,3515,3517,3519,3521,3523],{"class":125,"line":408},[123,3512,3064],{"class":250},[123,3514,3067],{"class":133},[123,3516,3070],{"class":250},[123,3518,1755],{"class":133},[123,3520,3075],{"class":140},[123,3522,3078],{"class":129},[123,3524,1795],{"class":133},[123,3526,3527,3529,3531,3533,3535,3537],{"class":125,"line":420},[123,3528,3064],{"class":250},[123,3530,3067],{"class":133},[123,3532,3089],{"class":250},[123,3534,1755],{"class":133},[123,3536,3094],{"class":140},[123,3538,1795],{"class":133},[123,3540,3541],{"class":125,"line":1904},[123,3542,3102],{"class":3101},[123,3544,3545],{"class":125,"line":1909},[123,3546,3107],{"class":3101},[123,3548,3549],{"class":125,"line":1922},[123,3550,3112],{"class":3101},[123,3552,3553],{"class":125,"line":1934},[123,3554,3117],{"class":3101},[123,3556,3557],{"class":125,"line":2462},[123,3558,3122],{"class":3101},[123,3560,3561,3563,3565,3567,3569,3571],{"class":125,"line":2468},[123,3562,3127],{"class":129},[123,3564,1755],{"class":133},[123,3566,3132],{"class":250},[123,3568,1728],{"class":133},[123,3570,3137],{"class":250},[123,3572,3140],{"class":133},[123,3574,3575],{"class":125,"line":2479},[123,3576,3145],{"class":133},[123,3578,3579,3581,3583,3585,3587,3589,3591,3593],{"class":125,"line":2802},[123,3580,3150],{"class":250},[123,3582,1755],{"class":133},[123,3584,1780],{"class":140},[123,3586,1783],{"class":133},[123,3588,1786],{"class":250},[123,3590,1789],{"class":133},[123,3592,3163],{"class":160},[123,3594,1795],{"class":133},[123,3596,3597,3599,3601],{"class":125,"line":2813},[123,3598,3170],{"class":133},[123,3600,3173],{"class":250},[123,3602,1919],{"class":133},[123,3604,3605],{"class":125,"line":2822},[123,3606,3180],{"class":133},[123,3608,3609],{"class":125,"line":3187},[123,3610,1800],{"class":133},[123,3612,3613],{"class":125,"line":3192},[123,3614,264],{"emptyLinePlaceholder":263},[123,3616,3617,3619,3622],{"class":125,"line":3197},[123,3618,3049],{"class":129},[123,3620,3621],{"class":250}," demo_time",[123,3623,3055],{"class":133},[123,3625,3626],{"class":125,"line":3220},[123,3627,1770],{"class":133},[123,3629,3630,3632,3635,3638,3640,3643,3646],{"class":125,"line":3225},[123,3631,3064],{"class":250},[123,3633,3634],{"class":133},"::Time ",[123,3636,3637],{"class":250},"time1",[123,3639,1755],{"class":133},[123,3641,3642],{"class":140},"500000000",[123,3644,3645],{"class":129},"L",[123,3647,1795],{"class":133},[123,3649,3650,3652,3654,3657,3659,3662,3664,3666,3668],{"class":125,"line":3236},[123,3651,3064],{"class":250},[123,3653,3634],{"class":133},[123,3655,3656],{"class":250},"time2",[123,3658,1755],{"class":133},[123,3660,3661],{"class":140},"2",[123,3663,1003],{"class":133},[123,3665,3642],{"class":140},[123,3667,3645],{"class":129},[123,3669,1795],{"class":133},[123,3671,3672,3674,3677,3679,3681,3683,3686,3689,3692],{"class":125,"line":3241},[123,3673,3064],{"class":250},[123,3675,3676],{"class":133},"::Time right_now_1 ",[123,3678,137],{"class":129},[123,3680,2664],{"class":140},[123,3682,1783],{"class":133},[123,3684,3685],{"class":250},"get_clock",[123,3687,3688],{"class":133},"()->",[123,3690,3691],{"class":250},"now",[123,3693,1919],{"class":133},[123,3695,3696,3698,3701,3703,3705,3707,3709],{"class":125,"line":3262},[123,3697,3064],{"class":250},[123,3699,3700],{"class":133},"::Time right_now_2 ",[123,3702,137],{"class":129},[123,3704,2664],{"class":140},[123,3706,1783],{"class":133},[123,3708,3691],{"class":250},[123,3710,1919],{"class":133},[123,3712,3713],{"class":125,"line":3267},[123,3714,264],{"emptyLinePlaceholder":263},[123,3716,3717,3719,3721,3723,3725,3727,3729,3732,3735,3738,3741,3744,3747,3750,3753,3756],{"class":125,"line":3278},[123,3718,1775],{"class":250},[123,3720,1755],{"class":133},[123,3722,1780],{"class":140},[123,3724,1783],{"class":133},[123,3726,1786],{"class":250},[123,3728,1789],{"class":133},[123,3730,3731],{"class":160},"\"s = ",[123,3733,3734],{"class":140},"%.2f",[123,3736,3737],{"class":160}," , ns = ",[123,3739,3740],{"class":140},"%ld",[123,3742,3743],{"class":160},"\"",[123,3745,3746],{"class":133},",time1.",[123,3748,3749],{"class":250},"seconds",[123,3751,3752],{"class":133},"(),time1.",[123,3754,3755],{"class":250},"nanoseconds",[123,3757,3758],{"class":133},"());\n",[123,3760,3761,3763,3765,3767,3769,3771,3773,3775,3777,3779,3781,3783,3786,3788,3791,3793],{"class":125,"line":3283},[123,3762,1775],{"class":250},[123,3764,1755],{"class":133},[123,3766,1780],{"class":140},[123,3768,1783],{"class":133},[123,3770,1786],{"class":250},[123,3772,1789],{"class":133},[123,3774,3731],{"class":160},[123,3776,3734],{"class":140},[123,3778,3737],{"class":160},[123,3780,3740],{"class":140},[123,3782,3743],{"class":160},[123,3784,3785],{"class":133},",time2.",[123,3787,3749],{"class":250},[123,3789,3790],{"class":133},"(),time2.",[123,3792,3755],{"class":250},[123,3794,3758],{"class":133},[123,3796,3797,3799,3801,3803,3805,3807,3809,3811,3813,3815,3817,3819,3822,3824,3827,3829],{"class":125,"line":3294},[123,3798,1775],{"class":250},[123,3800,1755],{"class":133},[123,3802,1780],{"class":140},[123,3804,1783],{"class":133},[123,3806,1786],{"class":250},[123,3808,1789],{"class":133},[123,3810,3731],{"class":160},[123,3812,3734],{"class":140},[123,3814,3737],{"class":160},[123,3816,3740],{"class":140},[123,3818,3743],{"class":160},[123,3820,3821],{"class":133},",right_now_1.",[123,3823,3749],{"class":250},[123,3825,3826],{"class":133},"(),right_now_1.",[123,3828,3755],{"class":250},[123,3830,3758],{"class":133},[123,3832,3833,3835,3837,3839,3841,3843,3845,3847,3849,3851,3853,3855,3858,3860,3863,3865],{"class":125,"line":3303},[123,3834,1775],{"class":250},[123,3836,1755],{"class":133},[123,3838,1780],{"class":140},[123,3840,1783],{"class":133},[123,3842,1786],{"class":250},[123,3844,1789],{"class":133},[123,3846,3731],{"class":160},[123,3848,3734],{"class":140},[123,3850,3737],{"class":160},[123,3852,3740],{"class":140},[123,3854,3743],{"class":160},[123,3856,3857],{"class":133},",right_now_2.",[123,3859,3749],{"class":250},[123,3861,3862],{"class":133},"(),right_now_2.",[123,3864,3755],{"class":250},[123,3866,3758],{"class":133},[123,3868,3870],{"class":125,"line":3869},42,[123,3871,1800],{"class":133},[123,3873,3875],{"class":125,"line":3874},43,[123,3876,1805],{"class":133},[123,3878,3880],{"class":125,"line":3879},44,[123,3881,264],{"emptyLinePlaceholder":263},[123,3883,3885,3887,3889,3891,3893,3895,3897,3899,3901,3903],{"class":125,"line":3884},45,[123,3886,1814],{"class":129},[123,3888,1817],{"class":250},[123,3890,1755],{"class":133},[123,3892,1814],{"class":129},[123,3894,1824],{"class":994},[123,3896,1827],{"class":133},[123,3898,1830],{"class":129},[123,3900,1833],{"class":129},[123,3902,1836],{"class":994},[123,3904,899],{"class":133},[123,3906,3908],{"class":125,"line":3907},46,[123,3909,1736],{"class":133},[123,3911,3913,3915,3917,3919],{"class":125,"line":3912},47,[123,3914,1847],{"class":250},[123,3916,1728],{"class":133},[123,3918,1852],{"class":250},[123,3920,1855],{"class":133},[123,3922,3924],{"class":125,"line":3923},48,[123,3925,264],{"emptyLinePlaceholder":263},[123,3927,3929,3931,3933,3935,3937,3939,3941,3943,3945],{"class":125,"line":3928},49,[123,3930,1864],{"class":129},[123,3932,1867],{"class":133},[123,3934,137],{"class":129},[123,3936,1872],{"class":250},[123,3938,1728],{"class":133},[123,3940,1877],{"class":250},[123,3942,1102],{"class":133},[123,3944,1882],{"class":250},[123,3946,1885],{"class":133},[123,3948,3950],{"class":125,"line":3949},50,[123,3951,264],{"emptyLinePlaceholder":263},[123,3953,3955,3957,3959,3961],{"class":125,"line":3954},51,[123,3956,1847],{"class":250},[123,3958,1728],{"class":133},[123,3960,1898],{"class":250},[123,3962,1901],{"class":133},[123,3964,3966],{"class":125,"line":3965},52,[123,3967,264],{"emptyLinePlaceholder":263},[123,3969,3971,3973,3975,3977],{"class":125,"line":3970},53,[123,3972,1847],{"class":250},[123,3974,1728],{"class":133},[123,3976,1916],{"class":250},[123,3978,1919],{"class":133},[123,3980,3982,3984,3986],{"class":125,"line":3981},54,[123,3983,1925],{"class":129},[123,3985,1928],{"class":140},[123,3987,1931],{"class":133},[123,3989,3991],{"class":125,"line":3990},55,[123,3992,1937],{"class":133},[27,3994],{},[14,3996,3997],{},[17,3998],{"alt":19,"src":3999},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image997.webp",[14,4001,4002],{},[17,4003],{"alt":19,"src":4004},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image998.webp",[14,4006,4007],{},[17,4008],{"alt":19,"src":4009},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image999.webp",[14,4011,4012],{},"和Time类似",[14,4014,4015],{},"但是不完全相同，这个duration用到了chrono。",[14,4017,4018],{},[17,4019],{"alt":19,"src":4020},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1000.webp",[14,4022,4023],{},[17,4024],{"alt":19,"src":4025},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1001.webp",[14,4027,4028],{},[17,4029],{"alt":19,"src":4030},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1002.webp",[27,4032],{},[14,4034,4035],{},[17,4036],{"alt":19,"src":4037},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1003.webp",[14,4039,4040],{},[17,4041],{"alt":19,"src":4042},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1004.webp",[14,4044,4045],{},[17,4046],{"alt":19,"src":4047},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1005.webp",[14,4049,4050],{},"t2和t1可以进行相减，结果是一个duration类型的，但是不能相加。",[14,4052,4053],{},"time也可以和duration相加相减，结果是一个time。",[14,4055,4056],{},[17,4057],{"alt":19,"src":4058},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1006.webp",[14,4060,4061],{},[17,4062],{"alt":19,"src":4063},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1007.webp",[14,4065,4066],{},[17,4067],{"alt":19,"src":4068},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1008.webp",[14,4070,4071],{},[17,4072],{"alt":19,"src":4073},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1009.webp",[14,4075,4076],{},[17,4077],{"alt":19,"src":4078},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1010.webp",[14,4080,4081],{},[17,4082],{"alt":19,"src":4083},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1011.webp",[10,4085,4086],{"id":4086},"通信机制工具",[4088,4089,4090],"h4",{"id":4090},"命令行",[14,4092,4093],{},[17,4094],{"alt":19,"src":4095},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1012.webp",[14,4097,4098],{},[17,4099],{"alt":19,"src":4100},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1013.webp",[27,4102],{},[14,4104,4105],{},[17,4106],{"alt":19,"src":4107},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1014.webp",[14,4109,4110],{},"ros2 doctor是来检测系统网络状态、版本兼容性等状态的。",[14,4112,4113],{},[17,4114],{"alt":19,"src":4115},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1015.webp",[14,4117,4118],{},[17,4119],{"alt":19,"src":4120},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1016.webp",[14,4122,4123],{},"是通过了的，但是有几个警告：版本过低，不影响正常使用。",[14,4125,4126],{},[17,4127],{"alt":19,"src":4128},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1017.webp",[14,4130,4131],{},[17,4132],{"alt":19,"src":4133},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1018.webp",[14,4135,4136],{},[17,4137],{"alt":19,"src":4138},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1019.webp",[14,4140,4141],{},[17,4142],{"alt":19,"src":4143},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1020.webp",[14,4145,4146],{},[17,4147],{"alt":19,"src":4148},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1021.webp",[14,4150,4151],{},"参数服务端的本质还是服务端，所以也会列在Service Servers里。",[27,4153],{},[14,4155,4156],{},[17,4157],{"alt":19,"src":4158},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1022.webp",[14,4160,4161],{},[17,4162],{"alt":19,"src":4163},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1023.webp",[14,4165,4166],{},"如果查看list发现有一些接口文件没显示，那说明你的这个终端的环境变量没刷新。",[14,4168,4169],{},[17,4170],{"alt":19,"src":4171},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1024.webp",[14,4173,4174],{},[17,4175],{"alt":19,"src":4176},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1025.webp",[14,4178,4179],{},"proto比show更精简一些。",[27,4181],{},[14,4183,4184],{},[17,4185],{"alt":19,"src":4186},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1026.webp",[14,4188,4189],{},[17,4190],{"alt":19,"src":4191},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1027.webp",[14,4193,4194],{},"pose是发送位姿的，会一直发数据。",[14,4196,4197],{},[17,4198],{"alt":19,"src":4199},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1028.webp",[14,4201,4202],{},[17,4203],{"alt":19,"src":4204},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1029.webp",[14,4206,4207],{},[17,4208],{"alt":19,"src":4209},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1030.webp",[14,4211,4212],{},[78,4213,4214],{},"想输出延时，消息必须有消息头。",[14,4216,4217],{},[17,4218],{"alt":19,"src":4219},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1031.webp",[14,4221,4222],{},"输出实时位姿",[14,4224,4225],{},[17,4226],{"alt":19,"src":4227},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1032.webp",[14,4229,4230],{},[17,4231],{"alt":19,"src":4232},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1033.webp",[14,4234,4235],{},"find和type是相反着来的。",[14,4237,4238],{},[17,4239],{"alt":19,"src":4240},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1034.webp",[14,4242,4243],{},"消息发布频率是不断变动的，消息频率是可以通过定时器来控制，但是定时器是有误差的，并不是特别特别精准。当然还有网络也是一大影响因素。",[14,4245,4246],{},[17,4247],{"alt":19,"src":4248},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1035.webp",[14,4250,4251],{},"ros2 topic pub -r 发布消息的频率 话题名称 消息 具体的指令（要用json格式）",[14,4253,4254],{},[17,4255],{"alt":19,"src":4256},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1036.webp",[14,4258,4259],{},[17,4260],{"alt":19,"src":4261},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1037.webp",[14,4263,4264],{},[17,4265],{"alt":19,"src":4266},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1038.webp",[14,4268,4269],{},[17,4270],{"alt":19,"src":4271},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1039.webp",[27,4273],{},[14,4275,4276],{},[17,4277],{"alt":19,"src":4278},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1040.webp",[14,4280,4281],{},[17,4282],{"alt":19,"src":4283},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1041.webp",[14,4285,4286],{},"clear是清除乌龟轨迹",[14,4288,4289],{},"kill是杀乌龟",[14,4291,4292],{},"reset是将乌龟位置重置",[14,4294,4295],{},"spawn是产卵，生成新乌龟",[14,4297,4298],{},[17,4299],{"alt":19,"src":4300},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1042.webp",[14,4302,4303],{},"可以按Tab补齐",[14,4305,4306],{},[17,4307],{"alt":19,"src":4308},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1043.webp",[14,4310,4311],{},[17,4312],{"alt":19,"src":4313},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1044.webp",[14,4315,4316],{},"type和find是相反的",[14,4318,4319],{},[17,4320],{"alt":19,"src":4321},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1045.webp",[14,4323,4324],{},"empty就是空，所以我们后面内容啥都不用写。",[14,4326,4327],{},[17,4328],{"alt":19,"src":4329},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1046.webp",[14,4331,4332],{},[17,4333],{"alt":19,"src":4334},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1047.webp",[27,4336],{},[14,4338,4339],{},[17,4340],{"alt":19,"src":4341},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1048.webp",[14,4343,4344,4347],{},[17,4345],{"alt":19,"src":4346},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1049.webp",[17,4348],{"alt":19,"src":4349},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1050.webp",[14,4351,4352],{},[17,4353],{"alt":19,"src":4354},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1051.webp",[14,4356,4357],{},"可以加上-f或者-feedback打开连续反馈，这个连续反馈是航向角弧度",[14,4359,4360,4363],{},[17,4361],{"alt":19,"src":4362},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1052.webp",[17,4364],{"alt":19,"src":4365},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1053.webp",[27,4367],{},[14,4369,4370],{},[17,4371],{"alt":19,"src":4372},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1054.webp",[14,4374,4375],{},[17,4376],{"alt":19,"src":4377},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1055.webp",[14,4379,4380],{},[17,4381],{"alt":19,"src":4382},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1056.webp",[14,4384,4385],{},[17,4386],{"alt":19,"src":4387},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1057.webp",[14,4389,4390],{},[17,4391],{"alt":19,"src":4392},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1058.webp",[14,4394,4395],{},"删除不是所有参数都能删除，这里提示不能删除静态类型参数。",[14,4397,4398],{},[17,4399],{"alt":19,"src":4400},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1059.webp",[14,4402,4403],{},"最大值255，最小取值0",[14,4405,4406],{},"步长1",[14,4408,4409],{},[17,4410],{"alt":19,"src":4411},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1060.webp",[14,4413,4414],{},"可以显示在终端上，",[14,4416,4417],{},[17,4418],{"alt":19,"src":4419},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1061.webp",[14,4421,4422],{},[17,4423],{"alt":19,"src":4424},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1062.webp",[14,4426,4427],{},"也可以写入磁盘",[14,4429,4430],{},[17,4431],{"alt":19,"src":4432},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1063.webp",[14,4434,4435],{},[17,4436],{"alt":19,"src":4437},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1064.webp",[14,4439,4440],{},"当然也可以修改",[14,4442,4443],{},[17,4444],{"alt":19,"src":4445},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1065.webp",[14,4447,4448],{},[17,4449],{"alt":19,"src":4450},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1066.webp",[14,4452,4453],{},[17,4454],{"alt":19,"src":4455},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1067.webp",[14,4457,4458],{},[17,4459],{"alt":19,"src":4460},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1068.webp",[14,4462,4463],{},[17,4464],{"alt":19,"src":4465},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1069.webp",[14,4467,4468],{},"也可以用ROS2 RUN来修改，--ros-args -p 后面跟 键:=值",[14,4470,4471],{},[17,4472],{"alt":19,"src":4473},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1070.webp",[14,4475,4476],{},[17,4477],{"alt":19,"src":4478},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1071.webp",[14,4480,4481],{},[17,4482],{"alt":19,"src":4483},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1072.webp",[14,4485,4486],{},"ROS2 RUN也可以直接读取磁盘文件",[14,4488,4489],{},[17,4490],{"alt":19,"src":4491},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1073.webp",[4088,4493,4495],{"id":4494},"rqt工具箱","Rqt工具箱",[14,4497,4498],{},[17,4499],{"alt":19,"src":4500},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1074.webp",[14,4502,4503],{},[17,4504],{"alt":19,"src":4505},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1075.webp",[14,4507,4508],{},[17,4509],{"alt":19,"src":4510},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1076.webp",[14,4512,4513],{},[17,4514],{"alt":19,"src":4515},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1077.webp",[14,4517,4518],{},[17,4519],{"alt":19,"src":4520},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1078.webp",[14,4522,4523],{},[17,4524],{"alt":19,"src":4525},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1079.webp",[14,4527,4528],{},[17,4529],{"alt":19,"src":4530},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1080.webp",[27,4532],{},[14,4534,4535],{},[17,4536],{"alt":19,"src":4537},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1081.webp",[14,4539,4540],{},[17,4541],{"alt":19,"src":4542},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1082.webp",[14,4544,4545],{},"这个是显示两个节点之间关系的。",[27,4547],{},[14,4549,4550],{},[17,4551],{"alt":19,"src":4552},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1083.webp",[14,4554,4555],{},[17,4556],{"alt":19,"src":4557},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1084.webp",[14,4559,4560],{},"这个是用来发布消息的。",[14,4562,4563],{},[17,4564],{"alt":19,"src":4565},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1085.webp",[14,4567,4568],{},"点击添加按钮",[14,4570,4571],{},[17,4572],{"alt":19,"src":4573},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1086.webp",[14,4575,4576],{},"可以设置线速度和角速度，频率等",[14,4578,4579],{},[17,4580],{"alt":19,"src":4581},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1087.webp",[14,4583,4584],{},"设置好参数后勾选",[14,4586,4587],{},[17,4588],{"alt":19,"src":4589},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1088.webp",[14,4591,4592],{},[17,4593],{"alt":19,"src":4594},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1089.webp",[27,4596],{},[14,4598,4599],{},[17,4600],{"alt":19,"src":4601},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1090.webp",[14,4603,4604],{},[17,4605],{"alt":19,"src":4606},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1091.webp",[14,4608,4609],{},"call /clear这个是清除轨迹的。",[14,4611,4612],{},[17,4613],{"alt":19,"src":4614},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1092.webp",[14,4616,4617],{},"也可以产卵，设置好参数",[14,4619,4620],{},[17,4621],{"alt":19,"src":4622},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1093.webp",[14,4624,4625],{},[17,4626],{"alt":19,"src":4627},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1094.webp",[27,4629],{},[14,4631,4632],{},[17,4633],{"alt":19,"src":4634},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1095.webp",[14,4636,4637],{},"这个可以直接修改参数",[14,4639,4640],{},[17,4641],{"alt":19,"src":4642},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1096.webp",[27,4644],{},[14,4646,4647],{},"我们不能用rqt代替命令行，虽然rqt更方便，但是因为我们在工作中是远程控制机器人的，我们是通过terminal来远程控制机器人，所以，命令行很重要，这样不能使用rqt。",[4649,4650,4651],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":19,"searchDepth":260,"depth":260,"links":4653},[4654,4655,4656,4657,4658,4659,4660,4661],{"id":12,"depth":267,"text":12},{"id":74,"depth":267,"text":74},{"id":486,"depth":267,"text":486},{"id":539,"depth":267,"text":539},{"id":660,"depth":267,"text":660},{"id":1960,"depth":267,"text":1960},{"id":2871,"depth":267,"text":2872},{"id":4086,"depth":267,"text":4086},"5",5000000,"2023-12-30","2023-12-30-ros2-tutorial","/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md",false,null,{},"/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi",{"title":5,"description":19},"wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","b1VWmKvW_xDxVWFWEdAQ8W_16-kQ6tRwuKFdN0ZgY0c",[4677,4683,4688,4694,4700,4706,4712,4718,4724,4730,4736,4742,4748,4754,4760,4766,4771,4777,4783,4789,4790,4796,4802,4808,4814],{"path":4678,"stem":4679,"title":4680,"date":4664,"chapter":4681,"chapterSort":4682,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","ROS2介绍","1",1000000,{"path":4684,"stem":4685,"title":4686,"date":4664,"chapter":2685,"chapterSort":4687,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2仿真平台",10000000,{"path":4689,"stem":4690,"title":4691,"date":4664,"chapter":4692,"chapterSort":4693,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":4695,"stem":4696,"title":4697,"date":4664,"chapter":4698,"chapterSort":4699,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4701,"stem":4702,"title":4703,"date":4664,"chapter":4704,"chapterSort":4705,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4707,"stem":4708,"title":4709,"date":4664,"chapter":4710,"chapterSort":4711,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4713,"stem":4714,"title":4715,"date":4664,"chapter":4716,"chapterSort":4717,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gezebo仿真平台","11",11000000,{"path":4719,"stem":4720,"title":4721,"date":4664,"chapter":4722,"chapterSort":4723,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4725,"stem":4726,"title":4727,"date":4664,"chapter":4728,"chapterSort":4729,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch13-ros2serial","wiki/2023-12-30-ros2-tutorial/ch13-ROS2Serial","ROS2 Serial","13",13000000,{"path":4731,"stem":4732,"title":4733,"date":4664,"chapter":4734,"chapterSort":4735,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","机器人硬件","14",14000000,{"path":4737,"stem":4738,"title":4739,"date":4664,"chapter":4740,"chapterSort":4741,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":4743,"stem":4744,"title":4745,"date":4664,"chapter":4746,"chapterSort":4747,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4749,"stem":4750,"title":4751,"date":4664,"chapter":4752,"chapterSort":4753,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4755,"stem":4756,"title":4757,"date":4664,"chapter":4758,"chapterSort":4759,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch18-microros","wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":4761,"stem":4762,"title":4763,"date":4664,"chapter":4764,"chapterSort":4765,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots仿真平台","19",19000000,{"path":4767,"stem":4768,"title":4769,"date":4664,"chapter":3661,"chapterSort":4770,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","wiki/2023-12-30-ros2-tutorial/ch2-入门操作","入门操作",2000000,{"path":4772,"stem":4773,"title":4774,"date":4664,"chapter":4775,"chapterSort":4776,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch20-opencv","wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","OpenCV","20",20000000,{"path":4778,"stem":4779,"title":4780,"date":4664,"chapter":4781,"chapterSort":4782,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4784,"stem":4785,"title":4786,"date":4664,"chapter":4787,"chapterSort":4788,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","wiki/2023-12-30-ros2-tutorial/ch4-四大通信","四大通信","4",4000000,{"path":4672,"stem":4674,"title":5,"date":4664,"chapter":4662,"chapterSort":4663,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},{"path":4791,"stem":4792,"title":4793,"date":4664,"chapter":4794,"chapterSort":4795,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch6-launch","wiki/2023-12-30-ros2-tutorial/ch6-Launch","Launch","6",6000000,{"path":4797,"stem":4798,"title":4799,"date":4664,"chapter":4800,"chapterSort":4801,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","回溯rosbag2","7",7000000,{"path":4803,"stem":4804,"title":4805,"date":4664,"chapter":4806,"chapterSort":4807,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","坐标变换TF","8",8000000,{"path":4809,"stem":4810,"title":4811,"date":4664,"chapter":4812,"chapterSort":4813,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":4669},"/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":4666,"stem":4815,"title":4816,"date":4664,"chapter":4670,"chapterSort":4817,"docKey":4665,"docRoot":4666,"docTitle":4667,"isWikiDoc":263,"isWikiIndex":263},"wiki/2023-12-30-ros2-tutorial/index","ROS2机器人操作系统教程",0,1778560328723]