[{"data":1,"prerenderedAt":616},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai":307,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai":600,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai":615},{"id":4,"title":5,"body":6,"canonicalPath":288,"chapterDepth":289,"chapterOrder":290,"date":291,"description":12,"docI18nKey":292,"docKey":293,"docRoot":294,"docTitle":295,"extension":296,"i18nKey":297,"isBlogPost":298,"isWikiDoc":208,"isWikiIndex":298,"layout":299,"legacyPath":299,"locale":300,"localeSlug":301,"meta":302,"navigation":208,"path":288,"seo":303,"sourcePath":304,"sourceStem":297,"stem":305,"wikiDepth":66,"__hash__":306},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台.md","Webots simulation platform",{"type":7,"value":8,"toc":286},"minimark",[9,13,16,24,30,33,36,44,47,50,53,282],[10,11,12],"p",{},"This platform is very comfortable for testing kinematics.",[10,14,15],{},"You can convert SolidWorks to URDF (ROS officially provides the sw2urdf tool), and then convert URDF to Webots (Webots officially provides the urdf2webots tool).",[10,17,18],{},[19,20,21],"a",{"href":21,"rel":22},"https:\u002F\u002Fgithub.com\u002Fros\u002Fsolidworks_urdf_exporter",[23],"nofollow",[10,25,26],{},[19,27,28],{"href":28,"rel":29},"https:\u002F\u002Fgithub.com\u002Fcyberbotics\u002Furdf2webots",[23],[10,31,32],{},"In that case, even the motors have been selected for you — all you need to do is write the kinematics.",[10,34,35],{},"Motion control programs can be written in languages such as C\u002FC++, Python, and Java. When controlling, simply pay attention to the method and units used for controlling the motor's angle and speed.",[10,37,38,39,43],{},"If you call ",[40,41,42],"code",{},"setPosition(INFINITY)"," on the motor, it will become an angle motor, and the function originally used to set speed will instead set angular velocity.",[10,45,46],{},"If you do not set setPosition(INFINITY) for the motor, then this motor is a velocity motor.",[10,48,49],{},"The unit of angle is rad (questionable).",[10,51,52],{},"The speed unit is rad\u002Fs (questionable).",[54,55,60],"pre",{"className":56,"code":57,"language":58,"meta":59,"style":59},"language-cpp shiki shiki-themes github-light github-dark","        for (int i = 0;i \u003C 4;i++)\n        {\n                \u002F\u002F舵电机仿真中默认顺时针为正\n                swerve_motor[i] = robot->getMotor(\"swerve_joint\" + std::to_string(i));\n                \u002F\u002Fswerve_motor[i]->setPosition(INFINITY);       \u002F\u002F 注释掉：不启用速度控制\n                swerve_motor[i]->setPosition(0.0);       \u002F\u002F 初始角度为0\n                swerve_motor[i]->setVelocity(50.0);       \u002F\u002F 设置角速度\n\n                \u002F\u002F驱动电机仿真中默认向后滚为正\n                drive_motor[i] = robot->getMotor(\"drive_joint\" + std::to_string(i));\n                drive_motor[i]->setPosition(INFINITY);   \u002F\u002F 启用速度控制\n                drive_motor[i]->setVelocity(-0.0);        \u002F\u002F 初始速度为0\n        }\n","cpp","",[40,61,62,106,112,119,156,165,185,203,210,216,243,257,276],{"__ignoreMap":59},[63,64,67,71,75,78,81,84,88,91,94,97,100,103],"span",{"class":65,"line":66},"line",1,[63,68,70],{"class":69},"szBVR","        for",[63,72,74],{"class":73},"sVt8B"," (",[63,76,77],{"class":69},"int",[63,79,80],{"class":73}," i ",[63,82,83],{"class":69},"=",[63,85,87],{"class":86},"sj4cs"," 0",[63,89,90],{"class":73},";i ",[63,92,93],{"class":69},"\u003C",[63,95,96],{"class":86}," 4",[63,98,99],{"class":73},";i",[63,101,102],{"class":69},"++",[63,104,105],{"class":73},")\n",[63,107,109],{"class":65,"line":108},2,[63,110,111],{"class":73},"        {\n",[63,113,115],{"class":65,"line":114},3,[63,116,118],{"class":117},"sJ8bj","                \u002F\u002F舵电机仿真中默认顺时针为正\n",[63,120,122,125,127,130,134,137,141,144,147,150,153],{"class":65,"line":121},4,[63,123,124],{"class":73},"                swerve_motor[i] ",[63,126,83],{"class":69},[63,128,129],{"class":73}," robot->",[63,131,133],{"class":132},"sScJk","getMotor",[63,135,136],{"class":73},"(",[63,138,140],{"class":139},"sZZnC","\"swerve_joint\"",[63,142,143],{"class":69}," +",[63,145,146],{"class":132}," std",[63,148,149],{"class":73},"::",[63,151,152],{"class":132},"to_string",[63,154,155],{"class":73},"(i));\n",[63,157,159,162],{"class":65,"line":158},5,[63,160,161],{"class":117},"                \u002F\u002Fswerve_motor[i]->setPosition(INFINITY);",[63,163,164],{"class":117},"       \u002F\u002F 注释掉：不启用速度控制\n",[63,166,168,171,174,176,179,182],{"class":65,"line":167},6,[63,169,170],{"class":73},"                swerve_motor[i]->",[63,172,173],{"class":132},"setPosition",[63,175,136],{"class":73},[63,177,178],{"class":86},"0.0",[63,180,181],{"class":73},");",[63,183,184],{"class":117},"       \u002F\u002F 初始角度为0\n",[63,186,188,190,193,195,198,200],{"class":65,"line":187},7,[63,189,170],{"class":73},[63,191,192],{"class":132},"setVelocity",[63,194,136],{"class":73},[63,196,197],{"class":86},"50.0",[63,199,181],{"class":73},[63,201,202],{"class":117},"       \u002F\u002F 设置角速度\n",[63,204,206],{"class":65,"line":205},8,[63,207,209],{"emptyLinePlaceholder":208},true,"\n",[63,211,213],{"class":65,"line":212},9,[63,214,215],{"class":117},"                \u002F\u002F驱动电机仿真中默认向后滚为正\n",[63,217,219,222,224,226,228,230,233,235,237,239,241],{"class":65,"line":218},10,[63,220,221],{"class":73},"                drive_motor[i] ",[63,223,83],{"class":69},[63,225,129],{"class":73},[63,227,133],{"class":132},[63,229,136],{"class":73},[63,231,232],{"class":139},"\"drive_joint\"",[63,234,143],{"class":69},[63,236,146],{"class":132},[63,238,149],{"class":73},[63,240,152],{"class":132},[63,242,155],{"class":73},[63,244,246,249,251,254],{"class":65,"line":245},11,[63,247,248],{"class":73},"                drive_motor[i]->",[63,250,173],{"class":132},[63,252,253],{"class":73},"(INFINITY);",[63,255,256],{"class":117},"   \u002F\u002F 启用速度控制\n",[63,258,260,262,264,266,269,271,273],{"class":65,"line":259},12,[63,261,248],{"class":73},[63,263,192],{"class":132},[63,265,136],{"class":73},[63,267,268],{"class":69},"-",[63,270,178],{"class":86},[63,272,181],{"class":73},[63,274,275],{"class":117},"        \u002F\u002F 初始速度为0\n",[63,277,279],{"class":65,"line":278},13,[63,280,281],{"class":73},"        }\n",[283,284,285],"style",{},"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 .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 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 .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);}",{"title":59,"searchDepth":108,"depth":108,"links":287},[],"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai",0,"1900","2023-12-30","wiki\u002F2023-12-30-ros2-tutorial","en-us:2023-12-30-ros2-tutorial","\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台",false,null,"en-US","en-us",{},{"title":5,"description":12},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","sPsce2hgrO-PGxJBuzjWyg2Z172YSsC8ENqCZ1LVd4U",[308,313,318,323,328,333,338,343,348,353,358,363,368,373,378,383,388,393,398,403,408,413,418,423,428,433,437,442,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,586,591,592,597],{"path":309,"stem":310,"title":311,"date":291,"chapterOrder":312,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","Introduction to ROS2","0100",{"path":314,"stem":315,"title":316,"date":291,"chapterOrder":317,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","Getting Started","0200",{"path":319,"stem":320,"title":321,"date":291,"chapterOrder":322,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包","Workspace and Function Packages","0300",{"path":324,"stem":325,"title":326,"date":291,"chapterOrder":327,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","Four Major Communications","0400",{"path":329,"stem":330,"title":331,"date":291,"chapterOrder":332,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ros2-qi-ta-tong-xin-ji-zhi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ROS2其他通信机制","ROS2 Other Communication Mechanisms","0500",{"path":334,"stem":335,"title":336,"date":291,"chapterOrder":337,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch","0600",{"path":339,"stem":340,"title":341,"date":291,"chapterOrder":342,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","Replaying rosbag2","0700",{"path":344,"stem":345,"title":346,"date":291,"chapterOrder":347,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","Coordinate Transformation TF","0800",{"path":349,"stem":350,"title":351,"date":291,"chapterOrder":352,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-可视化平台RVIZ2与URDF建模语言","Visualization Platform RVIZ2 and URDF Modeling Language","0900",{"path":354,"stem":355,"title":356,"date":291,"chapterOrder":357,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-stage-ros2-fang-zhen-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-Stage_Ros2仿真平台","Stage_Ros2 Simulation Platform","1000",{"path":359,"stem":360,"title":361,"date":291,"chapterOrder":362,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic","1100-0100",{"path":364,"stem":365,"title":366,"date":291,"chapterOrder":367,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-ignitiongazebo","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","1100-0200",{"path":369,"stem":370,"title":371,"date":291,"chapterOrder":372,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-gazebosim","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-GazeboSim","Gz Sim（Gazebo Harmonic）","1100-0300",{"path":374,"stem":375,"title":376,"date":291,"chapterOrder":377,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-igngz2gzsim","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-Igngz2gzsim","Migrate Ign Gazebo to Gz Sim","1100-0400",{"path":379,"stem":380,"title":381,"date":291,"chapterOrder":382,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gazebo simulation platform","1100",{"path":384,"stem":385,"title":386,"date":291,"chapterOrder":387,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-humble-ban-ben","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-Humble版本","Humble Navigation Simulation","1200-0100",{"path":389,"stem":390,"title":391,"date":291,"chapterOrder":392,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-jazzy-ban-ben","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-Jazzy版本","Jazzy Navigation Simulation","1200-0200",{"path":394,"stem":395,"title":396,"date":291,"chapterOrder":397,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","Differences in Navigation between Humble and Jazzy","1200-0300",{"path":399,"stem":400,"title":401,"date":291,"chapterOrder":402,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-机器人导航Navigation2(仿真篇)","Robot Navigation with Navigation2 (Simulation)","1200",{"path":404,"stem":405,"title":406,"date":291,"chapterOrder":407,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-boost-aiso","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-Boost.Aiso","Boost.Asio库","1300-0100-0100",{"path":409,"stem":410,"title":411,"date":291,"chapterOrder":412,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2-serial-driver","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2_serial_driver","ROS2 Serial Driver Library","1300-0100-0200",{"path":414,"stem":415,"title":416,"date":291,"chapterOrder":417,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-chuan-kou-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-串口通信","UART serial communication","1300-0100",{"path":419,"stem":420,"title":421,"date":291,"chapterOrder":422,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","SocketCAN","1300-0200-0100",{"path":424,"stem":425,"title":426,"date":291,"chapterOrder":427,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2-socketcan","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2_socketcan","ROS2_SocketCAN","1300-0200-0200",{"path":429,"stem":430,"title":431,"date":291,"chapterOrder":432,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-can-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-CAN通信","CAN communication","1300-0200",{"path":434,"stem":435,"title":406,"date":291,"chapterOrder":436,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-boost-aiso","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-Boost.Aiso","1300-0300-0100",{"path":438,"stem":439,"title":440,"date":291,"chapterOrder":441,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-tcp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-TCP通信","TCP communication","1300-0300",{"path":443,"stem":444,"title":406,"date":291,"chapterOrder":445,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-boost-aiso","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-Boost.Aiso","1300-0400-0100",{"path":447,"stem":448,"title":449,"date":291,"chapterOrder":450,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信","UDP communication","1300-0400",{"path":452,"stem":453,"title":454,"date":291,"chapterOrder":455,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux hardware communication","1300",{"path":457,"stem":458,"title":459,"date":291,"chapterOrder":460,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-ji-qi-ren-zu-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-机器人组成","Robot Composition","1400-0100",{"path":462,"stem":463,"title":464,"date":291,"chapterOrder":465,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-yuan-cheng-kai-fa-ssh","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-远程开发SSH","Remote Development SSH","1400-0200-0100",{"path":467,"stem":468,"title":469,"date":291,"chapterOrder":470,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-yuan-cheng-fang-wen-zhuo-mian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-远程访问桌面","Remote Desktop Access","1400-0200-0200",{"path":472,"stem":473,"title":474,"date":291,"chapterOrder":475,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-工控机之远程开发环境","Remote Development Environment for Industrial PC","1400-0200",{"path":477,"stem":478,"title":479,"date":291,"chapterOrder":480,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-工控机之外接USB设备","External USB Devices for the Industrial PC","1400-0300",{"path":482,"stem":483,"title":484,"date":291,"chapterOrder":485,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-fen-bu-shi-da-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-分布式搭建","Distributed setup","1400-0400",{"path":487,"stem":488,"title":489,"date":291,"chapterOrder":490,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","Optimize logs","1400-0500",{"path":492,"stem":493,"title":494,"date":291,"chapterOrder":495,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-li-cheng-ji-odom","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-里程计Odom","odometry","1400-0600-0100",{"path":497,"stem":498,"title":499,"date":291,"chapterOrder":500,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-guan-xing-ji-imu","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-惯性计IMU","Inertial Measurement Unit (IMU)","1400-0600-0200",{"path":502,"stem":503,"title":504,"date":291,"chapterOrder":505,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-ji-guang-lei-da-lidar","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-激光雷达LiDAR","LiDAR","1400-0600-0300",{"path":507,"stem":508,"title":509,"date":291,"chapterOrder":510,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-xiang-ji-camera","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-相机Camera","Camera","1400-0600-0400",{"path":512,"stem":513,"title":514,"date":291,"chapterOrder":515,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-quan-qiu-ding-wei-gnss","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-全球定位GNSS","Global Navigation Satellite System (GNSS)","1400-0600-0500",{"path":517,"stem":518,"title":519,"date":291,"chapterOrder":520,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-shou-bing-joy","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-手柄joy","The query \"手柄JOY\" is a bit ambiguous. To help you better, could you please provide more details? For example:","1400-0600-0600",{"path":522,"stem":523,"title":524,"date":291,"chapterOrder":525,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-jian-pan-kong-zhi-jie-dian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-键盘控制节点","Keyboard control node","1400-0600-0700",{"path":527,"stem":528,"title":529,"date":291,"chapterOrder":530,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","Hardware platform","1400-0600",{"path":532,"stem":533,"title":534,"date":291,"chapterOrder":535,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-坐标系与话题关系","Coordinate System and Topic Relationship","1400-0700",{"path":537,"stem":538,"title":539,"date":291,"chapterOrder":540,"chapterDepth":114,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-lun-shi-li-cheng-ji-biao-ding","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-轮式里程计标定","Wheel odometry calibration","1400-0800-0100-0100",{"path":542,"stem":543,"title":544,"date":291,"chapterOrder":545,"chapterDepth":114,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-轮式里程计与IMU融合","Fusion of Wheel Odometry and IMU","1400-0800-0100-0200",{"path":547,"stem":548,"title":549,"date":291,"chapterOrder":550,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-轮式里程计标定与融合","Wheel odometry calibration and fusion","1400-0800-0100",{"path":552,"stem":553,"title":554,"date":291,"chapterOrder":555,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-ji-guang-lei-da-gong-ju","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-激光雷达工具","Lidar Tool","1400-0800-0200",{"path":557,"stem":558,"title":559,"date":291,"chapterOrder":560,"chapterDepth":108,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-xiang-ji-shi-yong-jin-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-相机使用进阶","Advanced Camera Usage","1400-0800-0300",{"path":562,"stem":563,"title":564,"date":291,"chapterOrder":565,"chapterDepth":66,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-ying-jian-ping-tai-jin-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-硬件平台进阶","Advanced Hardware Platform","1400-0800",{"path":567,"stem":568,"title":569,"date":291,"chapterOrder":570,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","Robot hardware","1400",{"path":572,"stem":573,"title":574,"date":291,"chapterOrder":575,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control","1500",{"path":577,"stem":578,"title":579,"date":291,"chapterOrder":580,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-Moveit2工业机器人机械臂","MoveIt2 industrial robot arm","1600",{"path":582,"stem":583,"title":584,"date":291,"chapterOrder":585,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇)","Robot Navigation with Navigation2 (Physical Robot)","1700",{"path":587,"stem":588,"title":589,"date":291,"chapterOrder":590,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS","1800",{"path":288,"stem":305,"title":5,"date":291,"chapterOrder":290,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},{"path":593,"stem":594,"title":595,"date":291,"chapterOrder":596,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":298},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV","OpenCV","2000",{"path":294,"stem":598,"title":599,"date":291,"chapterOrder":299,"chapterDepth":289,"docKey":293,"docRoot":294,"docTitle":295,"isWikiDoc":208,"isWikiIndex":208},"_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2 Robot Operating System Tutorial",{"variants":601},[602,603,606,609,612],{"path":288,"localeSlug":301,"i18nKey":297},{"path":604,"localeSlug":605,"i18nKey":297},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","zh-hant",{"path":607,"localeSlug":608,"i18nKey":297},"\u002Fzh-hk\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","zh-hk",{"path":610,"localeSlug":611,"i18nKey":297},"\u002Fzh-tw\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","zh-tw",{"path":613,"localeSlug":614,"i18nKey":297},"\u002Fzh-cn\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","zh-cn",[288,304,604,304,607,304,610,304,613,304],1784646860185]