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