[{"data":1,"prerenderedAt":650},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding":3,"wiki-doc-items-/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding":282,"language-switcher-data-/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding":634,"wiki-i18n-paths-/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding":649},{"id":4,"title":5,"body":6,"canonicalPath":262,"chapter":263,"chapterSort":264,"date":265,"description":12,"docI18nKey":266,"docKey":267,"docRoot":268,"docTitle":269,"extension":270,"i18nKey":271,"isBlogPost":272,"isWikiDoc":273,"isWikiIndex":272,"layout":274,"legacyPath":274,"locale":275,"localeSlug":276,"meta":277,"navigation":273,"path":262,"seo":278,"sourcePath":279,"sourceStem":271,"stem":280,"wikiDepth":87,"__hash__":281},"content/_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定.md","Wheel odometry calibration",{"type":7,"value":8,"toc":259},"minimark",[9,13,29,32,38,41,46,49,54,57,62,65,70,73,111,114,117,123,163,168,171,174,178,181,185,188,192,195,198,202,247,252,255],[10,11,12],"p",{},"Wheel odometry calibration is a method for calibrating the rotation and movement of a robot's wheels to provide accurate position and orientation information during robot motion. Through calibration, errors caused by factors such as wheel size and wheelbase can be corrected, resulting in a more accurate motion trajectory. This section will use the MyCar navigation robot as an example to demonstrate the calibration process, with the following calibration steps:",[14,15,16,20,23,26],"ol",{},[17,18,19],"li",{},"Prepare the measurement site.",[17,21,22],{},"Linear displacement calibration;",[17,24,25],{},"Angular displacement calibration;",[17,27,28],{},"Verification and adjustment.",[10,30,31],{},"Additionally, this process also requires using a ruler as a measuring tool.",[10,33,34],{},[35,36,37],"strong",{},"1. Prepare the measurement site",[10,39,40],{},"Choose an open and flat area, making sure there are no obstacles or other distractions.",[10,42,43],{},[35,44,45],{},"2. Linear Displacement Calibration",[10,47,48],{},"Linear displacement calibration is used to calibrate the distance a robot travels when moving in a straight line. This calibration is closely related to the wheel diameter parameter. When the wheel diameter is measured inaccurately or the tires are worn, it can cause errors in the linear displacement of the wheel odometry. The following are the main steps for linear displacement calibration:",[10,50,51],{},[35,52,53],{},"(1) Actual Data Collection",[10,55,56],{},"Start the robot chassis and keyboard control node, then use the keyboard to drive the robot forward in a straight line for a certain distance while measuring linear displacement data.",[10,58,59],{},[35,60,61],{},"(2) Odometry Message Collection",[10,63,64],{},"After the robot stops, output the odometry message and retrieve the robot's displacement data from the odometry message.",[10,66,67],{},[35,68,69],{},"(3) Parameter Calculation and Modification",[10,71,72],{},"Collect the actual displacement data (w1) and the displacement data from the odometry message (w2), then combine them with the original tire diameter value (d1) from the driver package configuration file to calculate the corrected tire diameter value (d). The calculation formula is as follows:",[74,75,80],"pre",{"className":76,"code":77,"language":78,"meta":79,"style":79},"language-cpp shiki shiki-themes github-light github-dark","d = w1 / w2 * d1;\n","cpp","",[81,82,83],"code",{"__ignoreMap":79},[84,85,88,92,96,99,102,105,108],"span",{"class":86,"line":87},"line",1,[84,89,91],{"class":90},"sVt8B","d ",[84,93,95],{"class":94},"szBVR","=",[84,97,98],{"class":90}," w1 ",[84,100,101],{"class":94},"/",[84,103,104],{"class":90}," w2 ",[84,106,107],{"class":94},"*",[84,109,110],{"class":90}," d1;\n",[10,112,113],{},"Write the calculated results into the corresponding parameters of the MyCar robot's configuration file, and rebuild.",[10,115,116],{},"For best results, you can repeat the above process multiple times. After each execution, measure and record the new actual displacement data (w1) and the displacement data from the odometry message (w2), then recalculate the corrected tire diameter value (d) based on the new data. By continuously iterating this process, you can gradually optimize the estimated tire diameter and reduce the linear displacement error of the odometry.",[10,118,119],{},[120,121,122],"em",{},"Tip:",[124,125,126,141,153],"blockquote",{},[10,127,128,129,132,133,136,137,140],{},"If you are using the MyCar two-wheel differential robot with an Arduino as the main controller, you will need to modify the ",[81,130,131],{},"params/arduino.yaml"," file under the ",[81,134,135],{},"ros2_arduino_bridge"," package. In this file, there is a parameter named ",[81,138,139],{},"wheel_diameter",", which represents the wheel diameter.",[10,142,143,144,132,147,136,150,152],{},"If you are using a MyCar two-wheel differential robot with an STM32 as the main controller, you need to modify the ",[81,145,146],{},"params/stm32_2w.yaml",[81,148,149],{},"ros2_stm32_bridge",[81,151,139],{},", which is the wheel diameter.",[10,154,155,156,132,159,136,161,152],{},"If you are using the MyCar four-wheel differential robot with an STM32 as the main controller, you need to modify the ",[81,157,158],{},"params/stm32_4w.yaml",[81,160,149],{},[81,162,139],{},[10,164,165],{},[35,166,167],{},"3. Angular Displacement Calibration",[10,169,170],{},"Angular displacement calibration is used to calibrate the robot's angle change during turns. This calibration is closely related to the chassis's rotation radius parameter; when the rotation radius is set incorrectly, it can lead to measurement errors in angular displacement. Additionally, it is important to note that for a two-wheel differential drive robot, the rotation radius is essentially the same as the wheel track. This is because a two-wheel differential drive robot does not experience lateral sliding of the chassis during rotation, so the wheel track can be used to calculate the rotation angle, and the rotation radius can be approximated as equal to the wheel track. However, for a four-wheel differential drive robot, lateral sliding occurs during rotation, and the wheel track cannot be directly used to calculate the rotation angle. The rotation radius of a four-wheel differential drive robot must be determined experimentally, as it is affected by lateral sliding. Furthermore, due to factors such as differences between the left and right tires or shifts in the vehicle's center of gravity, the rotation radius used to calculate the rotation angle may differ between left and right turns. Therefore, separate experiments are required to obtain the rotation radius for left and right turns.",[10,172,173],{},"Here are the main steps for angular displacement calibration:",[10,175,176],{},[35,177,53],{},[10,179,180],{},"Start the robot chassis and keyboard control node, use the keyboard to make the robot rotate in place, and measure the angular displacement data, for example, by rotating a full circle in place.",[10,182,183],{},[35,184,61],{},[10,186,187],{},"After the robot stops, open rviz2 and add the TF plugin to display the relative relationship between the robot's base coordinate system (typically base_link or base_footprint) and the odometry coordinate system (typically odom).",[10,189,190],{},[35,191,69],{},[10,193,194],{},"When the robot rotates in place for one full turn, if the robot's base coordinate system aligns with the odometry coordinate system, the rotation radius parameter does not need adjustment. If the robot's base coordinate system does not align with the odometry coordinate system and the robot's rotation angle in rviz2 is larger than the actual rotation angle, then increase the rotation radius. If the robot's base coordinate system does not align with the odometry coordinate system and the robot's rotation angle in rviz2 is smaller than the actual rotation angle, then decrease the rotation radius. Write the calculated result into the corresponding parameter in the MyCar robot's configuration file, and rebuild.",[10,196,197],{},"For best results, the above process can be repeated multiple times. After each execution, measure and record the new actual angular displacement data and the coordinate frame relationships in rviz2, then correct the rotation radius again based on the new data. By continuously iterating this process, the estimated value of the rotation radius can be gradually optimized, reducing the measurement error of the angular displacement.",[10,199,200],{},[120,201,122],{},[124,203,204,219,234],{},[10,205,206,207,132,209,211,212,215,216,218],{},"If you are using an Arduino-based MyCar two-wheel differential robot, you need to modify the ",[81,208,131],{},[81,210,135],{}," package. In this file, there is a parameter called ",[81,213,214],{},"wheel_track",", which represents the wheel diameter. In ",[81,217,135],{},", no distinction is made between left and right rotation.",[10,220,143,221,132,223,225,226,229,230,233],{},[81,222,146],{},[81,224,149],{}," package. When the robot rotates left, the parameter to calibrate is ",[81,227,228],{},"model_param_acw","; when the robot rotates right, the parameter to calibrate is ",[81,231,232],{},"model_param_cw",".",[10,235,236,237,132,239,241,242,244,245,233],{},"If you are using the MyCar four-wheel differential robot with an STM32 as the main controller, you will need to modify the ",[81,238,158],{},[81,240,149],{}," package. Similar to the two-wheel differential case, when the robot rotates left, the parameter to calibrate is named ",[81,243,228],{},", and when the robot rotates right, the parameter to calibrate is named ",[81,246,232],{},[10,248,249],{},[35,250,251],{},"4. Verification and Adjustment",[10,253,254],{},"Apply the calibrated wheel odometry to real-world scenarios, and perform verification and adjustments. Observe the differences between the vehicle's actual position and motion and the estimated values, and make necessary adjustments and calibrations. Additionally, when the vehicle's operating environment changes or after prolonged use, it is recommended to recalibrate the odometry.",[256,257,258],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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":79,"searchDepth":260,"depth":260,"links":261},2,[],"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","14.8.1.1",14080101,"2023-12-30","wiki/2023-12-30-ros2-tutorial","en-us:2023-12-30-ros2-tutorial","/en-us/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定",false,true,null,"en-US","en-us",{},{"title":5,"description":12},"/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定","lJD6xmYVQA4R5FtJhyHKJ7h_GqVA-ktfC9OucAyKm_c",[283,289,295,301,307,313,319,325,331,337,343,349,355,361,367,373,379,385,390,396,401,407,413,419,425,431,437,443,449,455,461,467,473,479,485,491,497,503,509,510,516,522,528,534,540,546,552,558,564,570,576,582,588,594,600,606,612,618,624,630],{"path":284,"stem":285,"title":286,"date":265,"chapter":287,"chapterSort":288,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","Introduction to ROS2","1",1000000,{"path":290,"stem":291,"title":292,"date":265,"chapter":293,"chapterSort":294,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2 Simulation Platform","10",10000000,{"path":296,"stem":297,"title":298,"date":265,"chapter":299,"chapterSort":300,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":302,"stem":303,"title":304,"date":265,"chapter":305,"chapterSort":306,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":308,"stem":309,"title":310,"date":265,"chapter":311,"chapterSort":312,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":314,"stem":315,"title":316,"date":265,"chapter":317,"chapterSort":318,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-4-igngz2gzsim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-4-Igngz2gzsim","Migrate Ign Gazebo to Gz Sim","11.4",11040000,{"path":320,"stem":321,"title":322,"date":265,"chapter":323,"chapterSort":324,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gazebo simulation platform","11",11000000,{"path":326,"stem":327,"title":328,"date":265,"chapter":329,"chapterSort":330,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-1-humble-ban-ben","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-1-Humble版本","Humble Navigation Simulation","12.1",12010000,{"path":332,"stem":333,"title":334,"date":265,"chapter":335,"chapterSort":336,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-2-jazzy-ban-ben","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-2-Jazzy版本","Jazzy Navigation Simulation","12.2",12020000,{"path":338,"stem":339,"title":340,"date":265,"chapter":341,"chapterSort":342,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy","Differences in Navigation between Humble and Jazzy","12.3",12030000,{"path":344,"stem":345,"title":346,"date":265,"chapter":347,"chapterSort":348,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-机器人导航Navigation2(仿真篇)","Robot Navigation with Navigation2 (Simulation)","12",12000000,{"path":350,"stem":351,"title":352,"date":265,"chapter":353,"chapterSort":354,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-1-Boost.Aiso","Boost.Asio库","13.1.1",13010100,{"path":356,"stem":357,"title":358,"date":265,"chapter":359,"chapterSort":360,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2-serial-driver","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2_serial_driver","ROS2 Serial Driver Library","13.1.2",13010200,{"path":362,"stem":363,"title":364,"date":265,"chapter":365,"chapterSort":366,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-chuan-kou-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-串口通信","UART serial communication","13.1",13010000,{"path":368,"stem":369,"title":370,"date":265,"chapter":371,"chapterSort":372,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","SocketCAN","13.2.1",13020100,{"path":374,"stem":375,"title":376,"date":265,"chapter":377,"chapterSort":378,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2-socketcan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2_socketcan","ROS2_SocketCAN","13.2.2",13020200,{"path":380,"stem":381,"title":382,"date":265,"chapter":383,"chapterSort":384,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-can-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-CAN通信","CAN communication","13.2",13020000,{"path":386,"stem":387,"title":352,"date":265,"chapter":388,"chapterSort":389,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-1-Boost.Aiso","13.3.1",13030100,{"path":391,"stem":392,"title":393,"date":265,"chapter":394,"chapterSort":395,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-tcp-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-TCP通信","TCP communication","13.3",13030000,{"path":397,"stem":398,"title":352,"date":265,"chapter":399,"chapterSort":400,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-1-Boost.Aiso","13.4.1",13040100,{"path":402,"stem":403,"title":404,"date":265,"chapter":405,"chapterSort":406,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-UDP通信","UDP communication","13.4",13040000,{"path":408,"stem":409,"title":410,"date":265,"chapter":411,"chapterSort":412,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-linux-ying-jian-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-Linux硬件通信","Linux hardware communication","13",13000000,{"path":414,"stem":415,"title":416,"date":265,"chapter":417,"chapterSort":418,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-1-ji-qi-ren-zu-cheng","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-1-机器人组成","Robot Composition","14.1",14010000,{"path":420,"stem":421,"title":422,"date":265,"chapter":423,"chapterSort":424,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-1-yuan-cheng-kai-fa-ssh","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-1-远程开发SSH","Remote Development SSH","14.2.1",14020100,{"path":426,"stem":427,"title":428,"date":265,"chapter":429,"chapterSort":430,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-2-yuan-cheng-fang-wen-zhuo-mian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-2-远程访问桌面","Remote Desktop Access","14.2.2",14020200,{"path":432,"stem":433,"title":434,"date":265,"chapter":435,"chapterSort":436,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-工控机之远程开发环境","Remote Development Environment for Industrial PC","14.2",14020000,{"path":438,"stem":439,"title":440,"date":265,"chapter":441,"chapterSort":442,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-3-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-3-工控机之外接USB设备","External USB Devices for the Industrial PC","14.3",14030000,{"path":444,"stem":445,"title":446,"date":265,"chapter":447,"chapterSort":448,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-4-fen-bu-shi-da-jian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-4-分布式搭建","Distributed setup","14.4",14040000,{"path":450,"stem":451,"title":452,"date":265,"chapter":453,"chapterSort":454,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-5-you-hua-ri-zhi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-5-优化日志","Optimize logs","14.5",14050000,{"path":456,"stem":457,"title":458,"date":265,"chapter":459,"chapterSort":460,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-1-li-cheng-ji-odom","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-1-里程计Odom","odometry","14.6.1",14060100,{"path":462,"stem":463,"title":464,"date":265,"chapter":465,"chapterSort":466,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-2-guan-xing-ji-imu","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-2-惯性计IMU","Inertial Measurement Unit (IMU)","14.6.2",14060200,{"path":468,"stem":469,"title":470,"date":265,"chapter":471,"chapterSort":472,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-3-ji-guang-lei-da-lidar","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-3-激光雷达LiDAR","LiDAR","14.6.3",14060300,{"path":474,"stem":475,"title":476,"date":265,"chapter":477,"chapterSort":478,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-4-xiang-ji-camera","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-4-相机Camera","Camera","14.6.4",14060400,{"path":480,"stem":481,"title":482,"date":265,"chapter":483,"chapterSort":484,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-5-quan-qiu-ding-wei-gnss","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-5-全球定位GNSS","Global Navigation Satellite System (GNSS)","14.6.5",14060500,{"path":486,"stem":487,"title":488,"date":265,"chapter":489,"chapterSort":490,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-6-shou-bing-joy","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-6-手柄joy","The query \"手柄JOY\" is a bit ambiguous. To help you better, could you please provide more details? For example:","14.6.6",14060600,{"path":492,"stem":493,"title":494,"date":265,"chapter":495,"chapterSort":496,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-7-jian-pan-kong-zhi-jie-dian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-7-键盘控制节点","Keyboard control node","14.6.7",14060700,{"path":498,"stem":499,"title":500,"date":265,"chapter":501,"chapterSort":502,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-ying-jian-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-硬件平台","Hardware platform","14.6",14060000,{"path":504,"stem":505,"title":506,"date":265,"chapter":507,"chapterSort":508,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-7-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-7-坐标系与话题关系","Coordinate System and Topic Relationship","14.7",14070000,{"path":262,"stem":280,"title":5,"date":265,"chapter":263,"chapterSort":264,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},{"path":511,"stem":512,"title":513,"date":265,"chapter":514,"chapterSort":515,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-轮式里程计与IMU融合","Fusion of Wheel Odometry and IMU","14.8.1.2",14080102,{"path":517,"stem":518,"title":519,"date":265,"chapter":520,"chapterSort":521,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-轮式里程计标定与融合","Wheel odometry calibration and fusion","14.8.1",14080100,{"path":523,"stem":524,"title":525,"date":265,"chapter":526,"chapterSort":527,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-2-ji-guang-lei-da-gong-ju","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-2-激光雷达工具","Lidar Tool","14.8.2",14080200,{"path":529,"stem":530,"title":531,"date":265,"chapter":532,"chapterSort":533,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-3-xiang-ji-shi-yong-jin-jie","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-3-相机使用进阶","Advanced Camera Usage","14.8.3",14080300,{"path":535,"stem":536,"title":537,"date":265,"chapter":538,"chapterSort":539,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-ying-jian-ping-tai-jin-jie","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-硬件平台进阶","Advanced Hardware Platform","14.8",14080000,{"path":541,"stem":542,"title":543,"date":265,"chapter":544,"chapterSort":545,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","Robot hardware","14",14000000,{"path":547,"stem":548,"title":549,"date":265,"chapter":550,"chapterSort":551,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":553,"stem":554,"title":555,"date":265,"chapter":556,"chapterSort":557,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂","MoveIt2 industrial robot arm","16",16000000,{"path":559,"stem":560,"title":561,"date":265,"chapter":562,"chapterSort":563,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch17-机器人导航Navigation2(实体篇)","Robot Navigation with Navigation2 (Physical Robot)","17",17000000,{"path":565,"stem":566,"title":567,"date":265,"chapter":568,"chapterSort":569,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch18-microros","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":571,"stem":572,"title":573,"date":265,"chapter":574,"chapterSort":575,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots simulation platform","19",19000000,{"path":577,"stem":578,"title":579,"date":265,"chapter":580,"chapterSort":581,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch2-入门操作","Getting Started","2",2000000,{"path":583,"stem":584,"title":585,"date":265,"chapter":586,"chapterSort":587,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch20-opencv","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","OpenCV","20",20000000,{"path":589,"stem":590,"title":591,"date":265,"chapter":592,"chapterSort":593,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch3-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch3-工作空间与功能包","Workspace and Function Packages","3",3000000,{"path":595,"stem":596,"title":597,"date":265,"chapter":598,"chapterSort":599,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch4-四大通信","Four Major Communications","4",4000000,{"path":601,"stem":602,"title":603,"date":265,"chapter":604,"chapterSort":605,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","ROS2 Other Communication Mechanisms","5",5000000,{"path":607,"stem":608,"title":609,"date":265,"chapter":610,"chapterSort":611,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch6-Launch","Launch","6",6000000,{"path":613,"stem":614,"title":615,"date":265,"chapter":616,"chapterSort":617,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","Replaying rosbag2","7",7000000,{"path":619,"stem":620,"title":621,"date":265,"chapter":622,"chapterSort":623,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","Coordinate Transformation TF","8",8000000,{"path":625,"stem":626,"title":627,"date":265,"chapter":628,"chapterSort":629,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":272},"/en-us/wiki/2023-12-30-ros2-tutorial/ch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch9-可视化平台RVIZ2与URDF建模语言","Visualization Platform RVIZ2 and URDF Modeling Language","9",9000000,{"path":268,"stem":631,"title":632,"date":265,"chapter":274,"chapterSort":633,"docKey":267,"docRoot":268,"docTitle":269,"isWikiDoc":273,"isWikiIndex":273},"_i18n/en-us/wiki/2023-12-30-ros2-tutorial/index","ROS2 Robot Operating System Tutorial",0,{"variants":635},[636,637,640,643,646],{"path":262,"localeSlug":276,"i18nKey":271},{"path":638,"localeSlug":639,"i18nKey":271},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","zh-hant",{"path":641,"localeSlug":642,"i18nKey":271},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","zh-hk",{"path":644,"localeSlug":645,"i18nKey":271},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","zh-tw",{"path":647,"localeSlug":648,"i18nKey":271},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","zh-cn",[262,279,638,279,641,279,644,279,647,279],1780671806452]