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