[{"data":1,"prerenderedAt":1955},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao":3,"wiki-doc-items-2023-12-30-ros2-tutorial":1536,"wiki:author-members":1943},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":1523,"chapterOrder":1524,"date":1525,"description":21,"docKey":1526,"docRoot":1527,"docTitle":1528,"extension":1529,"isWikiDoc":212,"isWikiIndex":1530,"meta":1531,"navigation":212,"path":1532,"seo":1533,"stem":1534,"wikiDepth":88,"__hash__":1535},"wiki\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包.md","工作空间与功能包",[7],"董佳辉",{"type":9,"value":10,"toc":1512},"minimark",[11,15,23,26,29,32,35,38,41,44,49,54,57,62,67,72,75,149,151,156,159,164,169,172,177,182,187,192,430,435,440,443,446,451,456,458,463,468,471,474,479,482,484,489,494,497,502,510,513,516,519,662,667,670,673,678,681,686,689,694,699,704,707,710,713,716,719,724,729,734,739,744,749,754,759,764,767,770,775,780,783,788,793,798,801,806,825,833,852,857,874,879,901,906,911,932,937,940,945,950,953,958,963,966,971,976,979,984,989,994,999,1004,1007,1012,1017,1020,1023,1028,1033,1038,1043,1046,1051,1054,1059,1064,1069,1077,1082,1085,1090,1095,1098,1103,1106,1109,1114,1119,1124,1129,1132,1137,1142,1147,1152,1157,1162,1167,1172,1175,1179,1182,1189,1192,1198,1201,1207,1210,1216,1221,1226,1231,1236,1241,1246,1251,1256,1261,1266,1270,1273,1276,1282,1287,1289,1297,1300,1303,1309,1314,1316,1322,1325,1328,1334,1339,1341,1347,1350,1356,1361,1363,1369,1372,1375,1381,1386,1388,1394,1397,1400,1406,1411,1413,1419,1422,1425,1431,1436,1438,1444,1447,1450,1456,1461,1463,1469,1472,1475,1481,1486,1488,1494,1497,1503,1508],[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\u002Fimage222.webp",[16,24,25],{},"工作空间里有4个子空间",[16,27,28],{},"未来编写的代码和脚本都需要人为的放入src空间里，",[16,30,31],{},"编译所形成的中间文件会存放到build空间里，",[16,33,34],{},"可执行文件会存放到install空间里，",[16,36,37],{},"编译过程以及运行之后各种警告，错误信息等会存放到log空间里。",[39,40],"hr",{},[16,42,43],{},"用pip工具可以很方便的安装各种python的包",[16,45,46],{},[19,47],{"alt":21,"src":48},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage223.webp",[16,50,51],{},[19,52],{"alt":21,"src":53},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage224.webp",[16,55,56],{},"国内开发者@鱼香ROS 开发的一个专门处理ROS2依赖的工具",[16,58,59],{},[19,60],{"alt":21,"src":61},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage225.webp",[16,63,64],{},[19,65],{"alt":21,"src":66},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage226.webp",[16,68,69],{},[19,70],{"alt":21,"src":71},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage227.webp",[16,73,74],{},"实际上就是扫描了各个功能包里的package.xml里的depend，然后查找本机是否含有该依赖，再决定是否安装。",[76,77,81],"pre",{"className":78,"code":79,"language":80,"meta":21,"style":21},"language-bash shiki shiki-themes github-light github-dark","sudo rosdepc init\nrosdepc update\ncd ..\nrosdepc install -i --from-path src --rosdistro humble -y  #在src文件里看功能包所需依赖并查找安装\n","bash",[82,83,84,100,109,119],"code",{"__ignoreMap":21},[85,86,89,93,97],"span",{"class":87,"line":88},"line",1,[85,90,92],{"class":91},"sScJk","sudo",[85,94,96],{"class":95},"sZZnC"," rosdepc",[85,98,99],{"class":95}," init\n",[85,101,103,106],{"class":87,"line":102},2,[85,104,105],{"class":91},"rosdepc",[85,107,108],{"class":95}," update\n",[85,110,112,116],{"class":87,"line":111},3,[85,113,115],{"class":114},"sj4cs","cd",[85,117,118],{"class":95}," ..\n",[85,120,122,124,127,130,133,136,139,142,145],{"class":87,"line":121},4,[85,123,105],{"class":91},[85,125,126],{"class":95}," install",[85,128,129],{"class":114}," -i",[85,131,132],{"class":114}," --from-path",[85,134,135],{"class":95}," src",[85,137,138],{"class":114}," --rosdistro",[85,140,141],{"class":95}," humble",[85,143,144],{"class":114}," -y",[85,146,148],{"class":147},"sJ8bj","  #在src文件里看功能包所需依赖并查找安装\n",[39,150],{},[16,152,153],{},[19,154],{"alt":21,"src":155},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage228.webp",[16,157,158],{},"后面还需要创建好几个目录，这些目录大多都是和接口文件相关的。",[16,160,161],{},[19,162],{"alt":21,"src":163},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage229.webp",[16,165,166],{},[19,167],{"alt":21,"src":168},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage230.webp",[12,170,171],{"id":171},"源文件编译",[16,173,174],{},[19,175],{"alt":21,"src":176},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage231.webp",[16,178,179],{},[19,180],{"alt":21,"src":181},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage232.webp",[16,183,184],{},[19,185],{"alt":21,"src":186},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage233.webp",[16,188,189],{},[19,190],{"alt":21,"src":191},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage234.webp",[76,193,197],{"className":194,"code":195,"language":196,"meta":21,"style":21},"language-cpp shiki shiki-themes github-light github-dark","#include \"rclcpp\u002Frclcpp.hpp\"\n\nclass MyNode: public rclcpp::Node\n{\n  public:\n    MyNode():Node(\"node_name\")\n    {\n      RCLCPP_INFO(this->get_logger(),\"hello world!\");\n    }\n};\n\nint main(int argc,char *argv[])\n{\n  rclcpp::init(argc,argv);\n  auto node = std::make_shared\u003CMyNode>();\n  rclcpp::shutdown();\n  return 0;\n}\n","cpp",[82,198,199,208,214,238,243,249,270,276,302,308,314,319,351,356,370,399,412,424],{"__ignoreMap":21},[85,200,201,205],{"class":87,"line":88},[85,202,204],{"class":203},"szBVR","#include",[85,206,207],{"class":95}," \"rclcpp\u002Frclcpp.hpp\"\n",[85,209,210],{"class":87,"line":102},[85,211,213],{"emptyLinePlaceholder":212},true,"\n",[85,215,216,219,222,226,229,232,235],{"class":87,"line":111},[85,217,218],{"class":203},"class",[85,220,221],{"class":91}," MyNode",[85,223,225],{"class":224},"sVt8B",": ",[85,227,228],{"class":203},"public",[85,230,231],{"class":91}," rclcpp",[85,233,234],{"class":224},"::",[85,236,237],{"class":91},"Node\n",[85,239,240],{"class":87,"line":121},[85,241,242],{"class":224},"{\n",[85,244,246],{"class":87,"line":245},5,[85,247,248],{"class":203},"  public:\n",[85,250,252,255,258,261,264,267],{"class":87,"line":251},6,[85,253,254],{"class":91},"    MyNode",[85,256,257],{"class":224},"():",[85,259,260],{"class":91},"Node",[85,262,263],{"class":224},"(",[85,265,266],{"class":95},"\"node_name\"",[85,268,269],{"class":224},")\n",[85,271,273],{"class":87,"line":272},7,[85,274,275],{"class":224},"    {\n",[85,277,279,282,284,287,290,293,296,299],{"class":87,"line":278},8,[85,280,281],{"class":91},"      RCLCPP_INFO",[85,283,263],{"class":224},[85,285,286],{"class":114},"this",[85,288,289],{"class":224},"->",[85,291,292],{"class":91},"get_logger",[85,294,295],{"class":224},"(),",[85,297,298],{"class":95},"\"hello world!\"",[85,300,301],{"class":224},");\n",[85,303,305],{"class":87,"line":304},9,[85,306,307],{"class":224},"    }\n",[85,309,311],{"class":87,"line":310},10,[85,312,313],{"class":224},"};\n",[85,315,317],{"class":87,"line":316},11,[85,318,213],{"emptyLinePlaceholder":212},[85,320,322,325,328,330,332,336,339,342,345,348],{"class":87,"line":321},12,[85,323,324],{"class":203},"int",[85,326,327],{"class":91}," main",[85,329,263],{"class":224},[85,331,324],{"class":203},[85,333,335],{"class":334},"s4XuR"," argc",[85,337,338],{"class":224},",",[85,340,341],{"class":203},"char",[85,343,344],{"class":203}," *",[85,346,347],{"class":334},"argv",[85,349,350],{"class":224},"[])\n",[85,352,354],{"class":87,"line":353},13,[85,355,242],{"class":224},[85,357,359,362,364,367],{"class":87,"line":358},14,[85,360,361],{"class":91},"  rclcpp",[85,363,234],{"class":224},[85,365,366],{"class":91},"init",[85,368,369],{"class":224},"(argc,argv);\n",[85,371,373,376,379,382,385,387,390,393,396],{"class":87,"line":372},15,[85,374,375],{"class":203},"  auto",[85,377,378],{"class":224}," node ",[85,380,381],{"class":203},"=",[85,383,384],{"class":91}," std",[85,386,234],{"class":224},[85,388,389],{"class":91},"make_shared",[85,391,392],{"class":224},"\u003C",[85,394,395],{"class":91},"MyNode",[85,397,398],{"class":224},">();\n",[85,400,402,404,406,409],{"class":87,"line":401},16,[85,403,361],{"class":91},[85,405,234],{"class":224},[85,407,408],{"class":91},"shutdown",[85,410,411],{"class":224},"();\n",[85,413,415,418,421],{"class":87,"line":414},17,[85,416,417],{"class":203},"  return",[85,419,420],{"class":114}," 0",[85,422,423],{"class":224},";\n",[85,425,427],{"class":87,"line":426},18,[85,428,429],{"class":224},"}\n",[16,431,432],{},[19,433],{"alt":21,"src":434},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage235.webp",[16,436,437],{},[19,438],{"alt":21,"src":439},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage236.webp",[16,441,442],{},"实例化只能一个进程组织一个节点，",[16,444,445],{},"而继承可以组织多个节点。",[16,447,448],{},[19,449],{"alt":21,"src":450},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage237.webp",[16,452,453],{},[19,454],{"alt":21,"src":455},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage238.webp",[39,457],{},[16,459,460],{},[19,461],{"alt":21,"src":462},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage239.webp",[16,464,465],{},[19,466],{"alt":21,"src":467},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage240.webp",[16,469,470],{},"初始化和资源释放的作用是什么？",[16,472,473],{},"可以往context对象里放数据，也可以取数据，类似于FreeRTOS里的消息队列，但也不完全类似，它可以存储之前的数据。",[16,475,476],{},[19,477],{"alt":21,"src":478},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage241.webp",[16,480,481],{},"初始化不是仅仅只创建context对象，这是它的其中一个功能，它还有其他比较重要的功能。",[39,483],{},[16,485,486],{},[19,487],{"alt":21,"src":488},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage242.webp",[16,490,491],{},[19,492],{"alt":21,"src":493},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage243.webp",[16,495,496],{},"先初始化父类构造，并传入一个节点名称。",[16,498,499],{},[19,500],{"alt":21,"src":501},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage244.webp",[16,503,504,505],{},"智能指针忘记的可以看",[506,507,509],"a",{"href":508},"\u002Fwiki\u002F2023-10-05-cplusplus-jiao-xue","Vinci机器人队C\u002FC++资料",[16,511,512],{},"智能指针是一种自动管理内存的指针，它会在不需要对象时自动释放内存。使用智能指针可以避免内存泄漏和空悬指针等问题。",[16,514,515],{},"最安全的分配和使用动态内存的方法是调用一个名为 make_shared 的标准库函数。 此函数在动态内存中分配一个对象并初始化它，返回指向此对象的 shared_ptr。与智能指针一样，make_shared 也定义在头文件 memory 中。",[16,517,518],{},"当要用 make_shared 时，必须指定想要创建的对象的类型。定义方式与模板类相同， 在函数名之后跟一个尖括号，在其中给出类型：",[76,520,522],{"className":194,"code":521,"language":196,"meta":21,"style":21},"\u002F\u002F 指向一个值为42的int的shared_ptr\nshared_ptr\u003Cint> p3 = make_shared\u003Cint>(42);\n\n\u002F\u002F p4 指向一个值为\"9999999999\"的string\nshared_ptr\u003Cstring> p4 = make_shared\u003Cstring>(10,'9');\n\n\u002F\u002F p5指向一个未初始化的int\nshared_ptr\u003Cint> p5 = make_shared\u003Cint>();\n\u002F\u002F当然，我们通常用 auto 定义一个对象来保存 make_shared 的结果，这种方式较为简单：\n\n\u002F\u002F p6指向一个动态分配的空vector\u003Cstring>\nauto p6 = make_shared\u003Cvector>();\n",[82,523,524,529,557,561,566,601,605,610,629,634,638,643],{"__ignoreMap":21},[85,525,526],{"class":87,"line":88},[85,527,528],{"class":147},"\u002F\u002F 指向一个值为42的int的shared_ptr\n",[85,530,531,534,537,540,542,545,547,549,552,555],{"class":87,"line":102},[85,532,533],{"class":224},"shared_ptr",[85,535,536],{"class":203},"\u003Cint>",[85,538,539],{"class":224}," p3 ",[85,541,381],{"class":203},[85,543,544],{"class":91}," make_shared",[85,546,392],{"class":224},[85,548,324],{"class":203},[85,550,551],{"class":224},">(",[85,553,554],{"class":114},"42",[85,556,301],{"class":224},[85,558,559],{"class":87,"line":111},[85,560,213],{"emptyLinePlaceholder":212},[85,562,563],{"class":87,"line":121},[85,564,565],{"class":147},"\u002F\u002F p4 指向一个值为\"9999999999\"的string\n",[85,567,568,570,572,575,578,581,583,585,587,589,591,594,596,599],{"class":87,"line":245},[85,569,533],{"class":224},[85,571,392],{"class":203},[85,573,574],{"class":224},"string",[85,576,577],{"class":203},">",[85,579,580],{"class":224}," p4 ",[85,582,381],{"class":203},[85,584,544],{"class":91},[85,586,392],{"class":224},[85,588,574],{"class":91},[85,590,551],{"class":224},[85,592,593],{"class":114},"10",[85,595,338],{"class":224},[85,597,598],{"class":95},"'9'",[85,600,301],{"class":224},[85,602,603],{"class":87,"line":251},[85,604,213],{"emptyLinePlaceholder":212},[85,606,607],{"class":87,"line":272},[85,608,609],{"class":147},"\u002F\u002F p5指向一个未初始化的int\n",[85,611,612,614,616,619,621,623,625,627],{"class":87,"line":278},[85,613,533],{"class":224},[85,615,536],{"class":203},[85,617,618],{"class":224}," p5 ",[85,620,381],{"class":203},[85,622,544],{"class":91},[85,624,392],{"class":224},[85,626,324],{"class":203},[85,628,398],{"class":224},[85,630,631],{"class":87,"line":304},[85,632,633],{"class":147},"\u002F\u002F当然，我们通常用 auto 定义一个对象来保存 make_shared 的结果，这种方式较为简单：\n",[85,635,636],{"class":87,"line":310},[85,637,213],{"emptyLinePlaceholder":212},[85,639,640],{"class":87,"line":316},[85,641,642],{"class":147},"\u002F\u002F p6指向一个动态分配的空vector\u003Cstring>\n",[85,644,645,648,651,653,655,657,660],{"class":87,"line":321},[85,646,647],{"class":203},"auto",[85,649,650],{"class":224}," p6 ",[85,652,381],{"class":203},[85,654,544],{"class":91},[85,656,392],{"class":224},[85,658,659],{"class":91},"vector",[85,661,398],{"class":224},[16,663,664],{},[19,665],{"alt":21,"src":666},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage245.webp",[16,668,669],{},"用make_shared可以分配堆区内存。",[12,671,672],{"id":672},"配置文件",[16,674,675],{},[19,676],{"alt":21,"src":677},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage246.webp",[16,679,680],{},"C++",[16,682,683],{},[19,684],{"alt":21,"src":685},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage247.webp",[16,687,688],{},"Python",[16,690,691],{},[19,692],{"alt":21,"src":693},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage248.webp",[16,695,696],{},[19,697],{"alt":21,"src":698},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage249.webp",[16,700,701],{},[19,702],{"alt":21,"src":703},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage250.webp",[16,705,706],{},"name是功能包名称",[16,708,709],{},"version是包的版本",[16,711,712],{},"description是描述包的信息，也就是包是干嘛的",[16,714,715],{},"email是维护者的邮箱地址",[16,717,718],{},"license是我们的功能包使用的软件协议",[16,720,721],{},[19,722],{"alt":21,"src":723},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage251.webp",[16,725,726],{},[19,727],{"alt":21,"src":728},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage252.webp",[16,730,731],{},[19,732],{"alt":21,"src":733},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage253.webp",[16,735,736],{},[19,737],{"alt":21,"src":738},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage254.webp",[16,740,741],{},[19,742],{"alt":21,"src":743},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage255.webp",[16,745,746],{},[19,747],{"alt":21,"src":748},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage256.webp",[16,750,751],{},[19,752],{"alt":21,"src":753},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage257.webp",[16,755,756],{},[19,757],{"alt":21,"src":758},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage258.webp",[16,760,761],{},[19,762],{"alt":21,"src":763},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage259.webp",[16,765,766],{},"不建议直接重命名功能包的名字，当修改了文件夹名称，则里面很多文件里的配置内容也需要被修改。建议重新建。",[12,768,769],{"id":769},"常用操作命令",[16,771,772],{},[19,773],{"alt":21,"src":774},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage260.webp",[16,776,777],{},[19,778],{"alt":21,"src":779},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage261.webp",[16,781,782],{},"ament_cmake是cmake的增强版",[16,784,785],{},[19,786],{"alt":21,"src":787},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage262.webp",[16,789,790],{},[19,791],{"alt":21,"src":792},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage263.webp",[16,794,795],{},[19,796],{"alt":21,"src":797},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage264.webp",[16,799,800],{},"-h 是查看帮助信息",[16,802,803],{},[19,804],{"alt":21,"src":805},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage265.webp",[76,807,809],{"className":78,"code":808,"language":80,"meta":21,"style":21},"ros2 pkg executables #输出当前系统可执行的功能包和节点\n",[82,810,811],{"__ignoreMap":21},[85,812,813,816,819,822],{"class":87,"line":88},[85,814,815],{"class":91},"ros2",[85,817,818],{"class":95}," pkg",[85,820,821],{"class":95}," executables",[85,823,824],{"class":147}," #输出当前系统可执行的功能包和节点\n",[16,826,827,830],{},[19,828],{"alt":21,"src":829},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage266.webp",[19,831],{"alt":21,"src":832},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage267.webp",[76,834,836],{"className":78,"code":835,"language":80,"meta":21,"style":21},"ros2 pkg executables 功能包名         #是输出当前包下可执行的功能包和节点\n",[82,837,838],{"__ignoreMap":21},[85,839,840,842,844,846,849],{"class":87,"line":88},[85,841,815],{"class":91},[85,843,818],{"class":95},[85,845,821],{"class":95},[85,847,848],{"class":95}," 功能包名",[85,850,851],{"class":147},"         #是输出当前包下可执行的功能包和节点\n",[16,853,854],{},[19,855],{"alt":21,"src":856},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage268.webp",[76,858,860],{"className":78,"code":859,"language":80,"meta":21,"style":21},"ros2 pkg list #是输出当前系统可执行的功能包\n",[82,861,862],{"__ignoreMap":21},[85,863,864,866,868,871],{"class":87,"line":88},[85,865,815],{"class":91},[85,867,818],{"class":95},[85,869,870],{"class":95}," list",[85,872,873],{"class":147}," #是输出当前系统可执行的功能包\n",[16,875,876],{},[19,877],{"alt":21,"src":878},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage269.webp",[76,880,882],{"className":78,"code":881,"language":80,"meta":21,"style":21},"ros2 pkg prefix + 功能包名   #是输出该功能包的路径(重要，后面经常要用)\n",[82,883,884],{"__ignoreMap":21},[85,885,886,888,890,893,896,898],{"class":87,"line":88},[85,887,815],{"class":91},[85,889,818],{"class":95},[85,891,892],{"class":95}," prefix",[85,894,895],{"class":95}," +",[85,897,848],{"class":95},[85,899,900],{"class":147},"   #是输出该功能包的路径(重要，后面经常要用)\n",[16,902,903],{},[19,904],{"alt":21,"src":905},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage270.webp",[16,907,908],{},[19,909],{"alt":21,"src":910},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage271.webp",[76,912,914],{"className":78,"code":913,"language":80,"meta":21,"style":21},"ros2 pkg xml + 功能包名   #是输出该功能包里的packages.xml的内容\n",[82,915,916],{"__ignoreMap":21},[85,917,918,920,922,925,927,929],{"class":87,"line":88},[85,919,815],{"class":91},[85,921,818],{"class":95},[85,923,924],{"class":95}," xml",[85,926,895],{"class":95},[85,928,848],{"class":95},[85,930,931],{"class":147},"   #是输出该功能包里的packages.xml的内容\n",[16,933,934],{},[19,935],{"alt":21,"src":936},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage272.webp",[12,938,939],{"id":939},"核心模块_通信相关",[16,941,942],{},[19,943],{"alt":21,"src":944},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage273.webp",[16,946,947],{},[19,948],{"alt":21,"src":949},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage274.webp",[16,951,952],{},"通信模块被封装进了功能包",[16,954,955],{},[19,956],{"alt":21,"src":957},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage275.webp",[16,959,960],{},[19,961],{"alt":21,"src":962},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage276.webp",[16,964,965],{},"比如（例子）",[16,967,968],{},[19,969],{"alt":21,"src":970},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage277.webp",[16,972,973],{},[19,974],{"alt":21,"src":975},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage278.webp",[16,977,978],{},"会搜到巨多的内容，可以用grep进一步搜索",[16,980,981],{},[19,982],{"alt":21,"src":983},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage279.webp",[16,985,986],{},[19,987],{"alt":21,"src":988},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage280.webp",[16,990,991],{},[19,992],{"alt":21,"src":993},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage281.webp",[16,995,996],{},[19,997],{"alt":21,"src":998},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage282.webp",[16,1000,1001],{},[19,1002],{"alt":21,"src":1003},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage283.webp",[16,1005,1006],{},"下载分支用 -b",[16,1008,1009],{},[19,1010],{"alt":21,"src":1011},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage284.webp",[16,1013,1014],{},[19,1015],{"alt":21,"src":1016},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage285.webp",[16,1018,1019],{},"有个警告，因为有两个功能包都叫humble了",[16,1021,1022],{},"如果允许覆盖需要加参数 --allow-overriding",[16,1024,1025],{},[19,1026],{"alt":21,"src":1027},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage286.webp",[16,1029,1030],{},[19,1031],{"alt":21,"src":1032},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage287.webp",[16,1034,1035],{},[19,1036],{"alt":21,"src":1037},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage288.webp",[16,1039,1040],{},[19,1041],{"alt":21,"src":1042},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage289.webp",[16,1044,1045],{},"也就是helloworld那样的",[16,1047,1048],{},[19,1049],{"alt":21,"src":1050},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage290.webp",[12,1052,1053],{"id":1053},"核心模块_工具相关",[16,1055,1056],{},[19,1057],{"alt":21,"src":1058},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage291.webp",[16,1060,1061],{},[19,1062],{"alt":21,"src":1063},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage292.webp",[16,1065,1066],{},[19,1067],{"alt":21,"src":1068},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage293.webp",[16,1070,1071,1074],{},[19,1072],{"alt":21,"src":1073},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage294.webp",[19,1075],{"alt":21,"src":1076},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage295.webp",[16,1078,1079],{},[19,1080],{"alt":21,"src":1081},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage296.webp",[16,1083,1084],{},"命令行在某些地方比图形化工具比较好用，在远程登录时只能用命令行",[16,1086,1087],{},[19,1088],{"alt":21,"src":1089},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage297.webp",[16,1091,1092],{},[19,1093],{"alt":21,"src":1094},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage298.webp",[16,1096,1097],{},"Lanuch文件现在在ROS2里是一个Python文件了。",[16,1099,1100],{},[19,1101],{"alt":21,"src":1102},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage299.webp",[16,1104,1105],{},"Camera是摄像头位置，Base_Link是车体的位置，Laser是激光雷达的位置。",[16,1107,1108],{},"雷达检测的距离信息，会转化成车体的位置信息。",[16,1110,1111],{},[19,1112],{"alt":21,"src":1113},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage300.webp",[16,1115,1116],{},[19,1117],{"alt":21,"src":1118},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage301.webp",[16,1120,1121],{},[19,1122],{"alt":21,"src":1123},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage302.webp",[16,1125,1126],{},[19,1127],{"alt":21,"src":1128},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage303.webp",[12,1130,1131],{"id":1131},"功能包",[16,1133,1134],{},[19,1135],{"alt":21,"src":1136},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage304.webp",[16,1138,1139],{},[19,1140],{"alt":21,"src":1141},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage305.webp",[16,1143,1144],{},[19,1145],{"alt":21,"src":1146},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage306.webp",[16,1148,1149],{},[19,1150],{"alt":21,"src":1151},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage307.webp",[16,1153,1154],{},[19,1155],{"alt":21,"src":1156},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage308.webp",[16,1158,1159],{},[19,1160],{"alt":21,"src":1161},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage309.webp",[16,1163,1164],{},[19,1165],{"alt":21,"src":1166},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage310.webp",[16,1168,1169],{},[19,1170],{"alt":21,"src":1171},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage311.webp",[16,1173,1174],{},"python是解析型语言，不用编译，但是需要setup.py文件，setup.py主要功能是把可执行文件移动到install的。",[12,1176,1178],{"id":1177},"ros2技术支持","ROS2技术支持",[16,1180,1181],{},"ROS2_Wiki官网:",[16,1183,1184],{},[506,1185,1186],{"href":1186,"rel":1187},"http:\u002F\u002Fwiki.ros.org\u002F",[1188],"nofollow",[16,1190,1191],{},"ROS2_Wiki中文官网(ROS2维基百科现已支持简体中文):",[16,1193,1194],{},[506,1195,1196],{"href":1196,"rel":1197},"http:\u002F\u002Fwiki.ros.org\u002Fcn",[1188],[16,1199,1200],{},"ROS2简体中文社区：",[16,1202,1203],{},[506,1204,1205],{"href":1205,"rel":1206},"http:\u002F\u002Fwiki.ros.org\u002Fcn\u002Fcommunity",[1188],[16,1208,1209],{},"ROS2插件索引网址:",[16,1211,1212],{},[506,1213,1214],{"href":1214,"rel":1215},"https:\u002F\u002Findex.ros.org\u002Fpackages\u002F",[1188],[16,1217,1218],{},[19,1219],{"alt":21,"src":1220},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage312.webp",[16,1222,1223],{},[19,1224],{"alt":21,"src":1225},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage313.webp",[16,1227,1228],{},[19,1229],{"alt":21,"src":1230},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage314.webp",[16,1232,1233],{},[19,1234],{"alt":21,"src":1235},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage315.webp",[16,1237,1238],{},[19,1239],{"alt":21,"src":1240},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage316.webp",[16,1242,1243],{},[19,1244],{"alt":21,"src":1245},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage317.webp",[16,1247,1248],{},[19,1249],{"alt":21,"src":1250},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage318.webp",[16,1252,1253],{},[19,1254],{"alt":21,"src":1255},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage319.webp",[16,1257,1258],{},[19,1259],{"alt":21,"src":1260},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage320.webp",[16,1262,1263],{},[19,1264],{"alt":21,"src":1265},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage321.webp",[12,1267,1269],{"id":1268},"ros2应用方向","ROS2应用方向",[16,1271,1272],{},"许多ROS团队伴随ROS成长到今日，其规模已经发展到足以被认为是独立组织的程度了。在导航、机械臂、无人驾驶、无人机等诸多领域大放异彩，下面列出了其中的一些团队项目，这些项目对我们以后的进阶发展，也提供了指导。",[16,1274,1275],{},"ROS2社区：",[16,1277,1278],{},[506,1279,1280],{"href":1280,"rel":1281},"https:\u002F\u002Fwww.ros.org\u002Fblog\u002Fcommunity\u002F",[1188],[16,1283,1284],{},[19,1285],{"alt":21,"src":1286},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage322.webp",[39,1288],{},[1290,1291,1293],"h4",{"id":1292},"nav2",[1294,1295,1296],"strong",{},"NAV2",[16,1298,1299],{},"Nav2项目继承自ROS Navigation Stack。该项目旨在可以让移动机器人从A点安全的移动到B点。它也可以应用于涉及机器人导航的其他应用，例如跟随动态点。Nav2将用于实现路径规划、运动控制、动态避障和恢复行为等一系列功能。",[16,1301,1302],{},"NAV2官网：",[16,1304,1305],{},[506,1306,1307],{"href":1307,"rel":1308},"https:\u002F\u002Fnavigation.ros.org\u002F",[1188],[16,1310,1311],{},[19,1312],{"alt":21,"src":1313},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage323.webp",[39,1315],{},[1290,1317,1319],{"id":1318},"opencv",[1294,1320,1321],{},"OpenCV",[16,1323,1324],{},"OpenCV（Open Source Computer Vision Library）是一个开源的计算机视觉和机器学习软件库。OpenCV旨在为计算机视觉应用程序提供通用基础架构，并加速机器感知在商业产品中的使用。OpenCV允许企业轻松地使用和修改代码。",[16,1326,1327],{},"OpenCV官网：",[16,1329,1330],{},[506,1331,1332],{"href":1332,"rel":1333},"https:\u002F\u002Fopencv.org\u002F",[1188],[16,1335,1336],{},[19,1337],{"alt":21,"src":1338},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage324.webp",[39,1340],{},[1290,1342,1344],{"id":1343},"moveit",[1294,1345,1346],{},"MoveIt",[16,1348,1349],{},"MoveIt是一组ROS软件包， 主要包含运动规划、碰撞检测、运动学、3D感知、操作控制等功能。它可以用于构建机械臂的高级行为。MoveIt现在可以用于市面上的大多数机械臂，并被许多大公司使用。",[16,1351,1352],{},[506,1353,1354],{"href":1354,"rel":1355},"https:\u002F\u002Fmoveit.ros.org\u002F",[1188],[16,1357,1358],{},[19,1359],{"alt":21,"src":1360},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage325.webp",[39,1362],{},[1290,1364,1366],{"id":1365},"the-autoware-foundation",[1294,1367,1368],{},"The Autoware Foundation",[16,1370,1371],{},"Autoware Foundation是ROS下属的非营利组织，支持实现自动驾驶的开源项目。Autoware基金会在企业发展和学术研究之间创造协同效应，为每个人提供自动驾驶技术。",[16,1373,1374],{},"TAF官网:",[16,1376,1377],{},[506,1378,1379],{"href":1379,"rel":1380},"https:\u002F\u002Fwww.autoware.org\u002F",[1188],[16,1382,1383],{},[19,1384],{"alt":21,"src":1385},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage326.webp",[39,1387],{},[1290,1389,1391],{"id":1390},"f1-tenth",[1294,1392,1393],{},"F1 Tenth",[16,1395,1396],{},"F1 Tenth是将模型车改为无人车的竞速赛事，是一个由研究人员、工程师和自主系统爱好者组成的国际社区。它最初于 2016 年在宾夕法尼亚大学成立，但后来扩展到全球许多其他机构。",[16,1398,1399],{},"F1 Tenth官网:",[16,1401,1402],{},[506,1403,1404],{"href":1404,"rel":1405},"https:\u002F\u002Ff1tenth.org\u002F",[1188],[16,1407,1408],{},[19,1409],{"alt":21,"src":1410},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage327.webp",[39,1412],{},[1290,1414,1416],{"id":1415},"microros",[1294,1417,1418],{},"microROS",[16,1420,1421],{},"在基于ROS的机器人应用中，micro-ROS正在弥合性能有限的微控制器和一般处理器之间的差距。micro-ROS在各种嵌入式硬件上运行，使ROS能直接应用于机器人硬件。",[16,1423,1424],{},"MicroROS官网:",[16,1426,1427],{},[506,1428,1429],{"href":1429,"rel":1430},"https:\u002F\u002Fmicro.ros.org\u002F",[1188],[16,1432,1433],{},[19,1434],{"alt":21,"src":1435},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage328.webp",[39,1437],{},[1290,1439,1441],{"id":1440},"open-robotics",[1294,1442,1443],{},"Open Robotics",[16,1445,1446],{},"Open Robotics与全球ROS社区合作，为机器人创建开放的软件和硬件平台，包括 ROS1、ROS2、Gazebo模拟器和Ignition模拟器。Open Robotics使用这些平台解决一些重要问题，并通过为各种客户组织提供软件和硬件开发服务来帮助其他人做同样的事情。",[16,1448,1449],{},"Open Robotics官网:",[16,1451,1452],{},[506,1453,1454],{"href":1454,"rel":1455},"https:\u002F\u002Fwww.openrobotics.org\u002F",[1188],[16,1457,1458],{},[19,1459],{"alt":21,"src":1460},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage329.webp",[39,1462],{},[1290,1464,1466],{"id":1465},"px4",[1294,1467,1468],{},"PX4",[16,1470,1471],{},"PX4是一款用于无人机和其他无人驾驶车辆的开源飞行控制软件。该项目为无人机开发人员提供了一套灵活的工具，用于共享技术并为无人机应用程序创建量身定制解决方案。",[16,1473,1474],{},"PX4官网:",[16,1476,1477],{},[506,1478,1479],{"href":1479,"rel":1480},"https:\u002F\u002Fpx4.io\u002F",[1188],[16,1482,1483],{},[19,1484],{"alt":21,"src":1485},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage330.webp",[39,1487],{},[1290,1489,1491],{"id":1490},"ros-industrial",[1294,1492,1493],{},"ROS-Industrial",[16,1495,1496],{},"ROS-Industrial是一个开源项目，将 ROS 软件的高级功能扩展到工业相关硬件和应用程序。",[16,1498,1499],{},[506,1500,1501],{"href":1501,"rel":1502},"https:\u002F\u002Frosindustrial.org\u002F",[1188],[16,1504,1505],{},[19,1506],{"alt":21,"src":1507},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage331.webp",[1509,1510,1511],"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 pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":21,"searchDepth":102,"depth":102,"links":1513},[1514,1515,1516,1517,1518,1519,1520,1521,1522],{"id":14,"depth":111,"text":14},{"id":171,"depth":111,"text":171},{"id":672,"depth":111,"text":672},{"id":769,"depth":111,"text":769},{"id":939,"depth":111,"text":939},{"id":1053,"depth":111,"text":1053},{"id":1131,"depth":111,"text":1131},{"id":1177,"depth":111,"text":1178},{"id":1268,"depth":111,"text":1269},0,"0300","2023-12-30","2023-12-30-ros2-tutorial","\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md",false,{},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao",{"title":5,"description":21},"wiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包","_Vwnzhgp3GIJPjuDGaFvo0Mj0mDb1Do_WvQOMZ0pxrc",[1537,1543,1549,1551,1557,1563,1569,1575,1581,1587,1593,1599,1605,1611,1617,1623,1629,1635,1641,1647,1653,1659,1665,1671,1677,1683,1689,1695,1701,1707,1713,1719,1725,1731,1737,1742,1748,1753,1759,1765,1771,1777,1783,1789,1795,1801,1807,1813,1819,1825,1831,1837,1843,1849,1855,1861,1867,1873,1879,1885,1891,1897,1903,1909,1915,1921,1927,1933,1938],{"path":1538,"stem":1539,"title":1540,"authors":1541,"date":1525,"chapterOrder":1542,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","wiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","ROS2介绍",[7],"0100",{"path":1544,"stem":1545,"title":1546,"authors":1547,"date":1525,"chapterOrder":1548,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","wiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","入门操作",[7],"0200",{"path":1532,"stem":1534,"title":5,"authors":1550,"date":1525,"chapterOrder":1524,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},[7],{"path":1552,"stem":1553,"title":1554,"authors":1555,"date":1525,"chapterOrder":1556,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","四大通信",[7],"0400",{"path":1558,"stem":1559,"title":1560,"authors":1561,"date":1525,"chapterOrder":1562,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1564,"stem":1565,"title":1566,"authors":1567,"date":1525,"chapterOrder":1568,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","wiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch",[7],"0600",{"path":1570,"stem":1571,"title":1572,"authors":1573,"date":1525,"chapterOrder":1574,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","wiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","回溯rosbag2",[7],"0700",{"path":1576,"stem":1577,"title":1578,"authors":1579,"date":1525,"chapterOrder":1580,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","wiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","坐标变换TF",[7],"0800",{"path":1582,"stem":1583,"title":1584,"authors":1585,"date":1525,"chapterOrder":1586,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1588,"stem":1589,"title":1590,"authors":1591,"date":1525,"chapterOrder":1592,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1594,"stem":1595,"title":1596,"authors":1597,"date":1525,"chapterOrder":1598,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic",[7],"1100-0100",{"path":1600,"stem":1601,"title":1602,"authors":1603,"date":1525,"chapterOrder":1604,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1606,"stem":1607,"title":1608,"authors":1609,"date":1525,"chapterOrder":1610,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1612,"stem":1613,"title":1614,"authors":1615,"date":1525,"chapterOrder":1616,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1618,"stem":1619,"title":1620,"authors":1621,"date":1525,"chapterOrder":1622,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gezebo仿真平台",[7],"1100",{"path":1624,"stem":1625,"title":1626,"authors":1627,"date":1525,"chapterOrder":1628,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1630,"stem":1631,"title":1632,"authors":1633,"date":1525,"chapterOrder":1634,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1636,"stem":1637,"title":1638,"authors":1639,"date":1525,"chapterOrder":1640,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","Humble与Jazzy导航的差异",[7],"1200-0300",{"path":1642,"stem":1643,"title":1644,"authors":1645,"date":1525,"chapterOrder":1646,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1648,"stem":1649,"title":1650,"authors":1651,"date":1525,"chapterOrder":1652,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1654,"stem":1655,"title":1656,"authors":1657,"date":1525,"chapterOrder":1658,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1660,"stem":1661,"title":1662,"authors":1663,"date":1525,"chapterOrder":1664,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1666,"stem":1667,"title":1668,"authors":1669,"date":1525,"chapterOrder":1670,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1672,"stem":1673,"title":1674,"authors":1675,"date":1525,"chapterOrder":1676,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1678,"stem":1679,"title":1680,"authors":1681,"date":1525,"chapterOrder":1682,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1684,"stem":1685,"title":1686,"authors":1687,"date":1525,"chapterOrder":1688,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1690,"stem":1691,"title":1692,"authors":1693,"date":1525,"chapterOrder":1694,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1696,"stem":1697,"title":1698,"authors":1699,"date":1525,"chapterOrder":1700,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1702,"stem":1703,"title":1704,"authors":1705,"date":1525,"chapterOrder":1706,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1708,"stem":1709,"title":1710,"authors":1711,"date":1525,"chapterOrder":1712,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1714,"stem":1715,"title":1716,"authors":1717,"date":1525,"chapterOrder":1718,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1720,"stem":1721,"title":1722,"authors":1723,"date":1525,"chapterOrder":1724,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1726,"stem":1727,"title":1728,"authors":1729,"date":1525,"chapterOrder":1730,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1732,"stem":1733,"title":1734,"authors":1735,"date":1525,"chapterOrder":1736,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1738,"stem":1739,"title":1704,"authors":1740,"date":1525,"chapterOrder":1741,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1743,"stem":1744,"title":1745,"authors":1746,"date":1525,"chapterOrder":1747,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1749,"stem":1750,"title":1704,"authors":1751,"date":1525,"chapterOrder":1752,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1754,"stem":1755,"title":1756,"authors":1757,"date":1525,"chapterOrder":1758,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1760,"stem":1761,"title":1762,"authors":1763,"date":1525,"chapterOrder":1764,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux硬件通信",[7],"1300",{"path":1766,"stem":1767,"title":1768,"authors":1769,"date":1525,"chapterOrder":1770,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1772,"stem":1773,"title":1774,"authors":1775,"date":1525,"chapterOrder":1776,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1778,"stem":1779,"title":1780,"authors":1781,"date":1525,"chapterOrder":1782,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1784,"stem":1785,"title":1786,"authors":1787,"date":1525,"chapterOrder":1788,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1790,"stem":1791,"title":1792,"authors":1793,"date":1525,"chapterOrder":1794,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1796,"stem":1797,"title":1798,"authors":1799,"date":1525,"chapterOrder":1800,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1802,"stem":1803,"title":1804,"authors":1805,"date":1525,"chapterOrder":1806,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","优化日志",[7],"1400-0500",{"path":1808,"stem":1809,"title":1810,"authors":1811,"date":1525,"chapterOrder":1812,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1814,"stem":1815,"title":1816,"authors":1817,"date":1525,"chapterOrder":1818,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1820,"stem":1821,"title":1822,"authors":1823,"date":1525,"chapterOrder":1824,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1826,"stem":1827,"title":1828,"authors":1829,"date":1525,"chapterOrder":1830,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1832,"stem":1833,"title":1834,"authors":1835,"date":1525,"chapterOrder":1836,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1838,"stem":1839,"title":1840,"authors":1841,"date":1525,"chapterOrder":1842,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1844,"stem":1845,"title":1846,"authors":1847,"date":1525,"chapterOrder":1848,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1850,"stem":1851,"title":1852,"authors":1853,"date":1525,"chapterOrder":1854,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","硬件平台",[7],"1400-0600",{"path":1856,"stem":1857,"title":1858,"authors":1859,"date":1525,"chapterOrder":1860,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1862,"stem":1863,"title":1864,"authors":1865,"date":1525,"chapterOrder":1866,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1868,"stem":1869,"title":1870,"authors":1871,"date":1525,"chapterOrder":1872,"chapterDepth":111,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1874,"stem":1875,"title":1876,"authors":1877,"date":1525,"chapterOrder":1878,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1880,"stem":1881,"title":1882,"authors":1883,"date":1525,"chapterOrder":1884,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1886,"stem":1887,"title":1888,"authors":1889,"date":1525,"chapterOrder":1890,"chapterDepth":102,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1892,"stem":1893,"title":1894,"authors":1895,"date":1525,"chapterOrder":1896,"chapterDepth":88,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1898,"stem":1899,"title":1900,"authors":1901,"date":1525,"chapterOrder":1902,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","机器人硬件",[7],"1400",{"path":1904,"stem":1905,"title":1906,"authors":1907,"date":1525,"chapterOrder":1908,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","wiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control",[7],"1500",{"path":1910,"stem":1911,"title":1912,"authors":1913,"date":1525,"chapterOrder":1914,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1916,"stem":1917,"title":1918,"authors":1919,"date":1525,"chapterOrder":1920,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\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":1922,"stem":1923,"title":1924,"authors":1925,"date":1525,"chapterOrder":1926,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","wiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS",[7],"1800",{"path":1928,"stem":1929,"title":1930,"authors":1931,"date":1525,"chapterOrder":1932,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","Webots仿真平台",[7],"1900",{"path":1934,"stem":1935,"title":1321,"authors":1936,"date":1525,"chapterOrder":1937,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":1530},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","wiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV",[7],"2000",{"path":1527,"stem":1939,"title":1940,"authors":1941,"date":1525,"chapterOrder":1942,"chapterDepth":1523,"docKey":1526,"docRoot":1527,"docTitle":1528,"isWikiDoc":212,"isWikiIndex":212},"wiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2机器人操作系统教程",[7],null,[1944,1946,1949,1952],{"name":7,"image":1945},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":1947,"image":1948},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":1950,"image":1951},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":1953,"image":1954},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431901123]