[{"data":1,"prerenderedAt":832},["ShallowReactive",2],{"wiki-page-/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-opencv":3,"wiki-doc-items-/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-opencv":464,"language-switcher-data-/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-opencv":816,"wiki-i18n-paths-/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-opencv":831},{"id":4,"title":5,"body":6,"canonicalPath":445,"chapter":446,"chapterSort":447,"date":448,"description":56,"docI18nKey":449,"docKey":450,"docRoot":451,"docTitle":452,"extension":453,"i18nKey":454,"isBlogPost":455,"isWikiDoc":99,"isWikiIndex":455,"layout":456,"legacyPath":456,"locale":457,"localeSlug":458,"meta":459,"navigation":99,"path":445,"seo":460,"sourcePath":461,"sourceStem":454,"stem":462,"wikiDepth":96,"__hash__":463},"content/_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-OpenCV.md","OpenCV",{"type":7,"value":8,"toc":441},"minimark",[9,13,23,27,30,36,42,45,51,61,65,73,80,83,149,154,157,160,165,168,216,219,234,237,242,253,256,261,305,369,372,391,394,399,402,411,418,427,434,437],[10,11,5],"h3",{"id":12},"opencv",[14,15,16],"p",{},[17,18,22],"a",{"href":19,"rel":20},"https://sdutvincirobot.feishu.cn/wiki/D50twQJ2UiVvaDky8Sic3aPOnEh",[21],"nofollow","基礎視覺算法-OpenCV實現",[10,24,26],{"id":25},"cv_bridge","CV_Bridge",[14,28,29],{},"cv_bridge維基百科介紹:",[14,31,32],{},[17,33,34],{"href":34,"rel":35},"https://wiki.ros.org/cv_bridge",[21],[14,37,38],{},[17,39,40],{"href":40,"rel":41},"https://index.ros.org/p/cv_bridge/",[21],[14,43,44],{},"ROS2Humble的cv_bridge倉庫鏈接(注意選擇對應版本的分支branches):",[14,46,47],{},[17,48,49],{"href":49,"rel":50},"https://github.com/ros-perception/vision_opencv/tree/humble",[21],[14,52,53,58],{},[54,55],"img",{"alt":56,"src":57},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1953.webp",[54,59],{"alt":56,"src":60},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1954.webp",[62,63,64],"h4",{"id":64},"安裝",[14,66,67,68],{},"提前自己編譯好帶CUDA的OpenCV4,詳見",[17,69,72],{"href":70,"rel":71},"https://sdutvincirobot.feishu.cn/wiki/FQszwXIR5iQgCfk7pRwc9rYpnqg",[21],"電控組環境搭建大全",[74,75,76],"ol",{},[77,78,79],"li",{},"apt安裝(不建議)",[14,81,82],{},"由於ros自帶的cv_bridge自動鏈接ros自帶的oepncv版本,所以我們一般不會用ros2自帶的cv_bridge,一般都需要自己手動編譯一個cv_bridge.",[84,85,89],"pre",{"className":86,"code":87,"language":88,"meta":56,"style":56},"language-cmake shiki shiki-themes github-light github-dark","\n# 通用命令\nsudo apt install ros-\u003Cros2-distro>-vision-opencv\n\n# ROS2 Humble\nsudo apt install ros-humble-vision-opencv\n\n# ROS2 Jazzy\nsudo apt install ros-jazzy-vision-opencv\n","cmake",[90,91,92,101,108,115,120,126,132,137,143],"code",{"__ignoreMap":56},[93,94,97],"span",{"class":95,"line":96},"line",1,[93,98,100],{"emptyLinePlaceholder":99},true,"\n",[93,102,104],{"class":95,"line":103},2,[93,105,107],{"class":106},"sJ8bj","# 通用命令\n",[93,109,111],{"class":95,"line":110},3,[93,112,114],{"class":113},"sVt8B","sudo apt install ros-\u003Cros2-distro>-vision-opencv\n",[93,116,118],{"class":95,"line":117},4,[93,119,100],{"emptyLinePlaceholder":99},[93,121,123],{"class":95,"line":122},5,[93,124,125],{"class":106},"# ROS2 Humble\n",[93,127,129],{"class":95,"line":128},6,[93,130,131],{"class":113},"sudo apt install ros-humble-vision-opencv\n",[93,133,135],{"class":95,"line":134},7,[93,136,100],{"emptyLinePlaceholder":99},[93,138,140],{"class":95,"line":139},8,[93,141,142],{"class":106},"# ROS2 Jazzy\n",[93,144,146],{"class":95,"line":145},9,[93,147,148],{"class":113},"sudo apt install ros-jazzy-vision-opencv\n",[74,150,151],{"start":103},[77,152,153],{},"源碼編譯安裝(建議)",[14,155,156],{},"本教程以jazzy為例子.",[14,158,159],{},"首先克隆倉庫,克隆jazzy,humble,rolling都可以,只要是ROS2的基本都沒啥大變化.但是官方暫時沒出jazzy,我就直接克隆默認的rolling了.",[14,161,162],{},[54,163],{"alt":56,"src":164},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1955.webp",[14,166,167],{},"新建一個文件夾",[84,169,171],{"className":86,"code":170,"language":88,"meta":56,"style":56},"mkdir ~/ros2_ws/src\ncd ~/ros2_ws/src\n\n# 克隆源码\ngit clone https://github.com/ros-perception/vision_opencv.git\ncd vision_opencv\n\n# 如果是humble建议:\ngit checkout humble\n",[90,172,173,178,183,187,192,197,202,206,211],{"__ignoreMap":56},[93,174,175],{"class":95,"line":96},[93,176,177],{"class":113},"mkdir ~/ros2_ws/src\n",[93,179,180],{"class":95,"line":103},[93,181,182],{"class":113},"cd ~/ros2_ws/src\n",[93,184,185],{"class":95,"line":110},[93,186,100],{"emptyLinePlaceholder":99},[93,188,189],{"class":95,"line":117},[93,190,191],{"class":106},"# 克隆源码\n",[93,193,194],{"class":95,"line":122},[93,195,196],{"class":113},"git clone https://github.com/ros-perception/vision_opencv.git\n",[93,198,199],{"class":95,"line":128},[93,200,201],{"class":113},"cd vision_opencv\n",[93,203,204],{"class":95,"line":134},[93,205,100],{"emptyLinePlaceholder":99},[93,207,208],{"class":95,"line":139},[93,209,210],{"class":106},"# 如果是humble建议:\n",[93,212,213],{"class":95,"line":145},[93,214,215],{"class":113},"git checkout humble\n",[14,217,218],{},"安裝依賴:",[84,220,222],{"className":86,"code":221,"language":88,"meta":56,"style":56},"sudo apt install python3-numpy\nsudo apt install libboost-python-dev\n",[90,223,224,229],{"__ignoreMap":56},[93,225,226],{"class":95,"line":96},[93,227,228],{"class":113},"sudo apt install python3-numpy\n",[93,230,231],{"class":95,"line":103},[93,232,233],{"class":113},"sudo apt install libboost-python-dev\n",[14,235,236],{},"修改cv_bridge的CMakeLists",[14,238,239],{},[54,240],{"alt":56,"src":241},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1956.webp",[14,243,244,245,248,249,252],{},"將原本的",[90,246,247],{},"find_package(OpenCV 4 QUIET)","改為精確匹配版本，並添加",[90,250,251],{},"EXACT","參數：",[14,254,255],{},"EXACT是未找到精確版本時，CMake會報錯並終止構建.",[14,257,258],{},[54,259],{"alt":56,"src":260},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1957.webp",[84,262,264],{"className":86,"code":263,"language":88,"meta":56,"style":56},"find_package(OpenCV 4.11 EXACT QUIET\n  COMPONENTS\n    opencv_core\n    opencv_imgproc\n    opencv_imgcodecs\n  CONFIG\n)\n",[90,265,266,275,280,285,290,295,300],{"__ignoreMap":56},[93,267,268,272],{"class":95,"line":96},[93,269,271],{"class":270},"szBVR","find_package",[93,273,274],{"class":113},"(OpenCV 4.11 EXACT QUIET\n",[93,276,277],{"class":95,"line":103},[93,278,279],{"class":113},"  COMPONENTS\n",[93,281,282],{"class":95,"line":110},[93,283,284],{"class":113},"    opencv_core\n",[93,286,287],{"class":95,"line":117},[93,288,289],{"class":113},"    opencv_imgproc\n",[93,291,292],{"class":95,"line":122},[93,293,294],{"class":113},"    opencv_imgcodecs\n",[93,296,297],{"class":95,"line":128},[93,298,299],{"class":113},"  CONFIG\n",[93,301,302],{"class":95,"line":134},[93,303,304],{"class":113},")\n",[84,306,308],{"className":86,"code":307,"language":88,"meta":56,"style":56},"cd ~/ros2_ws\n\n# 下面这三个根据情况三选一,一般是第一个colcon build --symlink-install\n\n# 如果你曾经没编译过\ncolcon build --symlink-install\n\n# 如果你只想编译cv_bridge\ncolcon build --symlink-install --packages-select cv_bridge\n\n# 如果你曾经编译过一遍,则需要下列命令\ncolcon build --symlink-install --packages-select cv_bridge --allow-overriding cv_bridge\n",[90,309,310,315,319,324,328,333,338,342,347,352,357,363],{"__ignoreMap":56},[93,311,312],{"class":95,"line":96},[93,313,314],{"class":113},"cd ~/ros2_ws\n",[93,316,317],{"class":95,"line":103},[93,318,100],{"emptyLinePlaceholder":99},[93,320,321],{"class":95,"line":110},[93,322,323],{"class":106},"# 下面这三个根据情况三选一,一般是第一个colcon build --symlink-install\n",[93,325,326],{"class":95,"line":117},[93,327,100],{"emptyLinePlaceholder":99},[93,329,330],{"class":95,"line":122},[93,331,332],{"class":106},"# 如果你曾经没编译过\n",[93,334,335],{"class":95,"line":128},[93,336,337],{"class":113},"colcon build --symlink-install\n",[93,339,340],{"class":95,"line":134},[93,341,100],{"emptyLinePlaceholder":99},[93,343,344],{"class":95,"line":139},[93,345,346],{"class":106},"# 如果你只想编译cv_bridge\n",[93,348,349],{"class":95,"line":145},[93,350,351],{"class":113},"colcon build --symlink-install --packages-select cv_bridge\n",[93,353,355],{"class":95,"line":354},10,[93,356,100],{"emptyLinePlaceholder":99},[93,358,360],{"class":95,"line":359},11,[93,361,362],{"class":106},"# 如果你曾经编译过一遍,则需要下列命令\n",[93,364,366],{"class":95,"line":365},12,[93,367,368],{"class":113},"colcon build --symlink-install --packages-select cv_bridge --allow-overriding cv_bridge\n",[14,370,371],{},"驗證:",[84,373,375],{"className":86,"code":374,"language":88,"meta":56,"style":56},"\n# 列出cv_bridge链接的opencv版本\nldd ./install/cv_bridge/lib/libcv_bridge.so | grep opencv \n",[90,376,377,381,386],{"__ignoreMap":56},[93,378,379],{"class":95,"line":96},[93,380,100],{"emptyLinePlaceholder":99},[93,382,383],{"class":95,"line":103},[93,384,385],{"class":106},"# 列出cv_bridge链接的opencv版本\n",[93,387,388],{"class":95,"line":110},[93,389,390],{"class":113},"ldd ./install/cv_bridge/lib/libcv_bridge.so | grep opencv\n",[14,392,393],{},"如下圖,我的成功鏈接到411了,也就是opencv4.11版本.",[14,395,396],{},[54,397],{"alt":56,"src":398},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1958.webp",[14,400,401],{},"接下來配置環境:",[84,403,405],{"className":86,"code":404,"language":88,"meta":56,"style":56},"vim ~/.bashrc\n",[90,406,407],{"__ignoreMap":56},[93,408,409],{"class":95,"line":96},[93,410,404],{"class":113},[14,412,413,414,417],{},"在",[90,415,416],{},"source /opt/ros/jazzy/setup.bash","的下一行加入下面這句",[84,419,421],{"className":86,"code":420,"language":88,"meta":56,"style":56},"source ~/ros2_ws/install/setup.bash\n",[90,422,423],{"__ignoreMap":56},[93,424,425],{"class":95,"line":96},[93,426,420],{"class":113},[14,428,429,430,433],{},"輸入",[90,431,432],{},":wq","保存",[14,435,436],{},"完成安裝與環境配置結束.",[438,439,440],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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}",{"title":56,"searchDepth":103,"depth":103,"links":442},[443,444],{"id":12,"depth":110,"text":5},{"id":25,"depth":110,"text":26},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-opencv","20",20000000,"2023-12-30","wiki/2023-12-30-ros2-tutorial","zh-hk:2023-12-30-ros2-tutorial","/zh-hk/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki/2023-12-30-ros2-tutorial/ch20-OpenCV",false,null,"zh-HK","zh-hk",{},{"title":5,"description":56},"/wiki/2023-12-30-ros2-tutorial/ch20-opencv","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","6Vbl-a8at66ebTZUN2SDJPRl8Q5ltJcTgdvHTrxuz-I",[465,471,477,483,489,495,501,507,513,519,525,531,537,543,549,555,561,567,572,578,583,589,595,601,607,613,619,625,631,637,643,649,655,661,667,673,679,685,691,697,703,709,715,721,727,733,739,745,751,757,763,769,770,776,782,788,794,800,806,812],{"path":466,"stem":467,"title":468,"date":448,"chapter":469,"chapterSort":470,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","ROS2介紹","1",1000000,{"path":472,"stem":473,"title":474,"date":448,"chapter":475,"chapterSort":476,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2仿真平台","10",10000000,{"path":478,"stem":479,"title":480,"date":448,"chapter":481,"chapterSort":482,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":484,"stem":485,"title":486,"date":448,"chapter":487,"chapterSort":488,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":490,"stem":491,"title":492,"date":448,"chapter":493,"chapterSort":494,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":496,"stem":497,"title":498,"date":448,"chapter":499,"chapterSort":500,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-4-igngz2gzsim","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-4-Igngz2gzsim","將Ign Gazebo遷移至Gz Sim","11.4",11040000,{"path":502,"stem":503,"title":504,"date":448,"chapter":505,"chapterSort":506,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gezebo仿真平台","11",11000000,{"path":508,"stem":509,"title":510,"date":448,"chapter":511,"chapterSort":512,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-1-humble-ban-ben","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-1-Humble版本","Humble導航仿真","12.1",12010000,{"path":514,"stem":515,"title":516,"date":448,"chapter":517,"chapterSort":518,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-2-jazzy-ban-ben","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-2-Jazzy版本","Jazzy導航仿真","12.2",12020000,{"path":520,"stem":521,"title":522,"date":448,"chapter":523,"chapterSort":524,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy","Humble與Jazzy導航的差異","12.3",12030000,{"path":526,"stem":527,"title":528,"date":448,"chapter":529,"chapterSort":530,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-机器人导航Navigation2(仿真篇)","機器人導航Navigation2(仿真篇)","12",12000000,{"path":532,"stem":533,"title":534,"date":448,"chapter":535,"chapterSort":536,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-1-1-boost-aiso","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-1-1-Boost.Aiso","Boost.Asio庫","13.1.1",13010100,{"path":538,"stem":539,"title":540,"date":448,"chapter":541,"chapterSort":542,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2-serial-driver","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2_serial_driver","ROS2 Serial Driver庫","13.1.2",13010200,{"path":544,"stem":545,"title":546,"date":448,"chapter":547,"chapterSort":548,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-1-chuan-kou-tong-xin","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-1-串口通信","UART串口通信","13.1",13010000,{"path":550,"stem":551,"title":552,"date":448,"chapter":553,"chapterSort":554,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","SocketCAN","13.2.1",13020100,{"path":556,"stem":557,"title":558,"date":448,"chapter":559,"chapterSort":560,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2-socketcan","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2_socketcan","ROS2_SocketCAN","13.2.2",13020200,{"path":562,"stem":563,"title":564,"date":448,"chapter":565,"chapterSort":566,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-2-can-tong-xin","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-2-CAN通信","CAN通信","13.2",13020000,{"path":568,"stem":569,"title":534,"date":448,"chapter":570,"chapterSort":571,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-3-1-boost-aiso","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-3-1-Boost.Aiso","13.3.1",13030100,{"path":573,"stem":574,"title":575,"date":448,"chapter":576,"chapterSort":577,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-3-tcp-tong-xin","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-3-TCP通信","TCP通信","13.3",13030000,{"path":579,"stem":580,"title":534,"date":448,"chapter":581,"chapterSort":582,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-4-1-boost-aiso","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-4-1-Boost.Aiso","13.4.1",13040100,{"path":584,"stem":585,"title":586,"date":448,"chapter":587,"chapterSort":588,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-4-UDP通信","UDP通信","13.4",13040000,{"path":590,"stem":591,"title":592,"date":448,"chapter":593,"chapterSort":594,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-linux-ying-jian-tong-xin","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch13-Linux硬件通信","Linux硬件通信","13",13000000,{"path":596,"stem":597,"title":598,"date":448,"chapter":599,"chapterSort":600,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-1-ji-qi-ren-zu-cheng","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-1-机器人组成","機器人組成","14.1",14010000,{"path":602,"stem":603,"title":604,"date":448,"chapter":605,"chapterSort":606,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-2-1-yuan-cheng-kai-fa-ssh","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-2-1-远程开发SSH","遠程開發SSH","14.2.1",14020100,{"path":608,"stem":609,"title":610,"date":448,"chapter":611,"chapterSort":612,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-2-2-yuan-cheng-fang-wen-zhuo-mian","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-2-2-远程访问桌面","遠程訪問桌面","14.2.2",14020200,{"path":614,"stem":615,"title":616,"date":448,"chapter":617,"chapterSort":618,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-2-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-2-工控机之远程开发环境","工控機之遠程開發環境","14.2",14020000,{"path":620,"stem":621,"title":622,"date":448,"chapter":623,"chapterSort":624,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-3-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-3-工控机之外接USB设备","工控機之外接USB設備","14.3",14030000,{"path":626,"stem":627,"title":628,"date":448,"chapter":629,"chapterSort":630,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-4-fen-bu-shi-da-jian","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-4-分布式搭建","分佈式搭建","14.4",14040000,{"path":632,"stem":633,"title":634,"date":448,"chapter":635,"chapterSort":636,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-5-you-hua-ri-zhi","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-5-优化日志","優化日誌","14.5",14050000,{"path":638,"stem":639,"title":640,"date":448,"chapter":641,"chapterSort":642,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-1-li-cheng-ji-odom","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-1-里程计Odom","里程計Odom","14.6.1",14060100,{"path":644,"stem":645,"title":646,"date":448,"chapter":647,"chapterSort":648,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-2-guan-xing-ji-imu","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-2-惯性计IMU","慣性計IMU","14.6.2",14060200,{"path":650,"stem":651,"title":652,"date":448,"chapter":653,"chapterSort":654,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-3-ji-guang-lei-da-lidar","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-3-激光雷达LiDAR","激光雷達LiDAR","14.6.3",14060300,{"path":656,"stem":657,"title":658,"date":448,"chapter":659,"chapterSort":660,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-4-xiang-ji-camera","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-4-相机Camera","相機Camera","14.6.4",14060400,{"path":662,"stem":663,"title":664,"date":448,"chapter":665,"chapterSort":666,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-5-quan-qiu-ding-wei-gnss","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-5-全球定位GNSS","全球定位GNSS","14.6.5",14060500,{"path":668,"stem":669,"title":670,"date":448,"chapter":671,"chapterSort":672,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-6-shou-bing-joy","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-6-手柄joy","手柄JOY","14.6.6",14060600,{"path":674,"stem":675,"title":676,"date":448,"chapter":677,"chapterSort":678,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-7-jian-pan-kong-zhi-jie-dian","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-7-键盘控制节点","鍵盤控制節點","14.6.7",14060700,{"path":680,"stem":681,"title":682,"date":448,"chapter":683,"chapterSort":684,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-ying-jian-ping-tai","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-6-硬件平台","硬件平台","14.6",14060000,{"path":686,"stem":687,"title":688,"date":448,"chapter":689,"chapterSort":690,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-7-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-7-坐标系与话题关系","座標系與話題關係","14.7",14070000,{"path":692,"stem":693,"title":694,"date":448,"chapter":695,"chapterSort":696,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定","輪式里程計標定","14.8.1.1",14080101,{"path":698,"stem":699,"title":700,"date":448,"chapter":701,"chapterSort":702,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-轮式里程计与IMU融合","輪式里程計與IMU融合","14.8.1.2",14080102,{"path":704,"stem":705,"title":706,"date":448,"chapter":707,"chapterSort":708,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-轮式里程计标定与融合","輪式里程計標定與融合","14.8.1",14080100,{"path":710,"stem":711,"title":712,"date":448,"chapter":713,"chapterSort":714,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-2-ji-guang-lei-da-gong-ju","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-2-激光雷达工具","激光雷達工具","14.8.2",14080200,{"path":716,"stem":717,"title":718,"date":448,"chapter":719,"chapterSort":720,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-3-xiang-ji-shi-yong-jin-jie","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-3-相机使用进阶","相機使用進階","14.8.3",14080300,{"path":722,"stem":723,"title":724,"date":448,"chapter":725,"chapterSort":726,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-ying-jian-ping-tai-jin-jie","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-硬件平台进阶","硬件平台進階","14.8",14080000,{"path":728,"stem":729,"title":730,"date":448,"chapter":731,"chapterSort":732,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","機器人硬件","14",14000000,{"path":734,"stem":735,"title":736,"date":448,"chapter":737,"chapterSort":738,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":740,"stem":741,"title":742,"date":448,"chapter":743,"chapterSort":744,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂","Moveit2工業機器人機械臂","16",16000000,{"path":746,"stem":747,"title":748,"date":448,"chapter":749,"chapterSort":750,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch17-机器人导航Navigation2(实体篇)","機器人導航Navigation2(實體篇)","17",17000000,{"path":752,"stem":753,"title":754,"date":448,"chapter":755,"chapterSort":756,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch18-microros","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":758,"stem":759,"title":760,"date":448,"chapter":761,"chapterSort":762,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots仿真平台","19",19000000,{"path":764,"stem":765,"title":766,"date":448,"chapter":767,"chapterSort":768,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch2-入门操作","入門操作","2",2000000,{"path":445,"stem":462,"title":5,"date":448,"chapter":446,"chapterSort":447,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},{"path":771,"stem":772,"title":773,"date":448,"chapter":774,"chapterSort":775,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch3-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch3-工作空间与功能包","工作空間與功能包","3",3000000,{"path":777,"stem":778,"title":779,"date":448,"chapter":780,"chapterSort":781,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch4-四大通信","四大通信","4",4000000,{"path":783,"stem":784,"title":785,"date":448,"chapter":786,"chapterSort":787,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","ROS2其他通信機制","5",5000000,{"path":789,"stem":790,"title":791,"date":448,"chapter":792,"chapterSort":793,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch6-launch","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch6-Launch","Launch","6",6000000,{"path":795,"stem":796,"title":797,"date":448,"chapter":798,"chapterSort":799,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","回溯rosbag2","7",7000000,{"path":801,"stem":802,"title":803,"date":448,"chapter":804,"chapterSort":805,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","座標變換TF","8",8000000,{"path":807,"stem":808,"title":809,"date":448,"chapter":810,"chapterSort":811,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":455},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/ch9-可视化平台RVIZ2与URDF建模语言","可視化平台RVIZ2與URDF建模語言","9",9000000,{"path":451,"stem":813,"title":814,"date":448,"chapter":456,"chapterSort":815,"docKey":450,"docRoot":451,"docTitle":452,"isWikiDoc":99,"isWikiIndex":99},"_i18n/zh-hk/wiki/2023-12-30-ros2-tutorial/index","ROS2機器人操作系統教程",0,{"variants":817},[818,821,824,825,828],{"path":819,"localeSlug":820,"i18nKey":454},"/en-us/wiki/2023-12-30-ros2-tutorial/ch20-opencv","en-us",{"path":822,"localeSlug":823,"i18nKey":454},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch20-opencv","zh-hant",{"path":445,"localeSlug":458,"i18nKey":454},{"path":826,"localeSlug":827,"i18nKey":454},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch20-opencv","zh-tw",{"path":829,"localeSlug":830,"i18nKey":454},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch20-opencv","zh-cn",[819,461,822,461,445,461,826,461,829,461],1780671868102]