[{"data":1,"prerenderedAt":4540},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch":3,"wiki-doc-items-/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch":4172,"language-switcher-data-/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch":4524,"wiki-i18n-paths-/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch":4539},{"id":4,"title":5,"body":6,"canonicalPath":4153,"chapter":4154,"chapterSort":4155,"date":4156,"description":20,"docI18nKey":4157,"docKey":4158,"docRoot":4159,"docTitle":4160,"extension":4161,"i18nKey":4162,"isBlogPost":4163,"isWikiDoc":161,"isWikiIndex":4163,"layout":4164,"legacyPath":4164,"locale":4165,"localeSlug":4166,"meta":4167,"navigation":161,"path":4153,"seo":4168,"sourcePath":4169,"sourceStem":4162,"stem":4170,"wikiDepth":87,"__hash__":4171},"content/_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch6-Launch.md","Launch",{"type":7,"value":8,"toc":4138},"minimark",[9,14,22,25,28,33,38,43,46,51,56,61,66,71,74,115,120,362,366,371,376,381,386,391,396,401,406,408,413,416,421,426,431,434,439,444,621,626,631,636,641,731,736,741,823,828,833,836,841,846,850,855,860,865,870,873,878,885,890,895,900,903,908,911,916,921,924,929,932,937,942,945,950,974,979,984,987,992,997,1002,1007,1010,1015,1020,1023,1028,1033,1036,1041,1046,1049,1054,1059,1064,1412,1417,1422,1425,1430,1433,1436,1771,1776,1779,1783,1788,1793,1798,1803,1806,1811,1814,1819,1822,1827,1832,2103,2108,2111,2113,2118,2123,2128,2131,2410,2415,2419,2424,2429,2434,2439,2444,2449,2454,2459,2462,2467,2474,2477,2482,2487,2492,2830,2834,2839,2842,2847,2852,2857,2860,2863,2866,2871,2874,2879,2884,2887,2892,2897,2902,2907,2912,2915,2920,2925,2930,3226,3230,3235,3240,3245,3250,3255,3260,3265,3626,3630,3635,3640,3643,3648,3650,3655,3660,3665,3668,3673,3678,3683,3688,3691,3696,3699,3702,3707,3712,3717,3722,4103,4108,4111,4114,4118,4122,4126,4130,4134],[10,11,13],"h3",{"id":12},"overview","Overview",[15,16,17],"p",{},[18,19],"img",{"alt":20,"src":21},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1097.webp",[15,23,24],{},"The purpose of rosbag2 is to serialize and store data; it is a database.",[26,27],"hr",{},[15,29,30],{},[18,31],{"alt":20,"src":32},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1098.webp",[15,34,35],{},[18,36],{"alt":20,"src":37},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1099.webp",[15,39,40],{},[18,41],{"alt":20,"src":42},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1100.webp",[15,44,45],{},"ros2 launch package_name launch_file_name",[15,47,48],{},[18,49],{"alt":20,"src":50},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1101.webp",[15,52,53],{},[18,54],{"alt":20,"src":55},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1102.webp",[15,57,58],{},[18,59],{"alt":20,"src":60},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1103.webp",[15,62,63],{},[18,64],{"alt":20,"src":65},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1104.webp",[15,67,68],{},[18,69],{"alt":20,"src":70},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1105.webp",[15,72,73],{},"ros2 pkg create cpp01_launch --build-type ament_cmake --dependencies rclcpp",[75,76,80],"pre",{"className":77,"code":78,"language":79,"meta":20,"style":20},"language-bash shiki shiki-themes github-light github-dark","ros2 pkg create cpp01_launch --build-type ament_cmake --dependencies rclcpp\n","bash",[81,82,83],"code",{"__ignoreMap":20},[84,85,88,92,96,99,102,106,109,112],"span",{"class":86,"line":87},"line",1,[84,89,91],{"class":90},"sScJk","ros2",[84,93,95],{"class":94},"sZZnC"," pkg",[84,97,98],{"class":94}," create",[84,100,101],{"class":94}," cpp01_launch",[84,103,105],{"class":104},"sj4cs"," --build-type",[84,107,108],{"class":94}," ament_cmake",[84,110,111],{"class":104}," --dependencies",[84,113,114],{"class":94}," rclcpp\n",[15,116,117],{},[18,118],{"alt":20,"src":119},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1106.webp",[75,121,125],{"className":122,"code":123,"language":124,"meta":20,"style":20},"language-python shiki shiki-themes github-light github-dark","from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n    return LaunchDescription([])\n","python",[81,126,127,143,156,163,169,182,195,201,213,225,231,243,256,262,274,286,292,305,317,323,336,341,353],{"__ignoreMap":20},[84,128,129,133,137,140],{"class":86,"line":87},[84,130,132],{"class":131},"szBVR","from",[84,134,136],{"class":135},"sVt8B"," launch ",[84,138,139],{"class":131},"import",[84,141,142],{"class":135}," LaunchDescription\n",[84,144,146,148,151,153],{"class":86,"line":145},2,[84,147,132],{"class":131},[84,149,150],{"class":135}," launch_ros.actions ",[84,152,139],{"class":131},[84,154,155],{"class":135}," Node\n",[84,157,159],{"class":86,"line":158},3,[84,160,162],{"emptyLinePlaceholder":161},true,"\n",[84,164,166],{"class":86,"line":165},4,[84,167,168],{"class":135},"封装终端指令相关类\n",[84,170,172,174,177,179],{"class":86,"line":171},5,[84,173,132],{"class":131},[84,175,176],{"class":135}," launch.actions ",[84,178,139],{"class":131},[84,180,181],{"class":135}," ExecuteProcess\n",[84,183,185,187,190,192],{"class":86,"line":184},6,[84,186,132],{"class":131},[84,188,189],{"class":135}," launch.substitutions ",[84,191,139],{"class":131},[84,193,194],{"class":135}," FindExecutable\n",[84,196,198],{"class":86,"line":197},7,[84,199,200],{"class":135},"参数声明与获取\n",[84,202,204,206,208,210],{"class":86,"line":203},8,[84,205,132],{"class":131},[84,207,176],{"class":135},[84,209,139],{"class":131},[84,211,212],{"class":135}," DeclareLaunchArgument\n",[84,214,216,218,220,222],{"class":86,"line":215},9,[84,217,132],{"class":131},[84,219,189],{"class":135},[84,221,139],{"class":131},[84,223,224],{"class":135}," LaunchConfiguration\n",[84,226,228],{"class":86,"line":227},10,[84,229,230],{"class":135},"文件包含相关\n",[84,232,234,236,238,240],{"class":86,"line":233},11,[84,235,132],{"class":131},[84,237,176],{"class":135},[84,239,139],{"class":131},[84,241,242],{"class":135}," IncludeLaunchDescription\n",[84,244,246,248,251,253],{"class":86,"line":245},12,[84,247,132],{"class":131},[84,249,250],{"class":135}," launch.launch_description_sources ",[84,252,139],{"class":131},[84,254,255],{"class":135}," PythonLaunchDescriptionSource\n",[84,257,259],{"class":86,"line":258},13,[84,260,261],{"class":135},"分组相关\n",[84,263,265,267,269,271],{"class":86,"line":264},14,[84,266,132],{"class":131},[84,268,150],{"class":135},[84,270,139],{"class":131},[84,272,273],{"class":135}," PushRosNamespace\n",[84,275,277,279,281,283],{"class":86,"line":276},15,[84,278,132],{"class":131},[84,280,176],{"class":135},[84,282,139],{"class":131},[84,284,285],{"class":135}," GroupAction\n",[84,287,289],{"class":86,"line":288},16,[84,290,291],{"class":135},"事件相关\n",[84,293,295,297,300,302],{"class":86,"line":294},17,[84,296,132],{"class":131},[84,298,299],{"class":135}," launch.event_handlers ",[84,301,139],{"class":131},[84,303,304],{"class":135}," OnProcessStart,OnProcessExit\n",[84,306,308,310,312,314],{"class":86,"line":307},18,[84,309,132],{"class":131},[84,311,176],{"class":135},[84,313,139],{"class":131},[84,315,316],{"class":135}," ExecuteProcess,RegisterEventHandler,LogInfo\n",[84,318,320],{"class":86,"line":319},19,[84,321,322],{"class":135},"获取功能包下share目录或路径\n",[84,324,326,328,331,333],{"class":86,"line":325},20,[84,327,132],{"class":131},[84,329,330],{"class":135}," ament_index_python.packages ",[84,332,139],{"class":131},[84,334,335],{"class":135}," get_package_share_directory\n",[84,337,339],{"class":86,"line":338},21,[84,340,162],{"emptyLinePlaceholder":161},[84,342,344,347,350],{"class":86,"line":343},22,[84,345,346],{"class":131},"def",[84,348,349],{"class":90}," generate_launch_description",[84,351,352],{"class":135},"():\n",[84,354,356,359],{"class":86,"line":355},23,[84,357,358],{"class":131},"    return",[84,360,361],{"class":135}," LaunchDescription([])\n",[10,363,365],{"id":364},"basic-launch-usage-process-c","Basic Launch Usage Process (C++)",[15,367,368],{},[18,369],{"alt":20,"src":370},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1107.webp",[15,372,373],{},[18,374],{"alt":20,"src":375},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1108.webp",[15,377,378],{},[18,379],{"alt":20,"src":380},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1109.webp",[15,382,383],{},[18,384],{"alt":20,"src":385},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1110.webp",[15,387,388],{},[18,389],{"alt":20,"src":390},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1111.webp",[15,392,393],{},[18,394],{"alt":20,"src":395},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1112.webp",[15,397,398],{},[18,399],{"alt":20,"src":400},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1113.webp",[15,402,403],{},[18,404],{"alt":20,"src":405},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1114.webp",[26,407],{},[15,409,410],{},[18,411],{"alt":20,"src":412},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1115.webp",[15,414,415],{},"After configuring this, no matter how many launch files are in my launch directory, I only need to configure it once.",[15,417,418],{},[18,419],{"alt":20,"src":420},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1116.webp",[15,422,423],{},[18,424],{"alt":20,"src":425},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1117.webp",[15,427,428],{},[18,429],{"alt":20,"src":430},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1118.webp",[15,432,433],{},"This shows that our CMake configuration is correct.",[15,435,436],{},[18,437],{"alt":20,"src":438},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1119.webp",[15,440,441],{},[18,442],{"alt":20,"src":443},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1120.webp",[75,445,447],{"className":122,"code":446,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n    return LaunchDescription([])\n",[81,448,449,459,469,473,483,493,497,507,517,521,531,541,545,555,565,569,579,589,593,603,607,615],{"__ignoreMap":20},[84,450,451,453,455,457],{"class":86,"line":87},[84,452,132],{"class":131},[84,454,136],{"class":135},[84,456,139],{"class":131},[84,458,142],{"class":135},[84,460,461,463,465,467],{"class":86,"line":145},[84,462,132],{"class":131},[84,464,150],{"class":135},[84,466,139],{"class":131},[84,468,155],{"class":135},[84,470,471],{"class":86,"line":158},[84,472,168],{"class":135},[84,474,475,477,479,481],{"class":86,"line":165},[84,476,132],{"class":131},[84,478,176],{"class":135},[84,480,139],{"class":131},[84,482,181],{"class":135},[84,484,485,487,489,491],{"class":86,"line":171},[84,486,132],{"class":131},[84,488,189],{"class":135},[84,490,139],{"class":131},[84,492,194],{"class":135},[84,494,495],{"class":86,"line":184},[84,496,200],{"class":135},[84,498,499,501,503,505],{"class":86,"line":197},[84,500,132],{"class":131},[84,502,176],{"class":135},[84,504,139],{"class":131},[84,506,212],{"class":135},[84,508,509,511,513,515],{"class":86,"line":203},[84,510,132],{"class":131},[84,512,189],{"class":135},[84,514,139],{"class":131},[84,516,224],{"class":135},[84,518,519],{"class":86,"line":215},[84,520,230],{"class":135},[84,522,523,525,527,529],{"class":86,"line":227},[84,524,132],{"class":131},[84,526,176],{"class":135},[84,528,139],{"class":131},[84,530,242],{"class":135},[84,532,533,535,537,539],{"class":86,"line":233},[84,534,132],{"class":131},[84,536,250],{"class":135},[84,538,139],{"class":131},[84,540,255],{"class":135},[84,542,543],{"class":86,"line":245},[84,544,261],{"class":135},[84,546,547,549,551,553],{"class":86,"line":258},[84,548,132],{"class":131},[84,550,150],{"class":135},[84,552,139],{"class":131},[84,554,273],{"class":135},[84,556,557,559,561,563],{"class":86,"line":264},[84,558,132],{"class":131},[84,560,176],{"class":135},[84,562,139],{"class":131},[84,564,285],{"class":135},[84,566,567],{"class":86,"line":276},[84,568,291],{"class":135},[84,570,571,573,575,577],{"class":86,"line":288},[84,572,132],{"class":131},[84,574,299],{"class":135},[84,576,139],{"class":131},[84,578,304],{"class":135},[84,580,581,583,585,587],{"class":86,"line":294},[84,582,132],{"class":131},[84,584,176],{"class":135},[84,586,139],{"class":131},[84,588,316],{"class":135},[84,590,591],{"class":86,"line":307},[84,592,322],{"class":135},[84,594,595,597,599,601],{"class":86,"line":319},[84,596,132],{"class":131},[84,598,330],{"class":135},[84,600,139],{"class":131},[84,602,335],{"class":135},[84,604,605],{"class":86,"line":325},[84,606,162],{"emptyLinePlaceholder":161},[84,608,609,611,613],{"class":86,"line":338},[84,610,346],{"class":131},[84,612,349],{"class":90},[84,614,352],{"class":135},[84,616,617,619],{"class":86,"line":343},[84,618,358],{"class":131},[84,620,361],{"class":135},[15,622,623],{},[18,624],{"alt":20,"src":625},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1121.webp",[15,627,628],{},[18,629],{"alt":20,"src":630},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1122.webp",[15,632,633],{},[18,634],{"alt":20,"src":635},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1123.webp",[15,637,638],{},[18,639],{"alt":20,"src":640},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1124.webp",[75,642,646],{"className":643,"code":644,"language":645,"meta":20,"style":20},"language-xml shiki shiki-themes github-light github-dark","\u003Claunch>\n    \u003Cnode pkg = \"turtlesim\" exec = \"turtlesim_node\" name = \"t1\" />\n    \u003Cnode pkg = \"turtlesim\" exec = \"turtlesim_node\" name = \"t2\" />\n\u003C/launch>\n","xml",[81,647,648,660,695,722],{"__ignoreMap":20},[84,649,650,653,657],{"class":86,"line":87},[84,651,652],{"class":135},"\u003C",[84,654,656],{"class":655},"s9eBZ","launch",[84,658,659],{"class":135},">\n",[84,661,662,665,668,670,673,676,679,681,684,687,689,692],{"class":86,"line":145},[84,663,664],{"class":135},"    \u003C",[84,666,667],{"class":655},"node",[84,669,95],{"class":90},[84,671,672],{"class":135}," = ",[84,674,675],{"class":94},"\"turtlesim\"",[84,677,678],{"class":90}," exec",[84,680,672],{"class":135},[84,682,683],{"class":94},"\"turtlesim_node\"",[84,685,686],{"class":90}," name",[84,688,672],{"class":135},[84,690,691],{"class":94},"\"t1\"",[84,693,694],{"class":135}," />\n",[84,696,697,699,701,703,705,707,709,711,713,715,717,720],{"class":86,"line":158},[84,698,664],{"class":135},[84,700,667],{"class":655},[84,702,95],{"class":90},[84,704,672],{"class":135},[84,706,675],{"class":94},[84,708,678],{"class":90},[84,710,672],{"class":135},[84,712,683],{"class":94},[84,714,686],{"class":90},[84,716,672],{"class":135},[84,718,719],{"class":94},"\"t2\"",[84,721,694],{"class":135},[84,723,724,727,729],{"class":86,"line":165},[84,725,726],{"class":135},"\u003C/",[84,728,656],{"class":655},[84,730,659],{"class":135},[15,732,733],{},[18,734],{"alt":20,"src":735},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1125.webp",[15,737,738],{},[18,739],{"alt":20,"src":740},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1126.webp",[75,742,746],{"className":743,"code":744,"language":745,"meta":20,"style":20},"language-yaml shiki shiki-themes github-light github-dark","launch:\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  name: \"t1\"\nnode:\n  pkg: \"turtlesim\"\n  exec: \"turtlesim_node\"\n  name: \"t2\"\n","yaml",[81,747,748,755,761,772,782,792,798,806,814],{"__ignoreMap":20},[84,749,750,752],{"class":86,"line":87},[84,751,656],{"class":655},[84,753,754],{"class":135},":\n",[84,756,757,759],{"class":86,"line":145},[84,758,667],{"class":655},[84,760,754],{"class":135},[84,762,763,766,769],{"class":86,"line":158},[84,764,765],{"class":655},"  pkg",[84,767,768],{"class":135},": ",[84,770,771],{"class":94},"\"turtlesim\"\n",[84,773,774,777,779],{"class":86,"line":165},[84,775,776],{"class":655},"  exec",[84,778,768],{"class":135},[84,780,781],{"class":94},"\"turtlesim_node\"\n",[84,783,784,787,789],{"class":86,"line":171},[84,785,786],{"class":655},"  name",[84,788,768],{"class":135},[84,790,791],{"class":94},"\"t1\"\n",[84,793,794,796],{"class":86,"line":184},[84,795,667],{"class":655},[84,797,754],{"class":135},[84,799,800,802,804],{"class":86,"line":197},[84,801,765],{"class":655},[84,803,768],{"class":135},[84,805,771],{"class":94},[84,807,808,810,812],{"class":86,"line":203},[84,809,776],{"class":655},[84,811,768],{"class":135},[84,813,781],{"class":94},[84,815,816,818,820],{"class":86,"line":215},[84,817,786],{"class":655},[84,819,768],{"class":135},[84,821,822],{"class":94},"\"t2\"\n",[15,824,825],{},[18,826],{"alt":20,"src":827},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1127.webp",[15,829,830],{},[18,831],{"alt":20,"src":832},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1128.webp",[15,834,835],{},"It's best to add a dependency.",[15,837,838],{},[18,839],{"alt":20,"src":840},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1129.webp",[15,842,843],{},[18,844],{"alt":20,"src":845},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1130.webp",[10,847,849],{"id":848},"launch_python_node","Launch_Python_Node",[15,851,852],{},[18,853],{"alt":20,"src":854},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1131.webp",[15,856,857],{},[18,858],{"alt":20,"src":859},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1132.webp",[15,861,862],{},[18,863],{"alt":20,"src":864},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1133.webp",[15,866,867],{},[18,868],{"alt":20,"src":869},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1134.webp",[15,871,872],{},"This is the tag exec_name",[15,874,875],{},[18,876],{"alt":20,"src":877},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1135.webp",[15,879,880,881,884],{},"The difference in passing these two parameters lies in the ",[81,882,883],{},"--ros-args"," distinction.",[15,886,887],{},[18,888],{"alt":20,"src":889},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1136.webp",[15,891,892],{},[18,893],{"alt":20,"src":894},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1137.webp",[15,896,897],{},[18,898],{"alt":20,"src":899},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1138.webp",[15,901,902],{},"It's simpler to write it in the launch file.",[15,904,905],{},[18,906],{"alt":20,"src":907},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1139.webp",[15,909,910],{},"This is equivalent.",[15,912,913],{},[18,914],{"alt":20,"src":915},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1140.webp",[15,917,918],{},[18,919],{"alt":20,"src":920},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1141.webp",[15,922,923],{},"The content inside {} is in YAML format.",[15,925,926],{},[18,927],{"alt":20,"src":928},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1142.webp",[15,930,931],{},"There is another more common method: read the YAML file first, store all the data in the YAML, and then read it directly when needed.",[15,933,934],{},[18,935],{"alt":20,"src":936},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1143.webp",[15,938,939],{},[18,940],{"alt":20,"src":941},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1144.webp",[15,943,944],{},"Place the yaml file in the config folder.",[15,946,947],{},[18,948],{"alt":20,"src":949},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1145.webp",[75,951,953],{"className":77,"code":952,"language":79,"meta":20,"style":20},"ros2 param dump haha --output-dir src/cpp01_launch/config/\n",[81,954,955],{"__ignoreMap":20},[84,956,957,959,962,965,968,971],{"class":86,"line":87},[84,958,91],{"class":90},[84,960,961],{"class":94}," param",[84,963,964],{"class":94}," dump",[84,966,967],{"class":94}," haha",[84,969,970],{"class":104}," --output-dir",[84,972,973],{"class":94}," src/cpp01_launch/config/\n",[15,975,976],{},[18,977],{"alt":20,"src":978},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1146.webp",[15,980,981],{},[18,982],{"alt":20,"src":983},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1147.webp",[15,985,986],{},"You also need to configure CMakeLists.",[15,988,989],{},[18,990],{"alt":20,"src":991},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1148.webp",[15,993,994],{},[18,995],{"alt":20,"src":996},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1149.webp",[15,998,999],{},[18,1000],{"alt":20,"src":1001},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1150.webp",[15,1003,1004],{},[18,1005],{"alt":20,"src":1006},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1151.webp",[15,1008,1009],{},"We should read the one in the install directory.",[15,1011,1012],{},[18,1013],{"alt":20,"src":1014},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1152.webp",[15,1016,1017],{},[18,1018],{"alt":20,"src":1019},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1153.webp",[15,1021,1022],{},"Directly copy the path.",[15,1024,1025],{},[18,1026],{"alt":20,"src":1027},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1154.webp",[15,1029,1030],{},[18,1031],{"alt":20,"src":1032},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1155.webp",[15,1034,1035],{},"The code can be further optimized.",[15,1037,1038],{},[18,1039],{"alt":20,"src":1040},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1156.webp",[15,1042,1043],{},[18,1044],{"alt":20,"src":1045},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1157.webp",[15,1047,1048],{},"This is used to get the share directory path of a specific package.",[15,1050,1051],{},[18,1052],{"alt":20,"src":1053},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1158.webp",[15,1055,1056],{},[18,1057],{"alt":20,"src":1058},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1159.webp",[15,1060,1061],{},[18,1062],{"alt":20,"src":1063},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1160.webp",[75,1065,1067],{"className":122,"code":1066,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\nimport os\n\ndef generate_launch_description():\n\n    # turtle1 = Node(\n\n    #     package=\"turtlesim\",\n\n    #     executable=\"turtlesim_node\",\n\n    #     exec_name=\"my_label\",\n\n    #     ros_arguments=[\"--remap\",\"__ns:=/t2\"]\n\n    #     )\n    turtle2 = Node(\n        package=\"turtlesim\",\n        executable=\"turtlesim_node\",\n        name=\"haha\",\n        parameters=[os.path.join(get_package_share_directory(\"cpp01_launch\"),\"config\",\"haha.yaml\")]\n        )\n    return LaunchDescription([turtle2])\n",[81,1068,1069,1079,1089,1093,1097,1107,1117,1121,1131,1141,1145,1155,1165,1169,1179,1189,1193,1203,1213,1217,1227,1231,1238,1242,1251,1256,1263,1268,1274,1279,1285,1290,1296,1301,1307,1312,1318,1330,1344,1356,1369,1398,1404],{"__ignoreMap":20},[84,1070,1071,1073,1075,1077],{"class":86,"line":87},[84,1072,132],{"class":131},[84,1074,136],{"class":135},[84,1076,139],{"class":131},[84,1078,142],{"class":135},[84,1080,1081,1083,1085,1087],{"class":86,"line":145},[84,1082,132],{"class":131},[84,1084,150],{"class":135},[84,1086,139],{"class":131},[84,1088,155],{"class":135},[84,1090,1091],{"class":86,"line":158},[84,1092,162],{"emptyLinePlaceholder":161},[84,1094,1095],{"class":86,"line":165},[84,1096,168],{"class":135},[84,1098,1099,1101,1103,1105],{"class":86,"line":171},[84,1100,132],{"class":131},[84,1102,176],{"class":135},[84,1104,139],{"class":131},[84,1106,181],{"class":135},[84,1108,1109,1111,1113,1115],{"class":86,"line":184},[84,1110,132],{"class":131},[84,1112,189],{"class":135},[84,1114,139],{"class":131},[84,1116,194],{"class":135},[84,1118,1119],{"class":86,"line":197},[84,1120,200],{"class":135},[84,1122,1123,1125,1127,1129],{"class":86,"line":203},[84,1124,132],{"class":131},[84,1126,176],{"class":135},[84,1128,139],{"class":131},[84,1130,212],{"class":135},[84,1132,1133,1135,1137,1139],{"class":86,"line":215},[84,1134,132],{"class":131},[84,1136,189],{"class":135},[84,1138,139],{"class":131},[84,1140,224],{"class":135},[84,1142,1143],{"class":86,"line":227},[84,1144,230],{"class":135},[84,1146,1147,1149,1151,1153],{"class":86,"line":233},[84,1148,132],{"class":131},[84,1150,176],{"class":135},[84,1152,139],{"class":131},[84,1154,242],{"class":135},[84,1156,1157,1159,1161,1163],{"class":86,"line":245},[84,1158,132],{"class":131},[84,1160,250],{"class":135},[84,1162,139],{"class":131},[84,1164,255],{"class":135},[84,1166,1167],{"class":86,"line":258},[84,1168,261],{"class":135},[84,1170,1171,1173,1175,1177],{"class":86,"line":264},[84,1172,132],{"class":131},[84,1174,150],{"class":135},[84,1176,139],{"class":131},[84,1178,273],{"class":135},[84,1180,1181,1183,1185,1187],{"class":86,"line":276},[84,1182,132],{"class":131},[84,1184,176],{"class":135},[84,1186,139],{"class":131},[84,1188,285],{"class":135},[84,1190,1191],{"class":86,"line":288},[84,1192,291],{"class":135},[84,1194,1195,1197,1199,1201],{"class":86,"line":294},[84,1196,132],{"class":131},[84,1198,299],{"class":135},[84,1200,139],{"class":131},[84,1202,304],{"class":135},[84,1204,1205,1207,1209,1211],{"class":86,"line":307},[84,1206,132],{"class":131},[84,1208,176],{"class":135},[84,1210,139],{"class":131},[84,1212,316],{"class":135},[84,1214,1215],{"class":86,"line":319},[84,1216,322],{"class":135},[84,1218,1219,1221,1223,1225],{"class":86,"line":325},[84,1220,132],{"class":131},[84,1222,330],{"class":135},[84,1224,139],{"class":131},[84,1226,335],{"class":135},[84,1228,1229],{"class":86,"line":338},[84,1230,162],{"emptyLinePlaceholder":161},[84,1232,1233,1235],{"class":86,"line":343},[84,1234,139],{"class":131},[84,1236,1237],{"class":135}," os\n",[84,1239,1240],{"class":86,"line":355},[84,1241,162],{"emptyLinePlaceholder":161},[84,1243,1245,1247,1249],{"class":86,"line":1244},24,[84,1246,346],{"class":131},[84,1248,349],{"class":90},[84,1250,352],{"class":135},[84,1252,1254],{"class":86,"line":1253},25,[84,1255,162],{"emptyLinePlaceholder":161},[84,1257,1259],{"class":86,"line":1258},26,[84,1260,1262],{"class":1261},"sJ8bj","    # turtle1 = Node(\n",[84,1264,1266],{"class":86,"line":1265},27,[84,1267,162],{"emptyLinePlaceholder":161},[84,1269,1271],{"class":86,"line":1270},28,[84,1272,1273],{"class":1261},"    #     package=\"turtlesim\",\n",[84,1275,1277],{"class":86,"line":1276},29,[84,1278,162],{"emptyLinePlaceholder":161},[84,1280,1282],{"class":86,"line":1281},30,[84,1283,1284],{"class":1261},"    #     executable=\"turtlesim_node\",\n",[84,1286,1288],{"class":86,"line":1287},31,[84,1289,162],{"emptyLinePlaceholder":161},[84,1291,1293],{"class":86,"line":1292},32,[84,1294,1295],{"class":1261},"    #     exec_name=\"my_label\",\n",[84,1297,1299],{"class":86,"line":1298},33,[84,1300,162],{"emptyLinePlaceholder":161},[84,1302,1304],{"class":86,"line":1303},34,[84,1305,1306],{"class":1261},"    #     ros_arguments=[\"--remap\",\"__ns:=/t2\"]\n",[84,1308,1310],{"class":86,"line":1309},35,[84,1311,162],{"emptyLinePlaceholder":161},[84,1313,1315],{"class":86,"line":1314},36,[84,1316,1317],{"class":1261},"    #     )\n",[84,1319,1321,1324,1327],{"class":86,"line":1320},37,[84,1322,1323],{"class":135},"    turtle2 ",[84,1325,1326],{"class":131},"=",[84,1328,1329],{"class":135}," Node(\n",[84,1331,1333,1337,1339,1341],{"class":86,"line":1332},38,[84,1334,1336],{"class":1335},"s4XuR","        package",[84,1338,1326],{"class":131},[84,1340,675],{"class":94},[84,1342,1343],{"class":135},",\n",[84,1345,1347,1350,1352,1354],{"class":86,"line":1346},39,[84,1348,1349],{"class":1335},"        executable",[84,1351,1326],{"class":131},[84,1353,683],{"class":94},[84,1355,1343],{"class":135},[84,1357,1359,1362,1364,1367],{"class":86,"line":1358},40,[84,1360,1361],{"class":1335},"        name",[84,1363,1326],{"class":131},[84,1365,1366],{"class":94},"\"haha\"",[84,1368,1343],{"class":135},[84,1370,1372,1375,1377,1380,1383,1386,1389,1392,1395],{"class":86,"line":1371},41,[84,1373,1374],{"class":1335},"        parameters",[84,1376,1326],{"class":131},[84,1378,1379],{"class":135},"[os.path.join(get_package_share_directory(",[84,1381,1382],{"class":94},"\"cpp01_launch\"",[84,1384,1385],{"class":135},"),",[84,1387,1388],{"class":94},"\"config\"",[84,1390,1391],{"class":135},",",[84,1393,1394],{"class":94},"\"haha.yaml\"",[84,1396,1397],{"class":135},")]\n",[84,1399,1401],{"class":86,"line":1400},42,[84,1402,1403],{"class":135},"        )\n",[84,1405,1407,1409],{"class":86,"line":1406},43,[84,1408,358],{"class":131},[84,1410,1411],{"class":135}," LaunchDescription([turtle2])\n",[15,1413,1414],{},[18,1415],{"alt":20,"src":1416},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1161.webp",[15,1418,1419],{},[18,1420],{"alt":20,"src":1421},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1162.webp",[15,1423,1424],{},"It is recommended to use the third method: dynamically obtaining the path.",[15,1426,1427],{},[18,1428],{"alt":20,"src":1429},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1163.webp",[15,1431,1432],{},"\"respawn\" means automatic restart. After running a node with this setting, if you close the Little Turtle window with your mouse, the node will automatically restart and open a new Little Turtle window.",[15,1434,1435],{},"Press Ctrl+C to terminate.",[75,1437,1439],{"className":122,"code":1438,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\nimport os\n\ndef generate_launch_description():\n\n    # turtle1 = Node(\n\n    #     package=\"turtlesim\",\n\n    #     executable=\"turtlesim_node\",\n\n    #     exec_name=\"my_label\",\n\n    #     ros_arguments=[\"--remap\",\"__ns:=/t2\"]\n\n    #     )\n    turtle2 = Node(\n        package=\"turtlesim\",\n        executable=\"turtlesim_node\",\n        name=\"haha\",\n\n        # parameters=[{\"background_r\": 255,\"background_g\": 0,\"background_b\": 0}],\n\n        # parameters=[\"/home/tungchiahui/mysource/ros2src/4.ws02_tools/install/cpp01_launch/share/cpp01_launch/config/haha.yaml\"],\n        parameters=[os.path.join(get_package_share_directory(\"cpp01_launch\"),\"config\",\"haha.yaml\")],\n        respawn=True\n        )\n    return LaunchDescription([turtle2])\n",[81,1440,1441,1451,1461,1465,1469,1479,1489,1493,1503,1513,1517,1527,1537,1541,1551,1561,1565,1575,1585,1589,1599,1603,1609,1613,1621,1625,1629,1633,1637,1641,1645,1649,1653,1657,1661,1665,1669,1677,1687,1697,1707,1711,1716,1720,1726,1748,1759,1764],{"__ignoreMap":20},[84,1442,1443,1445,1447,1449],{"class":86,"line":87},[84,1444,132],{"class":131},[84,1446,136],{"class":135},[84,1448,139],{"class":131},[84,1450,142],{"class":135},[84,1452,1453,1455,1457,1459],{"class":86,"line":145},[84,1454,132],{"class":131},[84,1456,150],{"class":135},[84,1458,139],{"class":131},[84,1460,155],{"class":135},[84,1462,1463],{"class":86,"line":158},[84,1464,162],{"emptyLinePlaceholder":161},[84,1466,1467],{"class":86,"line":165},[84,1468,168],{"class":135},[84,1470,1471,1473,1475,1477],{"class":86,"line":171},[84,1472,132],{"class":131},[84,1474,176],{"class":135},[84,1476,139],{"class":131},[84,1478,181],{"class":135},[84,1480,1481,1483,1485,1487],{"class":86,"line":184},[84,1482,132],{"class":131},[84,1484,189],{"class":135},[84,1486,139],{"class":131},[84,1488,194],{"class":135},[84,1490,1491],{"class":86,"line":197},[84,1492,200],{"class":135},[84,1494,1495,1497,1499,1501],{"class":86,"line":203},[84,1496,132],{"class":131},[84,1498,176],{"class":135},[84,1500,139],{"class":131},[84,1502,212],{"class":135},[84,1504,1505,1507,1509,1511],{"class":86,"line":215},[84,1506,132],{"class":131},[84,1508,189],{"class":135},[84,1510,139],{"class":131},[84,1512,224],{"class":135},[84,1514,1515],{"class":86,"line":227},[84,1516,230],{"class":135},[84,1518,1519,1521,1523,1525],{"class":86,"line":233},[84,1520,132],{"class":131},[84,1522,176],{"class":135},[84,1524,139],{"class":131},[84,1526,242],{"class":135},[84,1528,1529,1531,1533,1535],{"class":86,"line":245},[84,1530,132],{"class":131},[84,1532,250],{"class":135},[84,1534,139],{"class":131},[84,1536,255],{"class":135},[84,1538,1539],{"class":86,"line":258},[84,1540,261],{"class":135},[84,1542,1543,1545,1547,1549],{"class":86,"line":264},[84,1544,132],{"class":131},[84,1546,150],{"class":135},[84,1548,139],{"class":131},[84,1550,273],{"class":135},[84,1552,1553,1555,1557,1559],{"class":86,"line":276},[84,1554,132],{"class":131},[84,1556,176],{"class":135},[84,1558,139],{"class":131},[84,1560,285],{"class":135},[84,1562,1563],{"class":86,"line":288},[84,1564,291],{"class":135},[84,1566,1567,1569,1571,1573],{"class":86,"line":294},[84,1568,132],{"class":131},[84,1570,299],{"class":135},[84,1572,139],{"class":131},[84,1574,304],{"class":135},[84,1576,1577,1579,1581,1583],{"class":86,"line":307},[84,1578,132],{"class":131},[84,1580,176],{"class":135},[84,1582,139],{"class":131},[84,1584,316],{"class":135},[84,1586,1587],{"class":86,"line":319},[84,1588,322],{"class":135},[84,1590,1591,1593,1595,1597],{"class":86,"line":325},[84,1592,132],{"class":131},[84,1594,330],{"class":135},[84,1596,139],{"class":131},[84,1598,335],{"class":135},[84,1600,1601],{"class":86,"line":338},[84,1602,162],{"emptyLinePlaceholder":161},[84,1604,1605,1607],{"class":86,"line":343},[84,1606,139],{"class":131},[84,1608,1237],{"class":135},[84,1610,1611],{"class":86,"line":355},[84,1612,162],{"emptyLinePlaceholder":161},[84,1614,1615,1617,1619],{"class":86,"line":1244},[84,1616,346],{"class":131},[84,1618,349],{"class":90},[84,1620,352],{"class":135},[84,1622,1623],{"class":86,"line":1253},[84,1624,162],{"emptyLinePlaceholder":161},[84,1626,1627],{"class":86,"line":1258},[84,1628,1262],{"class":1261},[84,1630,1631],{"class":86,"line":1265},[84,1632,162],{"emptyLinePlaceholder":161},[84,1634,1635],{"class":86,"line":1270},[84,1636,1273],{"class":1261},[84,1638,1639],{"class":86,"line":1276},[84,1640,162],{"emptyLinePlaceholder":161},[84,1642,1643],{"class":86,"line":1281},[84,1644,1284],{"class":1261},[84,1646,1647],{"class":86,"line":1287},[84,1648,162],{"emptyLinePlaceholder":161},[84,1650,1651],{"class":86,"line":1292},[84,1652,1295],{"class":1261},[84,1654,1655],{"class":86,"line":1298},[84,1656,162],{"emptyLinePlaceholder":161},[84,1658,1659],{"class":86,"line":1303},[84,1660,1306],{"class":1261},[84,1662,1663],{"class":86,"line":1309},[84,1664,162],{"emptyLinePlaceholder":161},[84,1666,1667],{"class":86,"line":1314},[84,1668,1317],{"class":1261},[84,1670,1671,1673,1675],{"class":86,"line":1320},[84,1672,1323],{"class":135},[84,1674,1326],{"class":131},[84,1676,1329],{"class":135},[84,1678,1679,1681,1683,1685],{"class":86,"line":1332},[84,1680,1336],{"class":1335},[84,1682,1326],{"class":131},[84,1684,675],{"class":94},[84,1686,1343],{"class":135},[84,1688,1689,1691,1693,1695],{"class":86,"line":1346},[84,1690,1349],{"class":1335},[84,1692,1326],{"class":131},[84,1694,683],{"class":94},[84,1696,1343],{"class":135},[84,1698,1699,1701,1703,1705],{"class":86,"line":1358},[84,1700,1361],{"class":1335},[84,1702,1326],{"class":131},[84,1704,1366],{"class":94},[84,1706,1343],{"class":135},[84,1708,1709],{"class":86,"line":1371},[84,1710,162],{"emptyLinePlaceholder":161},[84,1712,1713],{"class":86,"line":1400},[84,1714,1715],{"class":1261},"        # parameters=[{\"background_r\": 255,\"background_g\": 0,\"background_b\": 0}],\n",[84,1717,1718],{"class":86,"line":1406},[84,1719,162],{"emptyLinePlaceholder":161},[84,1721,1723],{"class":86,"line":1722},44,[84,1724,1725],{"class":1261},"        # parameters=[\"/home/tungchiahui/mysource/ros2src/4.ws02_tools/install/cpp01_launch/share/cpp01_launch/config/haha.yaml\"],\n",[84,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745],{"class":86,"line":1728},45,[84,1730,1374],{"class":1335},[84,1732,1326],{"class":131},[84,1734,1379],{"class":135},[84,1736,1382],{"class":94},[84,1738,1385],{"class":135},[84,1740,1388],{"class":94},[84,1742,1391],{"class":135},[84,1744,1394],{"class":94},[84,1746,1747],{"class":135},")],\n",[84,1749,1751,1754,1756],{"class":86,"line":1750},46,[84,1752,1753],{"class":1335},"        respawn",[84,1755,1326],{"class":131},[84,1757,1758],{"class":104},"True\n",[84,1760,1762],{"class":86,"line":1761},47,[84,1763,1403],{"class":135},[84,1765,1767,1769],{"class":86,"line":1766},48,[84,1768,358],{"class":131},[84,1770,1411],{"class":135},[15,1772,1773],{},[18,1774],{"alt":20,"src":1775},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1164.webp",[15,1777,1778],{},"The first is the original topic name, the second is the new topic name.",[10,1780,1782],{"id":1781},"launch_python_execute-command","Launch_Python_Execute Command",[15,1784,1785],{},[18,1786],{"alt":20,"src":1787},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1165.webp",[15,1789,1790],{},[18,1791],{"alt":20,"src":1792},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1166.webp",[15,1794,1795],{},[18,1796],{"alt":20,"src":1797},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1167.webp",[15,1799,1800],{},[18,1801],{"alt":20,"src":1802},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1168.webp",[15,1804,1805],{},"This is a list containing our instructions.",[15,1807,1808],{},[18,1809],{"alt":20,"src":1810},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1169.webp",[15,1812,1813],{},"This outputs logs to both the terminal and the log file; if omitted, logs will only be written to the file.",[15,1815,1816],{},[18,1817],{"alt":20,"src":1818},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1170.webp",[15,1820,1821],{},"This treats the command as a terminal instruction to execute.",[15,1823,1824],{},[18,1825],{"alt":20,"src":1826},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1171.webp",[15,1828,1829],{},[18,1830],{"alt":20,"src":1831},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1172.webp",[75,1833,1835],{"className":122,"code":1834,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n    turtle = Node(\n        package=\"turtlesim\",\n        executable=\"turtlesim_node\"\n    )\n    cmd = ExecuteProcess(\n        cmd = [\"ros2 topic echo /turtle1/pose\"],\n        output = \"both\",\n        shell = True\n    )\n\n    return LaunchDescription([turtle,cmd])\n",[81,1836,1837,1847,1857,1861,1865,1875,1885,1889,1899,1909,1913,1923,1933,1937,1947,1957,1961,1971,1981,1985,1995,1999,2007,2016,2026,2034,2039,2049,2066,2078,2088,2092,2096],{"__ignoreMap":20},[84,1838,1839,1841,1843,1845],{"class":86,"line":87},[84,1840,132],{"class":131},[84,1842,136],{"class":135},[84,1844,139],{"class":131},[84,1846,142],{"class":135},[84,1848,1849,1851,1853,1855],{"class":86,"line":145},[84,1850,132],{"class":131},[84,1852,150],{"class":135},[84,1854,139],{"class":131},[84,1856,155],{"class":135},[84,1858,1859],{"class":86,"line":158},[84,1860,162],{"emptyLinePlaceholder":161},[84,1862,1863],{"class":86,"line":165},[84,1864,168],{"class":135},[84,1866,1867,1869,1871,1873],{"class":86,"line":171},[84,1868,132],{"class":131},[84,1870,176],{"class":135},[84,1872,139],{"class":131},[84,1874,181],{"class":135},[84,1876,1877,1879,1881,1883],{"class":86,"line":184},[84,1878,132],{"class":131},[84,1880,189],{"class":135},[84,1882,139],{"class":131},[84,1884,194],{"class":135},[84,1886,1887],{"class":86,"line":197},[84,1888,200],{"class":135},[84,1890,1891,1893,1895,1897],{"class":86,"line":203},[84,1892,132],{"class":131},[84,1894,176],{"class":135},[84,1896,139],{"class":131},[84,1898,212],{"class":135},[84,1900,1901,1903,1905,1907],{"class":86,"line":215},[84,1902,132],{"class":131},[84,1904,189],{"class":135},[84,1906,139],{"class":131},[84,1908,224],{"class":135},[84,1910,1911],{"class":86,"line":227},[84,1912,230],{"class":135},[84,1914,1915,1917,1919,1921],{"class":86,"line":233},[84,1916,132],{"class":131},[84,1918,176],{"class":135},[84,1920,139],{"class":131},[84,1922,242],{"class":135},[84,1924,1925,1927,1929,1931],{"class":86,"line":245},[84,1926,132],{"class":131},[84,1928,250],{"class":135},[84,1930,139],{"class":131},[84,1932,255],{"class":135},[84,1934,1935],{"class":86,"line":258},[84,1936,261],{"class":135},[84,1938,1939,1941,1943,1945],{"class":86,"line":264},[84,1940,132],{"class":131},[84,1942,150],{"class":135},[84,1944,139],{"class":131},[84,1946,273],{"class":135},[84,1948,1949,1951,1953,1955],{"class":86,"line":276},[84,1950,132],{"class":131},[84,1952,176],{"class":135},[84,1954,139],{"class":131},[84,1956,285],{"class":135},[84,1958,1959],{"class":86,"line":288},[84,1960,291],{"class":135},[84,1962,1963,1965,1967,1969],{"class":86,"line":294},[84,1964,132],{"class":131},[84,1966,299],{"class":135},[84,1968,139],{"class":131},[84,1970,304],{"class":135},[84,1972,1973,1975,1977,1979],{"class":86,"line":307},[84,1974,132],{"class":131},[84,1976,176],{"class":135},[84,1978,139],{"class":131},[84,1980,316],{"class":135},[84,1982,1983],{"class":86,"line":319},[84,1984,322],{"class":135},[84,1986,1987,1989,1991,1993],{"class":86,"line":325},[84,1988,132],{"class":131},[84,1990,330],{"class":135},[84,1992,139],{"class":131},[84,1994,335],{"class":135},[84,1996,1997],{"class":86,"line":338},[84,1998,162],{"emptyLinePlaceholder":161},[84,2000,2001,2003,2005],{"class":86,"line":343},[84,2002,346],{"class":131},[84,2004,349],{"class":90},[84,2006,352],{"class":135},[84,2008,2009,2012,2014],{"class":86,"line":355},[84,2010,2011],{"class":135},"    turtle ",[84,2013,1326],{"class":131},[84,2015,1329],{"class":135},[84,2017,2018,2020,2022,2024],{"class":86,"line":1244},[84,2019,1336],{"class":1335},[84,2021,1326],{"class":131},[84,2023,675],{"class":94},[84,2025,1343],{"class":135},[84,2027,2028,2030,2032],{"class":86,"line":1253},[84,2029,1349],{"class":1335},[84,2031,1326],{"class":131},[84,2033,781],{"class":94},[84,2035,2036],{"class":86,"line":1258},[84,2037,2038],{"class":135},"    )\n",[84,2040,2041,2044,2046],{"class":86,"line":1265},[84,2042,2043],{"class":135},"    cmd ",[84,2045,1326],{"class":131},[84,2047,2048],{"class":135}," ExecuteProcess(\n",[84,2050,2051,2054,2057,2060,2063],{"class":86,"line":1270},[84,2052,2053],{"class":1335},"        cmd",[84,2055,2056],{"class":131}," =",[84,2058,2059],{"class":135}," [",[84,2061,2062],{"class":94},"\"ros2 topic echo /turtle1/pose\"",[84,2064,2065],{"class":135},"],\n",[84,2067,2068,2071,2073,2076],{"class":86,"line":1276},[84,2069,2070],{"class":1335},"        output",[84,2072,2056],{"class":131},[84,2074,2075],{"class":94}," \"both\"",[84,2077,1343],{"class":135},[84,2079,2080,2083,2085],{"class":86,"line":1281},[84,2081,2082],{"class":1335},"        shell",[84,2084,2056],{"class":131},[84,2086,2087],{"class":104}," True\n",[84,2089,2090],{"class":86,"line":1287},[84,2091,2038],{"class":135},[84,2093,2094],{"class":86,"line":1292},[84,2095,162],{"emptyLinePlaceholder":161},[84,2097,2098,2100],{"class":86,"line":1298},[84,2099,358],{"class":131},[84,2101,2102],{"class":135}," LaunchDescription([turtle,cmd])\n",[15,2104,2105],{},[18,2106],{"alt":20,"src":2107},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1173.webp",[15,2109,2110],{},"If the instruction is too long, it can be split into multiple strings for execution.",[26,2112],{},[15,2114,2115],{},[18,2116],{"alt":20,"src":2117},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1174.webp",[15,2119,2120],{},[18,2121],{"alt":20,"src":2122},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1175.webp",[15,2124,2125],{},[18,2126],{"alt":20,"src":2127},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1176.webp",[15,2129,2130],{},"This also works.",[75,2132,2134],{"className":122,"code":2133,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n    turtle = Node(\n        package=\"turtlesim\",\n        executable=\"turtlesim_node\"\n    )\n    cmd = ExecuteProcess(\n        cmd = [FindExecutable(name=\"ros2\"),\"topic\",\"echo\",\"/turtle1/pose\"],\n        output = \"both\",\n        shell = True\n    )\n\n    return LaunchDescription([turtle,cmd])\n",[81,2135,2136,2146,2156,2160,2164,2174,2184,2188,2198,2208,2212,2222,2232,2236,2246,2256,2260,2270,2280,2284,2294,2298,2306,2314,2324,2332,2336,2344,2378,2388,2396,2400,2404],{"__ignoreMap":20},[84,2137,2138,2140,2142,2144],{"class":86,"line":87},[84,2139,132],{"class":131},[84,2141,136],{"class":135},[84,2143,139],{"class":131},[84,2145,142],{"class":135},[84,2147,2148,2150,2152,2154],{"class":86,"line":145},[84,2149,132],{"class":131},[84,2151,150],{"class":135},[84,2153,139],{"class":131},[84,2155,155],{"class":135},[84,2157,2158],{"class":86,"line":158},[84,2159,162],{"emptyLinePlaceholder":161},[84,2161,2162],{"class":86,"line":165},[84,2163,168],{"class":135},[84,2165,2166,2168,2170,2172],{"class":86,"line":171},[84,2167,132],{"class":131},[84,2169,176],{"class":135},[84,2171,139],{"class":131},[84,2173,181],{"class":135},[84,2175,2176,2178,2180,2182],{"class":86,"line":184},[84,2177,132],{"class":131},[84,2179,189],{"class":135},[84,2181,139],{"class":131},[84,2183,194],{"class":135},[84,2185,2186],{"class":86,"line":197},[84,2187,200],{"class":135},[84,2189,2190,2192,2194,2196],{"class":86,"line":203},[84,2191,132],{"class":131},[84,2193,176],{"class":135},[84,2195,139],{"class":131},[84,2197,212],{"class":135},[84,2199,2200,2202,2204,2206],{"class":86,"line":215},[84,2201,132],{"class":131},[84,2203,189],{"class":135},[84,2205,139],{"class":131},[84,2207,224],{"class":135},[84,2209,2210],{"class":86,"line":227},[84,2211,230],{"class":135},[84,2213,2214,2216,2218,2220],{"class":86,"line":233},[84,2215,132],{"class":131},[84,2217,176],{"class":135},[84,2219,139],{"class":131},[84,2221,242],{"class":135},[84,2223,2224,2226,2228,2230],{"class":86,"line":245},[84,2225,132],{"class":131},[84,2227,250],{"class":135},[84,2229,139],{"class":131},[84,2231,255],{"class":135},[84,2233,2234],{"class":86,"line":258},[84,2235,261],{"class":135},[84,2237,2238,2240,2242,2244],{"class":86,"line":264},[84,2239,132],{"class":131},[84,2241,150],{"class":135},[84,2243,139],{"class":131},[84,2245,273],{"class":135},[84,2247,2248,2250,2252,2254],{"class":86,"line":276},[84,2249,132],{"class":131},[84,2251,176],{"class":135},[84,2253,139],{"class":131},[84,2255,285],{"class":135},[84,2257,2258],{"class":86,"line":288},[84,2259,291],{"class":135},[84,2261,2262,2264,2266,2268],{"class":86,"line":294},[84,2263,132],{"class":131},[84,2265,299],{"class":135},[84,2267,139],{"class":131},[84,2269,304],{"class":135},[84,2271,2272,2274,2276,2278],{"class":86,"line":307},[84,2273,132],{"class":131},[84,2275,176],{"class":135},[84,2277,139],{"class":131},[84,2279,316],{"class":135},[84,2281,2282],{"class":86,"line":319},[84,2283,322],{"class":135},[84,2285,2286,2288,2290,2292],{"class":86,"line":325},[84,2287,132],{"class":131},[84,2289,330],{"class":135},[84,2291,139],{"class":131},[84,2293,335],{"class":135},[84,2295,2296],{"class":86,"line":338},[84,2297,162],{"emptyLinePlaceholder":161},[84,2299,2300,2302,2304],{"class":86,"line":343},[84,2301,346],{"class":131},[84,2303,349],{"class":90},[84,2305,352],{"class":135},[84,2307,2308,2310,2312],{"class":86,"line":355},[84,2309,2011],{"class":135},[84,2311,1326],{"class":131},[84,2313,1329],{"class":135},[84,2315,2316,2318,2320,2322],{"class":86,"line":1244},[84,2317,1336],{"class":1335},[84,2319,1326],{"class":131},[84,2321,675],{"class":94},[84,2323,1343],{"class":135},[84,2325,2326,2328,2330],{"class":86,"line":1253},[84,2327,1349],{"class":1335},[84,2329,1326],{"class":131},[84,2331,781],{"class":94},[84,2333,2334],{"class":86,"line":1258},[84,2335,2038],{"class":135},[84,2337,2338,2340,2342],{"class":86,"line":1265},[84,2339,2043],{"class":135},[84,2341,1326],{"class":131},[84,2343,2048],{"class":135},[84,2345,2346,2348,2350,2353,2356,2358,2361,2363,2366,2368,2371,2373,2376],{"class":86,"line":1270},[84,2347,2053],{"class":1335},[84,2349,2056],{"class":131},[84,2351,2352],{"class":135}," [FindExecutable(",[84,2354,2355],{"class":1335},"name",[84,2357,1326],{"class":131},[84,2359,2360],{"class":94},"\"ros2\"",[84,2362,1385],{"class":135},[84,2364,2365],{"class":94},"\"topic\"",[84,2367,1391],{"class":135},[84,2369,2370],{"class":94},"\"echo\"",[84,2372,1391],{"class":135},[84,2374,2375],{"class":94},"\"/turtle1/pose\"",[84,2377,2065],{"class":135},[84,2379,2380,2382,2384,2386],{"class":86,"line":1276},[84,2381,2070],{"class":1335},[84,2383,2056],{"class":131},[84,2385,2075],{"class":94},[84,2387,1343],{"class":135},[84,2389,2390,2392,2394],{"class":86,"line":1281},[84,2391,2082],{"class":1335},[84,2393,2056],{"class":131},[84,2395,2087],{"class":104},[84,2397,2398],{"class":86,"line":1287},[84,2399,2038],{"class":135},[84,2401,2402],{"class":86,"line":1292},[84,2403,162],{"emptyLinePlaceholder":161},[84,2405,2406,2408],{"class":86,"line":1298},[84,2407,358],{"class":131},[84,2409,2102],{"class":135},[15,2411,2412],{},[18,2413],{"alt":20,"src":2414},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1177.webp",[10,2416,2418],{"id":2417},"launch_python-parameter-settings","Launch_Python parameter settings",[15,2420,2421],{},[18,2422],{"alt":20,"src":2423},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1178.webp",[15,2425,2426],{},[18,2427],{"alt":20,"src":2428},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1179.webp",[15,2430,2431],{},[18,2432],{"alt":20,"src":2433},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1180.webp",[15,2435,2436],{},[18,2437],{"alt":20,"src":2438},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1181.webp",[15,2440,2441],{},[18,2442],{"alt":20,"src":2443},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1182.webp",[15,2445,2446],{},[18,2447],{"alt":20,"src":2448},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1183.webp",[15,2450,2451],{},[18,2452],{"alt":20,"src":2453},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1184.webp",[15,2455,2456],{},[18,2457],{"alt":20,"src":2458},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1185.webp",[15,2460,2461],{},"If no value is passed, the turtle's red color is full, resulting in a pink background.",[15,2463,2464],{},[18,2465],{"alt":20,"src":2466},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1186.webp",[15,2468,2469,2470,2473],{},"You can also pass values, such as ",[81,2471,2472],{},"backg_r:=0",".",[15,2475,2476],{},"This makes the background color shift more towards blue-green.",[15,2478,2479],{},[18,2480],{"alt":20,"src":2481},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1187.webp",[15,2483,2484],{},[18,2485],{"alt":20,"src":2486},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1188.webp",[15,2488,2489],{},[18,2490],{"alt":20,"src":2491},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1189.webp",[75,2493,2495],{"className":122,"code":2494,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n\n    bg_r = DeclareLaunchArgument(name=\"backg_r\",default_value=\"255\")\n    bg_g = DeclareLaunchArgument(name=\"backg_g\",default_value=\"255\")\n    bg_b = DeclareLaunchArgument(name=\"backg_b\",default_value=\"255\")\n    turtle = Node(\n        package=\"turtlesim\",\n        executable=\"turtlesim_node\",\n        parameters=[{\"background_r\" : LaunchConfiguration(\"backg_r\"),\"background_g\" : LaunchConfiguration(\"backg_g\"),\"background_b\" : LaunchConfiguration(\"backg_b\")}]\n    )\n    return LaunchDescription([bg_r,bg_g,bg_b,turtle])\n",[81,2496,2497,2507,2517,2521,2525,2535,2545,2549,2559,2569,2573,2583,2593,2597,2607,2617,2621,2631,2641,2645,2655,2659,2667,2671,2701,2727,2753,2761,2771,2781,2819,2823],{"__ignoreMap":20},[84,2498,2499,2501,2503,2505],{"class":86,"line":87},[84,2500,132],{"class":131},[84,2502,136],{"class":135},[84,2504,139],{"class":131},[84,2506,142],{"class":135},[84,2508,2509,2511,2513,2515],{"class":86,"line":145},[84,2510,132],{"class":131},[84,2512,150],{"class":135},[84,2514,139],{"class":131},[84,2516,155],{"class":135},[84,2518,2519],{"class":86,"line":158},[84,2520,162],{"emptyLinePlaceholder":161},[84,2522,2523],{"class":86,"line":165},[84,2524,168],{"class":135},[84,2526,2527,2529,2531,2533],{"class":86,"line":171},[84,2528,132],{"class":131},[84,2530,176],{"class":135},[84,2532,139],{"class":131},[84,2534,181],{"class":135},[84,2536,2537,2539,2541,2543],{"class":86,"line":184},[84,2538,132],{"class":131},[84,2540,189],{"class":135},[84,2542,139],{"class":131},[84,2544,194],{"class":135},[84,2546,2547],{"class":86,"line":197},[84,2548,200],{"class":135},[84,2550,2551,2553,2555,2557],{"class":86,"line":203},[84,2552,132],{"class":131},[84,2554,176],{"class":135},[84,2556,139],{"class":131},[84,2558,212],{"class":135},[84,2560,2561,2563,2565,2567],{"class":86,"line":215},[84,2562,132],{"class":131},[84,2564,189],{"class":135},[84,2566,139],{"class":131},[84,2568,224],{"class":135},[84,2570,2571],{"class":86,"line":227},[84,2572,230],{"class":135},[84,2574,2575,2577,2579,2581],{"class":86,"line":233},[84,2576,132],{"class":131},[84,2578,176],{"class":135},[84,2580,139],{"class":131},[84,2582,242],{"class":135},[84,2584,2585,2587,2589,2591],{"class":86,"line":245},[84,2586,132],{"class":131},[84,2588,250],{"class":135},[84,2590,139],{"class":131},[84,2592,255],{"class":135},[84,2594,2595],{"class":86,"line":258},[84,2596,261],{"class":135},[84,2598,2599,2601,2603,2605],{"class":86,"line":264},[84,2600,132],{"class":131},[84,2602,150],{"class":135},[84,2604,139],{"class":131},[84,2606,273],{"class":135},[84,2608,2609,2611,2613,2615],{"class":86,"line":276},[84,2610,132],{"class":131},[84,2612,176],{"class":135},[84,2614,139],{"class":131},[84,2616,285],{"class":135},[84,2618,2619],{"class":86,"line":288},[84,2620,291],{"class":135},[84,2622,2623,2625,2627,2629],{"class":86,"line":294},[84,2624,132],{"class":131},[84,2626,299],{"class":135},[84,2628,139],{"class":131},[84,2630,304],{"class":135},[84,2632,2633,2635,2637,2639],{"class":86,"line":307},[84,2634,132],{"class":131},[84,2636,176],{"class":135},[84,2638,139],{"class":131},[84,2640,316],{"class":135},[84,2642,2643],{"class":86,"line":319},[84,2644,322],{"class":135},[84,2646,2647,2649,2651,2653],{"class":86,"line":325},[84,2648,132],{"class":131},[84,2650,330],{"class":135},[84,2652,139],{"class":131},[84,2654,335],{"class":135},[84,2656,2657],{"class":86,"line":338},[84,2658,162],{"emptyLinePlaceholder":161},[84,2660,2661,2663,2665],{"class":86,"line":343},[84,2662,346],{"class":131},[84,2664,349],{"class":90},[84,2666,352],{"class":135},[84,2668,2669],{"class":86,"line":355},[84,2670,162],{"emptyLinePlaceholder":161},[84,2672,2673,2676,2678,2681,2683,2685,2688,2690,2693,2695,2698],{"class":86,"line":1244},[84,2674,2675],{"class":135},"    bg_r ",[84,2677,1326],{"class":131},[84,2679,2680],{"class":135}," DeclareLaunchArgument(",[84,2682,2355],{"class":1335},[84,2684,1326],{"class":131},[84,2686,2687],{"class":94},"\"backg_r\"",[84,2689,1391],{"class":135},[84,2691,2692],{"class":1335},"default_value",[84,2694,1326],{"class":131},[84,2696,2697],{"class":94},"\"255\"",[84,2699,2700],{"class":135},")\n",[84,2702,2703,2706,2708,2710,2712,2714,2717,2719,2721,2723,2725],{"class":86,"line":1253},[84,2704,2705],{"class":135},"    bg_g ",[84,2707,1326],{"class":131},[84,2709,2680],{"class":135},[84,2711,2355],{"class":1335},[84,2713,1326],{"class":131},[84,2715,2716],{"class":94},"\"backg_g\"",[84,2718,1391],{"class":135},[84,2720,2692],{"class":1335},[84,2722,1326],{"class":131},[84,2724,2697],{"class":94},[84,2726,2700],{"class":135},[84,2728,2729,2732,2734,2736,2738,2740,2743,2745,2747,2749,2751],{"class":86,"line":1258},[84,2730,2731],{"class":135},"    bg_b ",[84,2733,1326],{"class":131},[84,2735,2680],{"class":135},[84,2737,2355],{"class":1335},[84,2739,1326],{"class":131},[84,2741,2742],{"class":94},"\"backg_b\"",[84,2744,1391],{"class":135},[84,2746,2692],{"class":1335},[84,2748,1326],{"class":131},[84,2750,2697],{"class":94},[84,2752,2700],{"class":135},[84,2754,2755,2757,2759],{"class":86,"line":1265},[84,2756,2011],{"class":135},[84,2758,1326],{"class":131},[84,2760,1329],{"class":135},[84,2762,2763,2765,2767,2769],{"class":86,"line":1270},[84,2764,1336],{"class":1335},[84,2766,1326],{"class":131},[84,2768,675],{"class":94},[84,2770,1343],{"class":135},[84,2772,2773,2775,2777,2779],{"class":86,"line":1276},[84,2774,1349],{"class":1335},[84,2776,1326],{"class":131},[84,2778,683],{"class":94},[84,2780,1343],{"class":135},[84,2782,2783,2785,2787,2790,2793,2796,2798,2800,2803,2805,2807,2809,2812,2814,2816],{"class":86,"line":1281},[84,2784,1374],{"class":1335},[84,2786,1326],{"class":131},[84,2788,2789],{"class":135},"[{",[84,2791,2792],{"class":94},"\"background_r\"",[84,2794,2795],{"class":135}," : LaunchConfiguration(",[84,2797,2687],{"class":94},[84,2799,1385],{"class":135},[84,2801,2802],{"class":94},"\"background_g\"",[84,2804,2795],{"class":135},[84,2806,2716],{"class":94},[84,2808,1385],{"class":135},[84,2810,2811],{"class":94},"\"background_b\"",[84,2813,2795],{"class":135},[84,2815,2742],{"class":94},[84,2817,2818],{"class":135},")}]\n",[84,2820,2821],{"class":86,"line":1287},[84,2822,2038],{"class":135},[84,2824,2825,2827],{"class":86,"line":1292},[84,2826,358],{"class":131},[84,2828,2829],{"class":135}," LaunchDescription([bg_r,bg_g,bg_b,turtle])\n",[10,2831,2833],{"id":2832},"launch_python_file-inclusion","Launch_Python_File Inclusion",[15,2835,2836],{},[18,2837],{"alt":20,"src":2838},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1190.webp",[15,2840,2841],{},"Suppose I want to write a launch file related to robot startup. In this launch file, I may need to start the LiDAR, start the IMU, start the chassis, and so on. We need to include all these launch files into the robot startup launch file.",[15,2843,2844],{},[18,2845],{"alt":20,"src":2846},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1191.webp",[15,2848,2849],{},[18,2850],{"alt":20,"src":2851},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1192.webp",[15,2853,2854],{},[18,2855],{"alt":20,"src":2856},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1193.webp",[15,2858,2859],{},"This value is an object encapsulated from the included launch file.",[15,2861,2862],{},"The class corresponding to this object is PythonLaunchDescriptionSource.",[15,2864,2865],{},"You also need to set a parameter inside the class.",[15,2867,2868],{},[18,2869],{"alt":20,"src":2870},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1194.webp",[15,2872,2873],{},"This parameter is launch_file_path, which is the file path.",[15,2875,2876],{},[18,2877],{"alt":20,"src":2878},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1195.webp",[15,2880,2881],{},[18,2882],{"alt":20,"src":2883},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1196.webp",[15,2885,2886],{},"It is recommended to use this to obtain the path.",[15,2888,2889],{},[18,2890],{"alt":20,"src":2891},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1197.webp",[15,2893,2894],{},[18,2895],{"alt":20,"src":2896},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1198.webp",[15,2898,2899],{},[18,2900],{"alt":20,"src":2901},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1199.webp",[15,2903,2904],{},[18,2905],{"alt":20,"src":2906},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1200.webp",[15,2908,2909],{},[18,2910],{"alt":20,"src":2911},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1201.webp",[15,2913,2914],{},"You can also pass parameters to it.",[15,2916,2917],{},[18,2918],{"alt":20,"src":2919},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1202.webp",[15,2921,2922],{},[18,2923],{"alt":20,"src":2924},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1203.webp",[15,2926,2927],{},[18,2928],{"alt":20,"src":2929},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1204.webp",[75,2931,2933],{"className":122,"code":2932,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\nimport os\n\ndef generate_launch_description():\n    include = IncludeLaunchDescription(\n        launch_description_source=PythonLaunchDescriptionSource(\n            launch_file_path=os.path.join(\n                get_package_share_directory(\"cpp01_launch\"),\n                \"launch/py\",\n                \"py04_args_launch.py\"\n            )\n        ),\n        launch_arguments=[(\"backg_r\",\"80\"),(\"backg_g\",\"10\"),(\"backg_b\",\"200\")]\n    )\n    return LaunchDescription([include])\n",[81,2934,2935,2945,2955,2959,2963,2973,2983,2987,2997,3007,3011,3021,3031,3035,3045,3055,3059,3069,3079,3083,3093,3097,3103,3107,3115,3125,3135,3145,3155,3162,3167,3172,3177,3215,3219],{"__ignoreMap":20},[84,2936,2937,2939,2941,2943],{"class":86,"line":87},[84,2938,132],{"class":131},[84,2940,136],{"class":135},[84,2942,139],{"class":131},[84,2944,142],{"class":135},[84,2946,2947,2949,2951,2953],{"class":86,"line":145},[84,2948,132],{"class":131},[84,2950,150],{"class":135},[84,2952,139],{"class":131},[84,2954,155],{"class":135},[84,2956,2957],{"class":86,"line":158},[84,2958,162],{"emptyLinePlaceholder":161},[84,2960,2961],{"class":86,"line":165},[84,2962,168],{"class":135},[84,2964,2965,2967,2969,2971],{"class":86,"line":171},[84,2966,132],{"class":131},[84,2968,176],{"class":135},[84,2970,139],{"class":131},[84,2972,181],{"class":135},[84,2974,2975,2977,2979,2981],{"class":86,"line":184},[84,2976,132],{"class":131},[84,2978,189],{"class":135},[84,2980,139],{"class":131},[84,2982,194],{"class":135},[84,2984,2985],{"class":86,"line":197},[84,2986,200],{"class":135},[84,2988,2989,2991,2993,2995],{"class":86,"line":203},[84,2990,132],{"class":131},[84,2992,176],{"class":135},[84,2994,139],{"class":131},[84,2996,212],{"class":135},[84,2998,2999,3001,3003,3005],{"class":86,"line":215},[84,3000,132],{"class":131},[84,3002,189],{"class":135},[84,3004,139],{"class":131},[84,3006,224],{"class":135},[84,3008,3009],{"class":86,"line":227},[84,3010,230],{"class":135},[84,3012,3013,3015,3017,3019],{"class":86,"line":233},[84,3014,132],{"class":131},[84,3016,176],{"class":135},[84,3018,139],{"class":131},[84,3020,242],{"class":135},[84,3022,3023,3025,3027,3029],{"class":86,"line":245},[84,3024,132],{"class":131},[84,3026,250],{"class":135},[84,3028,139],{"class":131},[84,3030,255],{"class":135},[84,3032,3033],{"class":86,"line":258},[84,3034,261],{"class":135},[84,3036,3037,3039,3041,3043],{"class":86,"line":264},[84,3038,132],{"class":131},[84,3040,150],{"class":135},[84,3042,139],{"class":131},[84,3044,273],{"class":135},[84,3046,3047,3049,3051,3053],{"class":86,"line":276},[84,3048,132],{"class":131},[84,3050,176],{"class":135},[84,3052,139],{"class":131},[84,3054,285],{"class":135},[84,3056,3057],{"class":86,"line":288},[84,3058,291],{"class":135},[84,3060,3061,3063,3065,3067],{"class":86,"line":294},[84,3062,132],{"class":131},[84,3064,299],{"class":135},[84,3066,139],{"class":131},[84,3068,304],{"class":135},[84,3070,3071,3073,3075,3077],{"class":86,"line":307},[84,3072,132],{"class":131},[84,3074,176],{"class":135},[84,3076,139],{"class":131},[84,3078,316],{"class":135},[84,3080,3081],{"class":86,"line":319},[84,3082,322],{"class":135},[84,3084,3085,3087,3089,3091],{"class":86,"line":325},[84,3086,132],{"class":131},[84,3088,330],{"class":135},[84,3090,139],{"class":131},[84,3092,335],{"class":135},[84,3094,3095],{"class":86,"line":338},[84,3096,162],{"emptyLinePlaceholder":161},[84,3098,3099,3101],{"class":86,"line":343},[84,3100,139],{"class":131},[84,3102,1237],{"class":135},[84,3104,3105],{"class":86,"line":355},[84,3106,162],{"emptyLinePlaceholder":161},[84,3108,3109,3111,3113],{"class":86,"line":1244},[84,3110,346],{"class":131},[84,3112,349],{"class":90},[84,3114,352],{"class":135},[84,3116,3117,3120,3122],{"class":86,"line":1253},[84,3118,3119],{"class":135},"    include ",[84,3121,1326],{"class":131},[84,3123,3124],{"class":135}," IncludeLaunchDescription(\n",[84,3126,3127,3130,3132],{"class":86,"line":1258},[84,3128,3129],{"class":1335},"        launch_description_source",[84,3131,1326],{"class":131},[84,3133,3134],{"class":135},"PythonLaunchDescriptionSource(\n",[84,3136,3137,3140,3142],{"class":86,"line":1265},[84,3138,3139],{"class":1335},"            launch_file_path",[84,3141,1326],{"class":131},[84,3143,3144],{"class":135},"os.path.join(\n",[84,3146,3147,3150,3152],{"class":86,"line":1270},[84,3148,3149],{"class":135},"                get_package_share_directory(",[84,3151,1382],{"class":94},[84,3153,3154],{"class":135},"),\n",[84,3156,3157,3160],{"class":86,"line":1276},[84,3158,3159],{"class":94},"                \"launch/py\"",[84,3161,1343],{"class":135},[84,3163,3164],{"class":86,"line":1281},[84,3165,3166],{"class":94},"                \"py04_args_launch.py\"\n",[84,3168,3169],{"class":86,"line":1287},[84,3170,3171],{"class":135},"            )\n",[84,3173,3174],{"class":86,"line":1292},[84,3175,3176],{"class":135},"        ),\n",[84,3178,3179,3182,3184,3187,3189,3191,3194,3197,3199,3201,3204,3206,3208,3210,3213],{"class":86,"line":1298},[84,3180,3181],{"class":1335},"        launch_arguments",[84,3183,1326],{"class":131},[84,3185,3186],{"class":135},"[(",[84,3188,2687],{"class":94},[84,3190,1391],{"class":135},[84,3192,3193],{"class":94},"\"80\"",[84,3195,3196],{"class":135},"),(",[84,3198,2716],{"class":94},[84,3200,1391],{"class":135},[84,3202,3203],{"class":94},"\"10\"",[84,3205,3196],{"class":135},[84,3207,2742],{"class":94},[84,3209,1391],{"class":135},[84,3211,3212],{"class":94},"\"200\"",[84,3214,1397],{"class":135},[84,3216,3217],{"class":86,"line":1303},[84,3218,2038],{"class":135},[84,3220,3221,3223],{"class":86,"line":1309},[84,3222,358],{"class":131},[84,3224,3225],{"class":135}," LaunchDescription([include])\n",[10,3227,3229],{"id":3228},"launch_python_group-settings","Launch_Python_Group Settings",[15,3231,3232],{},[18,3233],{"alt":20,"src":3234},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1205.webp",[15,3236,3237],{},[18,3238],{"alt":20,"src":3239},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1206.webp",[15,3241,3242],{},[18,3243],{"alt":20,"src":3244},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1207.webp",[15,3246,3247],{},[18,3248],{"alt":20,"src":3249},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1208.webp",[15,3251,3252],{},[18,3253],{"alt":20,"src":3254},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1209.webp",[15,3256,3257],{},[18,3258],{"alt":20,"src":3259},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1210.webp",[15,3261,3262],{},[18,3263],{"alt":20,"src":3264},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1211.webp",[75,3266,3268],{"className":122,"code":3267,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n    turtle1 = Node(\n    package=\"turtlesim\",\n    executable=\"turtlesim_node\",\n    name=\"t1\"\n    )\n    turtle2 = Node(\n    package=\"turtlesim\",\n    executable=\"turtlesim_node\",\n    name=\"t2\"\n    )\n    turtle3 = Node(\n    package=\"turtlesim\",\n    executable=\"turtlesim_node\",\n    name=\"t3\"\n    )\n\n    group1 = GroupAction(actions=[PushRosNamespace(\"g1\"),turtle1,turtle2])\n    group2 = GroupAction(actions=[PushRosNamespace(\"g2\"),turtle3])\n\n    return LaunchDescription([group1,group2])\n",[81,3269,3270,3280,3290,3294,3298,3308,3318,3322,3332,3342,3346,3356,3366,3370,3380,3390,3394,3404,3414,3418,3428,3432,3440,3449,3460,3471,3480,3484,3492,3502,3512,3520,3524,3533,3543,3553,3562,3566,3570,3594,3615,3619],{"__ignoreMap":20},[84,3271,3272,3274,3276,3278],{"class":86,"line":87},[84,3273,132],{"class":131},[84,3275,136],{"class":135},[84,3277,139],{"class":131},[84,3279,142],{"class":135},[84,3281,3282,3284,3286,3288],{"class":86,"line":145},[84,3283,132],{"class":131},[84,3285,150],{"class":135},[84,3287,139],{"class":131},[84,3289,155],{"class":135},[84,3291,3292],{"class":86,"line":158},[84,3293,162],{"emptyLinePlaceholder":161},[84,3295,3296],{"class":86,"line":165},[84,3297,168],{"class":135},[84,3299,3300,3302,3304,3306],{"class":86,"line":171},[84,3301,132],{"class":131},[84,3303,176],{"class":135},[84,3305,139],{"class":131},[84,3307,181],{"class":135},[84,3309,3310,3312,3314,3316],{"class":86,"line":184},[84,3311,132],{"class":131},[84,3313,189],{"class":135},[84,3315,139],{"class":131},[84,3317,194],{"class":135},[84,3319,3320],{"class":86,"line":197},[84,3321,200],{"class":135},[84,3323,3324,3326,3328,3330],{"class":86,"line":203},[84,3325,132],{"class":131},[84,3327,176],{"class":135},[84,3329,139],{"class":131},[84,3331,212],{"class":135},[84,3333,3334,3336,3338,3340],{"class":86,"line":215},[84,3335,132],{"class":131},[84,3337,189],{"class":135},[84,3339,139],{"class":131},[84,3341,224],{"class":135},[84,3343,3344],{"class":86,"line":227},[84,3345,230],{"class":135},[84,3347,3348,3350,3352,3354],{"class":86,"line":233},[84,3349,132],{"class":131},[84,3351,176],{"class":135},[84,3353,139],{"class":131},[84,3355,242],{"class":135},[84,3357,3358,3360,3362,3364],{"class":86,"line":245},[84,3359,132],{"class":131},[84,3361,250],{"class":135},[84,3363,139],{"class":131},[84,3365,255],{"class":135},[84,3367,3368],{"class":86,"line":258},[84,3369,261],{"class":135},[84,3371,3372,3374,3376,3378],{"class":86,"line":264},[84,3373,132],{"class":131},[84,3375,150],{"class":135},[84,3377,139],{"class":131},[84,3379,273],{"class":135},[84,3381,3382,3384,3386,3388],{"class":86,"line":276},[84,3383,132],{"class":131},[84,3385,176],{"class":135},[84,3387,139],{"class":131},[84,3389,285],{"class":135},[84,3391,3392],{"class":86,"line":288},[84,3393,291],{"class":135},[84,3395,3396,3398,3400,3402],{"class":86,"line":294},[84,3397,132],{"class":131},[84,3399,299],{"class":135},[84,3401,139],{"class":131},[84,3403,304],{"class":135},[84,3405,3406,3408,3410,3412],{"class":86,"line":307},[84,3407,132],{"class":131},[84,3409,176],{"class":135},[84,3411,139],{"class":131},[84,3413,316],{"class":135},[84,3415,3416],{"class":86,"line":319},[84,3417,322],{"class":135},[84,3419,3420,3422,3424,3426],{"class":86,"line":325},[84,3421,132],{"class":131},[84,3423,330],{"class":135},[84,3425,139],{"class":131},[84,3427,335],{"class":135},[84,3429,3430],{"class":86,"line":338},[84,3431,162],{"emptyLinePlaceholder":161},[84,3433,3434,3436,3438],{"class":86,"line":343},[84,3435,346],{"class":131},[84,3437,349],{"class":90},[84,3439,352],{"class":135},[84,3441,3442,3445,3447],{"class":86,"line":355},[84,3443,3444],{"class":135},"    turtle1 ",[84,3446,1326],{"class":131},[84,3448,1329],{"class":135},[84,3450,3451,3454,3456,3458],{"class":86,"line":1244},[84,3452,3453],{"class":1335},"    package",[84,3455,1326],{"class":131},[84,3457,675],{"class":94},[84,3459,1343],{"class":135},[84,3461,3462,3465,3467,3469],{"class":86,"line":1253},[84,3463,3464],{"class":1335},"    executable",[84,3466,1326],{"class":131},[84,3468,683],{"class":94},[84,3470,1343],{"class":135},[84,3472,3473,3476,3478],{"class":86,"line":1258},[84,3474,3475],{"class":1335},"    name",[84,3477,1326],{"class":131},[84,3479,791],{"class":94},[84,3481,3482],{"class":86,"line":1265},[84,3483,2038],{"class":135},[84,3485,3486,3488,3490],{"class":86,"line":1270},[84,3487,1323],{"class":135},[84,3489,1326],{"class":131},[84,3491,1329],{"class":135},[84,3493,3494,3496,3498,3500],{"class":86,"line":1276},[84,3495,3453],{"class":1335},[84,3497,1326],{"class":131},[84,3499,675],{"class":94},[84,3501,1343],{"class":135},[84,3503,3504,3506,3508,3510],{"class":86,"line":1281},[84,3505,3464],{"class":1335},[84,3507,1326],{"class":131},[84,3509,683],{"class":94},[84,3511,1343],{"class":135},[84,3513,3514,3516,3518],{"class":86,"line":1287},[84,3515,3475],{"class":1335},[84,3517,1326],{"class":131},[84,3519,822],{"class":94},[84,3521,3522],{"class":86,"line":1292},[84,3523,2038],{"class":135},[84,3525,3526,3529,3531],{"class":86,"line":1298},[84,3527,3528],{"class":135},"    turtle3 ",[84,3530,1326],{"class":131},[84,3532,1329],{"class":135},[84,3534,3535,3537,3539,3541],{"class":86,"line":1303},[84,3536,3453],{"class":1335},[84,3538,1326],{"class":131},[84,3540,675],{"class":94},[84,3542,1343],{"class":135},[84,3544,3545,3547,3549,3551],{"class":86,"line":1309},[84,3546,3464],{"class":1335},[84,3548,1326],{"class":131},[84,3550,683],{"class":94},[84,3552,1343],{"class":135},[84,3554,3555,3557,3559],{"class":86,"line":1314},[84,3556,3475],{"class":1335},[84,3558,1326],{"class":131},[84,3560,3561],{"class":94},"\"t3\"\n",[84,3563,3564],{"class":86,"line":1320},[84,3565,2038],{"class":135},[84,3567,3568],{"class":86,"line":1332},[84,3569,162],{"emptyLinePlaceholder":161},[84,3571,3572,3575,3577,3580,3583,3585,3588,3591],{"class":86,"line":1346},[84,3573,3574],{"class":135},"    group1 ",[84,3576,1326],{"class":131},[84,3578,3579],{"class":135}," GroupAction(",[84,3581,3582],{"class":1335},"actions",[84,3584,1326],{"class":131},[84,3586,3587],{"class":135},"[PushRosNamespace(",[84,3589,3590],{"class":94},"\"g1\"",[84,3592,3593],{"class":135},"),turtle1,turtle2])\n",[84,3595,3596,3599,3601,3603,3605,3607,3609,3612],{"class":86,"line":1358},[84,3597,3598],{"class":135},"    group2 ",[84,3600,1326],{"class":131},[84,3602,3579],{"class":135},[84,3604,3582],{"class":1335},[84,3606,1326],{"class":131},[84,3608,3587],{"class":135},[84,3610,3611],{"class":94},"\"g2\"",[84,3613,3614],{"class":135},"),turtle3])\n",[84,3616,3617],{"class":86,"line":1371},[84,3618,162],{"emptyLinePlaceholder":161},[84,3620,3621,3623],{"class":86,"line":1400},[84,3622,358],{"class":131},[84,3624,3625],{"class":135}," LaunchDescription([group1,group2])\n",[10,3627,3629],{"id":3628},"launch_python_event-setting","Launch_Python_Event Setting",[15,3631,3632],{},[18,3633],{"alt":20,"src":3634},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1212.webp",[15,3636,3637],{},[18,3638],{"alt":20,"src":3639},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1213.webp",[15,3641,3642],{},"The first is mainly used to register events, the second is to start events, and the third is for node exit.",[15,3644,3645],{},[18,3646],{"alt":20,"src":3647},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1214.webp",[26,3649],{},[15,3651,3652],{},[18,3653],{"alt":20,"src":3654},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1215.webp",[15,3656,3657],{},[18,3658],{"alt":20,"src":3659},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1216.webp",[15,3661,3662],{},[18,3663],{"alt":20,"src":3664},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1217.webp",[15,3666,3667],{},"This is the command to spawn a new turtle in the terminal.",[15,3669,3670],{},[18,3671],{"alt":20,"src":3672},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1218.webp",[15,3674,3675],{},[18,3676],{"alt":20,"src":3677},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1219.webp",[15,3679,3680],{},[18,3681],{"alt":20,"src":3682},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1220.webp",[15,3684,3685],{},[18,3686],{"alt":20,"src":3687},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1221.webp",[15,3689,3690],{},"The first parameter is used to register for which event.",[15,3692,3693],{},[18,3694],{"alt":20,"src":3695},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1222.webp",[15,3697,3698],{},"target_action is the event source, and you need to register the event for which node.",[15,3700,3701],{},"on_start is waiting for the event to be triggered — what operations do you need to perform?",[15,3703,3704],{},[18,3705],{"alt":20,"src":3706},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1223.webp",[15,3708,3709],{},[18,3710],{"alt":20,"src":3711},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1224.webp",[15,3713,3714],{},[18,3715],{"alt":20,"src":3716},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1225.webp",[15,3718,3719],{},[18,3720],{"alt":20,"src":3721},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1226.webp",[75,3723,3725],{"className":122,"code":3724,"language":124,"meta":20,"style":20},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\n\n封装终端指令相关类\nfrom launch.actions import ExecuteProcess\nfrom launch.substitutions import FindExecutable\n参数声明与获取\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\n文件包含相关\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n分组相关\nfrom launch_ros.actions import PushRosNamespace\nfrom launch.actions import GroupAction\n事件相关\nfrom launch.event_handlers import OnProcessStart,OnProcessExit\nfrom launch.actions import ExecuteProcess,RegisterEventHandler,LogInfo\n获取功能包下share目录或路径\nfrom ament_index_python.packages import get_package_share_directory\n\ndef generate_launch_description():\n    turtle = Node(\n    package=\"turtlesim\",\n    executable=\"turtlesim_node\",\n    )\n    spawn = ExecuteProcess(\n        cmd=[\"ros2 service call /spawn turtlesim/srv/Spawn \\\"{'x': 8.0,'y': 3.0}\\\"\"],\n        output=\"both\",\n        shell=True\n    )\n\n    event_start = RegisterEventHandler(\n        event_handler=OnProcessStart(\n            target_action=turtle,\n            on_start=spawn\n        )\n    )\n\n    event_exit = RegisterEventHandler(\n        event_handler=OnProcessExit(\n            target_action=turtle,\n            on_exit=[LogInfo(msg=\"turtlesim_node:退出！\")]\n        )\n    )\n    return LaunchDescription([turtle,event_start,event_exit])\n",[81,3726,3727,3737,3747,3751,3755,3765,3775,3779,3789,3799,3803,3813,3823,3827,3837,3847,3851,3861,3871,3875,3885,3889,3897,3905,3915,3925,3929,3938,3963,3974,3982,3986,3990,4000,4010,4020,4030,4034,4038,4042,4051,4060,4068,4088,4092,4096],{"__ignoreMap":20},[84,3728,3729,3731,3733,3735],{"class":86,"line":87},[84,3730,132],{"class":131},[84,3732,136],{"class":135},[84,3734,139],{"class":131},[84,3736,142],{"class":135},[84,3738,3739,3741,3743,3745],{"class":86,"line":145},[84,3740,132],{"class":131},[84,3742,150],{"class":135},[84,3744,139],{"class":131},[84,3746,155],{"class":135},[84,3748,3749],{"class":86,"line":158},[84,3750,162],{"emptyLinePlaceholder":161},[84,3752,3753],{"class":86,"line":165},[84,3754,168],{"class":135},[84,3756,3757,3759,3761,3763],{"class":86,"line":171},[84,3758,132],{"class":131},[84,3760,176],{"class":135},[84,3762,139],{"class":131},[84,3764,181],{"class":135},[84,3766,3767,3769,3771,3773],{"class":86,"line":184},[84,3768,132],{"class":131},[84,3770,189],{"class":135},[84,3772,139],{"class":131},[84,3774,194],{"class":135},[84,3776,3777],{"class":86,"line":197},[84,3778,200],{"class":135},[84,3780,3781,3783,3785,3787],{"class":86,"line":203},[84,3782,132],{"class":131},[84,3784,176],{"class":135},[84,3786,139],{"class":131},[84,3788,212],{"class":135},[84,3790,3791,3793,3795,3797],{"class":86,"line":215},[84,3792,132],{"class":131},[84,3794,189],{"class":135},[84,3796,139],{"class":131},[84,3798,224],{"class":135},[84,3800,3801],{"class":86,"line":227},[84,3802,230],{"class":135},[84,3804,3805,3807,3809,3811],{"class":86,"line":233},[84,3806,132],{"class":131},[84,3808,176],{"class":135},[84,3810,139],{"class":131},[84,3812,242],{"class":135},[84,3814,3815,3817,3819,3821],{"class":86,"line":245},[84,3816,132],{"class":131},[84,3818,250],{"class":135},[84,3820,139],{"class":131},[84,3822,255],{"class":135},[84,3824,3825],{"class":86,"line":258},[84,3826,261],{"class":135},[84,3828,3829,3831,3833,3835],{"class":86,"line":264},[84,3830,132],{"class":131},[84,3832,150],{"class":135},[84,3834,139],{"class":131},[84,3836,273],{"class":135},[84,3838,3839,3841,3843,3845],{"class":86,"line":276},[84,3840,132],{"class":131},[84,3842,176],{"class":135},[84,3844,139],{"class":131},[84,3846,285],{"class":135},[84,3848,3849],{"class":86,"line":288},[84,3850,291],{"class":135},[84,3852,3853,3855,3857,3859],{"class":86,"line":294},[84,3854,132],{"class":131},[84,3856,299],{"class":135},[84,3858,139],{"class":131},[84,3860,304],{"class":135},[84,3862,3863,3865,3867,3869],{"class":86,"line":307},[84,3864,132],{"class":131},[84,3866,176],{"class":135},[84,3868,139],{"class":131},[84,3870,316],{"class":135},[84,3872,3873],{"class":86,"line":319},[84,3874,322],{"class":135},[84,3876,3877,3879,3881,3883],{"class":86,"line":325},[84,3878,132],{"class":131},[84,3880,330],{"class":135},[84,3882,139],{"class":131},[84,3884,335],{"class":135},[84,3886,3887],{"class":86,"line":338},[84,3888,162],{"emptyLinePlaceholder":161},[84,3890,3891,3893,3895],{"class":86,"line":343},[84,3892,346],{"class":131},[84,3894,349],{"class":90},[84,3896,352],{"class":135},[84,3898,3899,3901,3903],{"class":86,"line":355},[84,3900,2011],{"class":135},[84,3902,1326],{"class":131},[84,3904,1329],{"class":135},[84,3906,3907,3909,3911,3913],{"class":86,"line":1244},[84,3908,3453],{"class":1335},[84,3910,1326],{"class":131},[84,3912,675],{"class":94},[84,3914,1343],{"class":135},[84,3916,3917,3919,3921,3923],{"class":86,"line":1253},[84,3918,3464],{"class":1335},[84,3920,1326],{"class":131},[84,3922,683],{"class":94},[84,3924,1343],{"class":135},[84,3926,3927],{"class":86,"line":1258},[84,3928,2038],{"class":135},[84,3930,3931,3934,3936],{"class":86,"line":1265},[84,3932,3933],{"class":135},"    spawn ",[84,3935,1326],{"class":131},[84,3937,2048],{"class":135},[84,3939,3940,3942,3944,3947,3950,3953,3956,3958,3961],{"class":86,"line":1270},[84,3941,2053],{"class":1335},[84,3943,1326],{"class":131},[84,3945,3946],{"class":135},"[",[84,3948,3949],{"class":94},"\"ros2 service call /spawn turtlesim/srv/Spawn ",[84,3951,3952],{"class":104},"\\\"",[84,3954,3955],{"class":94},"{'x': 8.0,'y': 3.0}",[84,3957,3952],{"class":104},[84,3959,3960],{"class":94},"\"",[84,3962,2065],{"class":135},[84,3964,3965,3967,3969,3972],{"class":86,"line":1276},[84,3966,2070],{"class":1335},[84,3968,1326],{"class":131},[84,3970,3971],{"class":94},"\"both\"",[84,3973,1343],{"class":135},[84,3975,3976,3978,3980],{"class":86,"line":1281},[84,3977,2082],{"class":1335},[84,3979,1326],{"class":131},[84,3981,1758],{"class":104},[84,3983,3984],{"class":86,"line":1287},[84,3985,2038],{"class":135},[84,3987,3988],{"class":86,"line":1292},[84,3989,162],{"emptyLinePlaceholder":161},[84,3991,3992,3995,3997],{"class":86,"line":1298},[84,3993,3994],{"class":135},"    event_start ",[84,3996,1326],{"class":131},[84,3998,3999],{"class":135}," RegisterEventHandler(\n",[84,4001,4002,4005,4007],{"class":86,"line":1303},[84,4003,4004],{"class":1335},"        event_handler",[84,4006,1326],{"class":131},[84,4008,4009],{"class":135},"OnProcessStart(\n",[84,4011,4012,4015,4017],{"class":86,"line":1309},[84,4013,4014],{"class":1335},"            target_action",[84,4016,1326],{"class":131},[84,4018,4019],{"class":135},"turtle,\n",[84,4021,4022,4025,4027],{"class":86,"line":1314},[84,4023,4024],{"class":1335},"            on_start",[84,4026,1326],{"class":131},[84,4028,4029],{"class":135},"spawn\n",[84,4031,4032],{"class":86,"line":1320},[84,4033,1403],{"class":135},[84,4035,4036],{"class":86,"line":1332},[84,4037,2038],{"class":135},[84,4039,4040],{"class":86,"line":1346},[84,4041,162],{"emptyLinePlaceholder":161},[84,4043,4044,4047,4049],{"class":86,"line":1358},[84,4045,4046],{"class":135},"    event_exit ",[84,4048,1326],{"class":131},[84,4050,3999],{"class":135},[84,4052,4053,4055,4057],{"class":86,"line":1371},[84,4054,4004],{"class":1335},[84,4056,1326],{"class":131},[84,4058,4059],{"class":135},"OnProcessExit(\n",[84,4061,4062,4064,4066],{"class":86,"line":1400},[84,4063,4014],{"class":1335},[84,4065,1326],{"class":131},[84,4067,4019],{"class":135},[84,4069,4070,4073,4075,4078,4081,4083,4086],{"class":86,"line":1406},[84,4071,4072],{"class":1335},"            on_exit",[84,4074,1326],{"class":131},[84,4076,4077],{"class":135},"[LogInfo(",[84,4079,4080],{"class":1335},"msg",[84,4082,1326],{"class":131},[84,4084,4085],{"class":94},"\"turtlesim_node:退出！\"",[84,4087,1397],{"class":135},[84,4089,4090],{"class":86,"line":1722},[84,4091,1403],{"class":135},[84,4093,4094],{"class":86,"line":1728},[84,4095,2038],{"class":135},[84,4097,4098,4100],{"class":86,"line":1750},[84,4099,358],{"class":131},[84,4101,4102],{"class":135}," LaunchDescription([turtle,event_start,event_exit])\n",[15,4104,4105],{},[18,4106],{"alt":20,"src":4107},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1227.webp",[15,4109,4110],{},"on_exit can create an object, and it can also be placed in a list.",[15,4112,4113],{},"You can just learn the Python version of Launch. It's fine to have a general understanding of the XML and YAML versions of Launch — just write the Python version yourself. When you need to use Launch files from someone else's open-source package, even if they're in XML or YAML format, it generally won't affect normal usage.",[10,4115,4117],{"id":4116},"launch_xml_yaml_node","Launch_XML_YAML_Node",[10,4119,4121],{"id":4120},"launch_xml_yaml_execute-command","Launch_XML_YAML_Execute Command",[10,4123,4125],{"id":4124},"launch_xml_yaml_parameter-settings","Launch_XML_YAML_Parameter Settings",[10,4127,4129],{"id":4128},"launch_xml_yaml_group-settings","Launch_XML_YAML_Group Settings",[10,4131,4133],{"id":4132},"launch_xml_yaml_file-contains","Launch_XML_YAML_file contains",[4135,4136,4137],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .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 .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}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":20,"searchDepth":145,"depth":145,"links":4139},[4140,4141,4142,4143,4144,4145,4146,4147,4148,4149,4150,4151,4152],{"id":12,"depth":158,"text":13},{"id":364,"depth":158,"text":365},{"id":848,"depth":158,"text":849},{"id":1781,"depth":158,"text":1782},{"id":2417,"depth":158,"text":2418},{"id":2832,"depth":158,"text":2833},{"id":3228,"depth":158,"text":3229},{"id":3628,"depth":158,"text":3629},{"id":4116,"depth":158,"text":4117},{"id":4120,"depth":158,"text":4121},{"id":4124,"depth":158,"text":4125},{"id":4128,"depth":158,"text":4129},{"id":4132,"depth":158,"text":4133},"/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch","6",6000000,"2023-12-30","wiki/2023-12-30-ros2-tutorial","en-us:2023-12-30-ros2-tutorial","/en-us/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki/2023-12-30-ros2-tutorial/ch6-Launch",false,null,"en-US","en-us",{},{"title":5,"description":20},"/wiki/2023-12-30-ros2-tutorial/ch6-launch","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch6-Launch","_V5521NpsSGkU0ikAq5PiGRJvOILdAfxb-YbOWUO-nU",[4173,4179,4185,4191,4197,4203,4209,4215,4221,4227,4233,4239,4245,4251,4257,4263,4269,4275,4280,4286,4291,4297,4303,4309,4315,4321,4327,4333,4339,4345,4351,4357,4363,4369,4375,4381,4387,4393,4399,4405,4411,4417,4423,4429,4435,4441,4447,4453,4459,4465,4471,4477,4483,4489,4495,4501,4502,4508,4514,4520],{"path":4174,"stem":4175,"title":4176,"date":4156,"chapter":4177,"chapterSort":4178,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","Introduction to ROS2","1",1000000,{"path":4180,"stem":4181,"title":4182,"date":4156,"chapter":4183,"chapterSort":4184,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2 Simulation Platform","10",10000000,{"path":4186,"stem":4187,"title":4188,"date":4156,"chapter":4189,"chapterSort":4190,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":4192,"stem":4193,"title":4194,"date":4156,"chapter":4195,"chapterSort":4196,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":4198,"stem":4199,"title":4200,"date":4156,"chapter":4201,"chapterSort":4202,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":4204,"stem":4205,"title":4206,"date":4156,"chapter":4207,"chapterSort":4208,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-4-igngz2gzsim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-4-Igngz2gzsim","Migrate Ign Gazebo to Gz Sim","11.4",11040000,{"path":4210,"stem":4211,"title":4212,"date":4156,"chapter":4213,"chapterSort":4214,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gazebo simulation platform","11",11000000,{"path":4216,"stem":4217,"title":4218,"date":4156,"chapter":4219,"chapterSort":4220,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-1-humble-ban-ben","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-1-Humble版本","Humble Navigation Simulation","12.1",12010000,{"path":4222,"stem":4223,"title":4224,"date":4156,"chapter":4225,"chapterSort":4226,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-2-jazzy-ban-ben","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-2-Jazzy版本","Jazzy Navigation Simulation","12.2",12020000,{"path":4228,"stem":4229,"title":4230,"date":4156,"chapter":4231,"chapterSort":4232,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy","Differences in Navigation between Humble and Jazzy","12.3",12030000,{"path":4234,"stem":4235,"title":4236,"date":4156,"chapter":4237,"chapterSort":4238,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-机器人导航Navigation2(仿真篇)","Robot Navigation with Navigation2 (Simulation)","12",12000000,{"path":4240,"stem":4241,"title":4242,"date":4156,"chapter":4243,"chapterSort":4244,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-1-Boost.Aiso","Boost.Asio库","13.1.1",13010100,{"path":4246,"stem":4247,"title":4248,"date":4156,"chapter":4249,"chapterSort":4250,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2-serial-driver","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2_serial_driver","ROS2 Serial Driver Library","13.1.2",13010200,{"path":4252,"stem":4253,"title":4254,"date":4156,"chapter":4255,"chapterSort":4256,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-chuan-kou-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-串口通信","UART serial communication","13.1",13010000,{"path":4258,"stem":4259,"title":4260,"date":4156,"chapter":4261,"chapterSort":4262,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","SocketCAN","13.2.1",13020100,{"path":4264,"stem":4265,"title":4266,"date":4156,"chapter":4267,"chapterSort":4268,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2-socketcan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2_socketcan","ROS2_SocketCAN","13.2.2",13020200,{"path":4270,"stem":4271,"title":4272,"date":4156,"chapter":4273,"chapterSort":4274,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-can-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-CAN通信","CAN communication","13.2",13020000,{"path":4276,"stem":4277,"title":4242,"date":4156,"chapter":4278,"chapterSort":4279,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-1-Boost.Aiso","13.3.1",13030100,{"path":4281,"stem":4282,"title":4283,"date":4156,"chapter":4284,"chapterSort":4285,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-tcp-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-TCP通信","TCP communication","13.3",13030000,{"path":4287,"stem":4288,"title":4242,"date":4156,"chapter":4289,"chapterSort":4290,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-1-Boost.Aiso","13.4.1",13040100,{"path":4292,"stem":4293,"title":4294,"date":4156,"chapter":4295,"chapterSort":4296,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-UDP通信","UDP communication","13.4",13040000,{"path":4298,"stem":4299,"title":4300,"date":4156,"chapter":4301,"chapterSort":4302,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-linux-ying-jian-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-Linux硬件通信","Linux hardware communication","13",13000000,{"path":4304,"stem":4305,"title":4306,"date":4156,"chapter":4307,"chapterSort":4308,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-1-ji-qi-ren-zu-cheng","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-1-机器人组成","Robot Composition","14.1",14010000,{"path":4310,"stem":4311,"title":4312,"date":4156,"chapter":4313,"chapterSort":4314,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-1-yuan-cheng-kai-fa-ssh","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-1-远程开发SSH","Remote Development SSH","14.2.1",14020100,{"path":4316,"stem":4317,"title":4318,"date":4156,"chapter":4319,"chapterSort":4320,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-2-yuan-cheng-fang-wen-zhuo-mian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-2-远程访问桌面","Remote Desktop Access","14.2.2",14020200,{"path":4322,"stem":4323,"title":4324,"date":4156,"chapter":4325,"chapterSort":4326,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-工控机之远程开发环境","Remote Development Environment for Industrial PC","14.2",14020000,{"path":4328,"stem":4329,"title":4330,"date":4156,"chapter":4331,"chapterSort":4332,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-3-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-3-工控机之外接USB设备","External USB Devices for the Industrial PC","14.3",14030000,{"path":4334,"stem":4335,"title":4336,"date":4156,"chapter":4337,"chapterSort":4338,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-4-fen-bu-shi-da-jian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-4-分布式搭建","Distributed setup","14.4",14040000,{"path":4340,"stem":4341,"title":4342,"date":4156,"chapter":4343,"chapterSort":4344,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-5-you-hua-ri-zhi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-5-优化日志","Optimize logs","14.5",14050000,{"path":4346,"stem":4347,"title":4348,"date":4156,"chapter":4349,"chapterSort":4350,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-1-li-cheng-ji-odom","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-1-里程计Odom","odometry","14.6.1",14060100,{"path":4352,"stem":4353,"title":4354,"date":4156,"chapter":4355,"chapterSort":4356,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-2-guan-xing-ji-imu","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-2-惯性计IMU","Inertial Measurement Unit (IMU)","14.6.2",14060200,{"path":4358,"stem":4359,"title":4360,"date":4156,"chapter":4361,"chapterSort":4362,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-3-ji-guang-lei-da-lidar","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-3-激光雷达LiDAR","LiDAR","14.6.3",14060300,{"path":4364,"stem":4365,"title":4366,"date":4156,"chapter":4367,"chapterSort":4368,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-4-xiang-ji-camera","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-4-相机Camera","Camera","14.6.4",14060400,{"path":4370,"stem":4371,"title":4372,"date":4156,"chapter":4373,"chapterSort":4374,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-5-quan-qiu-ding-wei-gnss","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-5-全球定位GNSS","Global Navigation Satellite System (GNSS)","14.6.5",14060500,{"path":4376,"stem":4377,"title":4378,"date":4156,"chapter":4379,"chapterSort":4380,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-6-shou-bing-joy","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-6-手柄joy","The query \"手柄JOY\" is a bit ambiguous. To help you better, could you please provide more details? For example:","14.6.6",14060600,{"path":4382,"stem":4383,"title":4384,"date":4156,"chapter":4385,"chapterSort":4386,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-7-jian-pan-kong-zhi-jie-dian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-7-键盘控制节点","Keyboard control node","14.6.7",14060700,{"path":4388,"stem":4389,"title":4390,"date":4156,"chapter":4391,"chapterSort":4392,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-ying-jian-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-硬件平台","Hardware platform","14.6",14060000,{"path":4394,"stem":4395,"title":4396,"date":4156,"chapter":4397,"chapterSort":4398,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-7-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-7-坐标系与话题关系","Coordinate System and Topic Relationship","14.7",14070000,{"path":4400,"stem":4401,"title":4402,"date":4156,"chapter":4403,"chapterSort":4404,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定","Wheel odometry calibration","14.8.1.1",14080101,{"path":4406,"stem":4407,"title":4408,"date":4156,"chapter":4409,"chapterSort":4410,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-轮式里程计与IMU融合","Fusion of Wheel Odometry and IMU","14.8.1.2",14080102,{"path":4412,"stem":4413,"title":4414,"date":4156,"chapter":4415,"chapterSort":4416,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-轮式里程计标定与融合","Wheel odometry calibration and fusion","14.8.1",14080100,{"path":4418,"stem":4419,"title":4420,"date":4156,"chapter":4421,"chapterSort":4422,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-2-ji-guang-lei-da-gong-ju","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-2-激光雷达工具","Lidar Tool","14.8.2",14080200,{"path":4424,"stem":4425,"title":4426,"date":4156,"chapter":4427,"chapterSort":4428,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-3-xiang-ji-shi-yong-jin-jie","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-3-相机使用进阶","Advanced Camera Usage","14.8.3",14080300,{"path":4430,"stem":4431,"title":4432,"date":4156,"chapter":4433,"chapterSort":4434,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-ying-jian-ping-tai-jin-jie","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-硬件平台进阶","Advanced Hardware Platform","14.8",14080000,{"path":4436,"stem":4437,"title":4438,"date":4156,"chapter":4439,"chapterSort":4440,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","Robot hardware","14",14000000,{"path":4442,"stem":4443,"title":4444,"date":4156,"chapter":4445,"chapterSort":4446,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":4448,"stem":4449,"title":4450,"date":4156,"chapter":4451,"chapterSort":4452,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂","MoveIt2 industrial robot arm","16",16000000,{"path":4454,"stem":4455,"title":4456,"date":4156,"chapter":4457,"chapterSort":4458,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch17-机器人导航Navigation2(实体篇)","Robot Navigation with Navigation2 (Physical Robot)","17",17000000,{"path":4460,"stem":4461,"title":4462,"date":4156,"chapter":4463,"chapterSort":4464,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch18-microros","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":4466,"stem":4467,"title":4468,"date":4156,"chapter":4469,"chapterSort":4470,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots simulation platform","19",19000000,{"path":4472,"stem":4473,"title":4474,"date":4156,"chapter":4475,"chapterSort":4476,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch2-入门操作","Getting Started","2",2000000,{"path":4478,"stem":4479,"title":4480,"date":4156,"chapter":4481,"chapterSort":4482,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch20-opencv","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","OpenCV","20",20000000,{"path":4484,"stem":4485,"title":4486,"date":4156,"chapter":4487,"chapterSort":4488,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch3-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch3-工作空间与功能包","Workspace and Function Packages","3",3000000,{"path":4490,"stem":4491,"title":4492,"date":4156,"chapter":4493,"chapterSort":4494,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch4-四大通信","Four Major Communications","4",4000000,{"path":4496,"stem":4497,"title":4498,"date":4156,"chapter":4499,"chapterSort":4500,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","ROS2 Other Communication Mechanisms","5",5000000,{"path":4153,"stem":4170,"title":5,"date":4156,"chapter":4154,"chapterSort":4155,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},{"path":4503,"stem":4504,"title":4505,"date":4156,"chapter":4506,"chapterSort":4507,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","Replaying rosbag2","7",7000000,{"path":4509,"stem":4510,"title":4511,"date":4156,"chapter":4512,"chapterSort":4513,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","Coordinate Transformation TF","8",8000000,{"path":4515,"stem":4516,"title":4517,"date":4156,"chapter":4518,"chapterSort":4519,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":4163},"/en-us/wiki/2023-12-30-ros2-tutorial/ch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch9-可视化平台RVIZ2与URDF建模语言","Visualization Platform RVIZ2 and URDF Modeling Language","9",9000000,{"path":4159,"stem":4521,"title":4522,"date":4156,"chapter":4164,"chapterSort":4523,"docKey":4158,"docRoot":4159,"docTitle":4160,"isWikiDoc":161,"isWikiIndex":161},"_i18n/en-us/wiki/2023-12-30-ros2-tutorial/index","ROS2 Robot Operating System Tutorial",0,{"variants":4525},[4526,4527,4530,4533,4536],{"path":4153,"localeSlug":4166,"i18nKey":4162},{"path":4528,"localeSlug":4529,"i18nKey":4162},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch6-launch","zh-hant",{"path":4531,"localeSlug":4532,"i18nKey":4162},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch6-launch","zh-hk",{"path":4534,"localeSlug":4535,"i18nKey":4162},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch6-launch","zh-tw",{"path":4537,"localeSlug":4538,"i18nKey":4162},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch6-launch","zh-cn",[4153,4169,4528,4169,4531,4169,4534,4169,4537,4169],1780671798600]