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