[{"data":1,"prerenderedAt":1710},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi":3,"wiki-doc-items-/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi":1342,"language-switcher-data-/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi":1694,"wiki-i18n-paths-/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi":1709},{"id":4,"title":5,"body":6,"canonicalPath":1321,"chapter":1322,"chapterSort":1323,"date":1324,"description":15,"docI18nKey":1325,"docKey":1326,"docRoot":1327,"docTitle":1328,"extension":1329,"i18nKey":1330,"isBlogPost":1331,"isWikiDoc":1332,"isWikiIndex":1331,"layout":1333,"legacyPath":1333,"locale":1334,"localeSlug":1335,"meta":1336,"navigation":1332,"path":1321,"seo":1337,"sourcePath":1338,"sourceStem":1330,"stem":1339,"wikiDepth":1340,"__hash__":1341},"content/_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂.md","MoveIt2 industrial robot arm",{"type":7,"value":8,"toc":1318},"minimark",[9,18,23,29,35,40,45,61,64,71,74,79,83,87,90,93,102,107,110,115,118,126,131,134,142,145,148,151,156,161,166,169,172,177,180,183,186,191,196,201,204,209,212,215,218,223,228,231,239,242,247,253,258,261,264,267,270,273,277,280,286,289,294,301,308,313,316,321,329,332,337,340,345,350,353,356,359,366,371,376,379,382,387,394,397,402,406,414,419,422,427,430,433,436,439,444,448,451,456,459,462,466,471,474,479,482,486,491,494,499,502,507,510,513,516,521,524,527,532,535,540,543,546,549,552,557,560,563,567,570,573,581,584,589,594,597,600,603,608,611,614,619,622,625,630,635,638,649,652,655,658,661,664,668,671,676,679,682,685,690,693,696,699,702,705,710,713,716,721,724,727,730,735,738,743,746,749,754,757,762,765,768,771,776,779,782,787,791,796,801,804,807,810,813,818,821,826,829,834,837,842,845,850,853,858,861,866,871,874,877,880,883,886,890,895,898,903,906,909,912,915,918,923,926,931,934,937,942,945,948,951,956,959,964,967,972,975,980,983,988,991,994,997,1000,1003,1006,1011,1014,1019,1022,1026,1031,1039,1043,1048,1051,1059,1063,1068,1073,1076,1081,1085,1090,1093,1096,1099,1102,1107,1110,1115,1120,1128,1136,1144,1147,1155,1158,1161,1164,1169,1172,1176,1182,1187,1192,1195,1200,1203,1208,1211,1216,1221,1226,1229,1233,1238,1246,1249,1252,1257,1260,1265,1268,1271,1276,1279,1282,1285,1288,1293,1296,1301,1304,1307,1312,1315],[10,11,12],"p",{},[13,14,15],"a",{"href":15,"rel":16},"https://moveit.ros.org/",[17],"nofollow",[19,20,22],"h3",{"id":21},"robotics","Robotics",[10,24,25],{},[13,26,27],{"href":27,"rel":28},"https://www.bilibili.com/video/BV1v4411H7ez",[17],[10,30,31],{},[13,32,33],{"href":33,"rel":34},"https://www.bilibili.com/video/av59243185",[17],[36,37,39],"h4",{"id":38},"theoretical-foundation","Theoretical Foundation",[41,42,44],"h5",{"id":43},"dof-degrees-of-freedom","DOF (Degrees of Freedom)",[10,46,47,48,52,53,56,57,60],{},"Simply put, degrees of freedom (hereafter referred to as DOF) refer to the ",[49,50,51],"strong",{},"basic ways an object can move in space",", totaling six types. Any motion can be broken down into these six fundamental movements, which can be further divided into two categories: ",[49,54,55],{},"translation"," and ",[49,58,59],{},"rotation",".",[10,62,63],{},"Displacement: translation along the X, Y, and Z axes",[10,65,66],{},[67,68],"img",{"alt":69,"src":70},"","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1834.webp",[10,72,73],{},"Rotation: Roll (rotation around X), Pitch (rotation around Y), Yaw (rotation around Z).",[10,75,76],{},[67,77],{"alt":69,"src":78},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1835.webp",[36,80,82],{"id":81},"mathematical-foundations","Mathematical Foundations",[41,84,86],{"id":85},"pose-position-and-orientation-representation","Pose (position and orientation) representation",[10,88,89],{},"If there is a rigid body (frame) in a space, how do we determine its pose in that space?",[10,91,92],{},"First, establish a world frame, then set up a body frame on the rigid body.",[94,95,96],"ol",{},[97,98,99],"li",{},[49,100,101],{},"Position Description",[10,103,104],{},[67,105],{"alt":69,"src":106},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1836.webp",[10,108,109],{},"Describing the position of a rigid body's center of mass (a point) in the world can be represented using a 3x1 vector.",[10,111,112],{},[67,113],{"alt":69,"src":114},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1837.webp",[10,116,117],{},"This tells us the three DOF of translation.",[94,119,121],{"start":120},2,[97,122,123],{},[49,124,125],{},"Description of Orientation",[10,127,128],{},[67,129],{"alt":69,"src":130},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1838.webp",[10,132,133],{},"Let the world coordinate system be A and the rigid body coordinate system be B.",[10,135,136,139],{},[67,137],{"alt":69,"src":138},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1839.webp",[67,140],{"alt":69,"src":141},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1840.webp",[10,143,144],{},"The matrix above is called a Rotation Matrix. It is a 3x3 orthogonal matrix. ABR describes the orientation of B relative to A, with A as the reference coordinate system.",[10,146,147],{},"Each column vector represents the direction in which the corresponding coordinate axis of B points.",[10,149,150],{},"Each column vector is the direction cosine of the corresponding axis of B relative to A.",[10,152,153],{},[67,154],{"alt":69,"src":155},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1841.webp",[10,157,158],{},[67,159],{"alt":69,"src":160},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1842.webp",[10,162,163],{},[67,164],{"alt":69,"src":165},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1843.webp",[10,167,168],{},"Each element r_ij of the rotation matrix represents the direction cosine between the j-th axis of frame B and the i-th axis of frame A.",[10,170,171],{},"I really can't understand it, so let's first look at the example below:",[10,173,174],{},[67,175],{"alt":69,"src":176},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1844.webp",[10,178,179],{},"How is the X-axis of B represented in A? It can be seen that the X-axis of B is exactly the negative half of the Z-axis of A, which is 0, 0, -1.",[10,181,182],{},"How is B's Y-axis represented in A? It can be seen that B's Y-axis aligns exactly with the positive half of A's Y-axis, so it is 0, 1, 0.",[10,184,185],{},"How is B's Z-axis represented in A? It can be seen that B's Z-axis is exactly the positive half of A's X-axis, so it is 1, 0, 0.",[10,187,188],{},[67,189],{"alt":69,"src":190},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1845.webp",[10,192,193],{},[67,194],{"alt":69,"src":195},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1846.webp",[10,197,198],{},[67,199],{"alt":69,"src":200},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1847.webp",[10,202,203],{},"In this example, the Z axes of A and B coincide, so we only need to look at the top view.",[10,205,206],{},[67,207],{"alt":69,"src":208},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1848.webp",[10,210,211],{},"Simply project the unit vector XB onto the X and Y axes of A to obtain its components.",[10,213,214],{},"The same applies to YB.",[10,216,217],{},"ZB and ZA overlap, which is relatively simple.",[10,219,220],{},[67,221],{"alt":69,"src":222},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1849.webp",[10,224,225],{},[67,226],{"alt":69,"src":227},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1850.webp",[10,229,230],{},"The answer is B.",[94,232,234],{"start":233},3,[97,235,236],{},[49,237,238],{},"Description of Pose",[10,240,241],{},"By using the BF state in the WF, the pose of the rigid body in the world can be determined.",[10,243,244],{},[67,245],{"alt":69,"src":246},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1851.webp",[94,248,250],{"start":249},4,[97,251,252],{},"Description of Motion",[10,254,255],{},[67,256],{"alt":69,"src":257},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1852.webp",[10,259,260],{},"The red line is the trajectory of rigid body motion.",[10,262,263],{},"The derivative of the trajectory (translational DOF) with respect to time is the linear velocity of the rigid body.",[10,265,266],{},"The derivative of rigid body velocity with respect to time is the rigid body linear acceleration.",[10,268,269],{},"Similarly, the derivative of the DOF rotation with respect to time is the angular velocity of the rigid body.",[10,271,272],{},"The derivative of angular velocity with respect to time is the angular acceleration of a rigid body.",[41,274,276],{"id":275},"rotation-matrix","Rotation matrix",[10,278,279],{},"Features:",[10,281,282,283,60],{},"Since each element in the rotation matrix R is the inner product of two vectors, the inner product is commutative and the final result ",[49,284,285],{},"remains numerically unchanged",[10,287,288],{},"So we choose to swap positions.",[10,290,291],{},[67,292],{"alt":69,"src":293},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1853.webp",[10,295,296,297,300],{},"The original R has each ",[49,298,299],{},"column"," as the component of a certain axis of B in frame A.",[10,302,303,304,307],{},"After swapping positions, each ",[49,305,306],{},"row"," of R is the component of a certain axis of A in the B frame.",[10,309,310],{},[67,311],{"alt":69,"src":312},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1854.webp",[10,314,315],{},"Conclusion: Therefore, Rab = Rba^T.",[10,317,318],{},[67,319],{"alt":69,"src":320},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1855.webp",[10,322,323,326],{},[67,324],{"alt":69,"src":325},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1856.webp",[67,327],{"alt":69,"src":328},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1857.webp",[10,330,331],{},"They are clearly in a transposed relationship.",[10,333,334],{},[67,335],{"alt":69,"src":336},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1858.webp",[10,338,339],{},"RT*R = I3 (3x3 identity matrix) (property of an orthogonal matrix)",[10,341,342],{},[67,343],{"alt":69,"src":344},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1859.webp",[10,346,347],{},[67,348],{"alt":69,"src":349},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1860.webp",[10,351,352],{},"There is also a property that|R|=1",[10,354,355],{},"Although there are 9 numbers, due to the properties of an orthogonal matrix, there are constraints. Among these 9 numbers, 6 change as the others vary, so in reality only 3 parameters can be freely chosen. This means the rotation matrix actually has only 3 degrees of freedom (rotational DOF).",[10,357,358],{},"One function of the rotation matrix is as follows:",[10,360,361,362,365],{},"For example, the rotation matrix of another coordinate system B rotating ",[49,363,364],{},"counterclockwise"," by theta degrees around the X, Y, and Z axes relative to coordinate system A.",[10,367,368],{},[67,369],{"alt":69,"src":370},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1861.webp",[10,372,373],{},[67,374],{"alt":69,"src":375},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1862.webp",[10,377,378],{},"In mainland Chinese textbooks, R(X, theta) is commonly used in place of R_X^A(theta) shown in the figure. The A in the figure refers to the original coordinate system, and the resulting ^AP' is also the coordinate in the original coordinate system.",[10,380,381],{},"In this case, left-multiplying A by R gives the coordinates of P in frame A after rotation. (Be sure to distinguish this from the rotation coordinate transformation discussed below, as they are easily confused.)",[10,383,384],{},[67,385],{"alt":69,"src":386},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1863.webp",[10,388,389,390,393],{},"After rotating P 30 degrees counterclockwise, its coordinates in the ",[49,391,392],{},"original coordinate system"," are 002.",[10,395,396],{},"Summary: The rotation matrix primarily has three uses, as shown in the figure below:",[10,398,399],{},[67,400],{"alt":69,"src":401},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1864.webp",[41,403,405],{"id":404},"coordinate-transformation","coordinate transformation",[94,407,408,411],{},[97,409,410],{},"Translation: Translation of coordinate axes",[97,412,413],{},"Rotating coordinate transformation",[10,415,416],{},[67,417],{"alt":69,"src":418},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1865.webp",[10,420,421],{},"Here, APX is a scalar value, XA and others are vectors, the addition is vector addition, and the result is the vector AP.",[10,423,424],{},[67,425],{"alt":69,"src":426},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1866.webp",[10,428,429],{},"The key conclusion is that AP = ABR * BP. (Note that this is left multiplication of matrices.)",[10,431,432],{},"AP is the coordinate of P in the A system.",[10,434,435],{},"BP is the coordinate of P in the B frame.",[10,437,438],{},"ABR is the rotation matrix of B relative to A, where A is the reference coordinate system.",[10,440,441],{},[67,442],{"alt":69,"src":443},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1867.webp",[41,445,447],{"id":446},"object-transformations-and-inverse-transformations","Object transformations and inverse transformations",[10,449,450],{},"The order of translational movements can be reversed, but the order of rotational movements cannot be reversed; otherwise, the orientation will be different.",[10,452,453],{},[67,454],{"alt":69,"src":455},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1868.webp",[10,457,458],{},"There are two main disassembly methods: one is to set a fixed coordinate system and keep rotating according to that coordinate system.",[10,460,461],{},"Another way is to assume the object's coordinate system.",[36,463,465],{"id":464},"ways-to-describe-a-robotic-arm","Ways to describe a robotic arm",[10,467,468],{},[67,469],{"alt":69,"src":470},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1869.webp",[10,472,473],{},"Link 0 is also commonly called base_link.",[10,475,476],{},[67,477],{"alt":69,"src":478},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1870.webp",[10,480,481],{},"First, understand the relative relationship: Axis i-1 is followed by Link i-1 (though other descriptions are also valid).",[36,483,485],{"id":484},"describe-the-relationships-between-each-joint","Describe the relationships between each joint.",[10,487,488],{},[67,489],{"alt":69,"src":490},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1871.webp",[10,492,493],{},"That is the common perpendicular (unique solution), and its length is the Link Length.",[10,495,496],{},[67,497],{"alt":69,"src":498},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1872.webp",[10,500,501],{},"Now only the distances of the two axes are constrained; the two axes can still rotate. Therefore, the next parameter needed is the Link Twist angle.",[10,503,504],{},[67,505],{"alt":69,"src":506},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1873.webp",[10,508,509],{},"This angle is formed along the perpendicular bisector by moving the next axis toward the current axis along that perpendicular bisector, and the resulting angle is called the Link Twist.",[10,511,512],{},"In other words, for any two axes in space, we need two parameters to describe them: Link Length and Link Twist.",[10,514,515],{},"If there are multiple shafts connected in series, we will no longer be able to find the corresponding relationship. For example,",[10,517,518],{},[67,519],{"alt":69,"src":520},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1874.webp",[10,522,523],{},"In the image above, I cannot represent the relative relationship and relative pose between ai-1 and ai on the Axis i.",[10,525,526],{},"So other parameters are still needed.",[10,528,529],{},[67,530],{"alt":69,"src":531},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1875.webp",[10,533,534],{},"First, you need a length — the distance between two common perpendiculars along Axis i, called the Link Offset.",[10,536,537],{},[67,538],{"alt":69,"src":539},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1876.webp",[10,541,542],{},"Then we also need an angle, the Joint Angle, also called the joint angle.",[10,544,545],{},"Actually, it turns out that among these four parameters, only one changes while the others remain fixed.",[10,547,548],{},"If the joint type is a revolute joint, then theta_i changes while everything else remains the same.",[10,550,551],{},"If the joint type is a prismatic joint, then di changes while the others remain unchanged.",[10,553,554],{},[67,555],{"alt":69,"src":556},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1877.webp",[10,558,559],{},"Two axes require two parameters: link length and link twist angle.",[10,561,562],{},"Describing multiple axes connected in series requires four parameters (each pair of links requires four parameters): Link Length, Link Twist, Link Offset, and Joint Angle.",[36,564,566],{"id":565},"establish-a-frame-on-the-joint","Establish a frame on the joint.",[10,568,569],{},"We generally define the Z direction to be the same as the axis of rotation. Whether Z points upward or downward depends on the orientation, and the angle between these two axes is minimized, which allows us to determine the direction of Z.",[10,571,572],{},"Xi's direction is along the direction of ai.",[10,574,575,578],{},[67,576],{"alt":69,"src":577},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1878.webp",[67,579],{"alt":69,"src":580},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1879.webp",[10,582,583],{},"Xi is perpendicular to both Zi+1 and Zi.",[10,585,586],{},[67,587],{"alt":69,"src":588},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1880.webp",[10,590,591],{},[67,592],{"alt":69,"src":593},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1881.webp",[10,595,596],{},"Right-hand rule, determine the Y direction.",[10,598,599],{},"The origin is the intersection of Z and X.",[10,601,602],{},"If establishing base_link (link0) and link1, this is a special case. (base_link is immobile and does not move.)",[10,604,605],{},[67,606],{"alt":69,"src":607},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1882.webp",[10,609,610],{},"frame0 and frame1 overlap (coincide). Typically, for example, with a revolute joint, although theta is defined as arbitrary, I fix theta to 0 and then let frame0 and frame1 (theta",[10,612,613],{},"= 0). For a prismatic joint, similarly, take frame 1 when d=0. Note that this refers to overlapping coincidence, not identical shape, but completely overlapping coordinate systems.",[10,615,616],{},[67,617],{"alt":69,"src":618},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1883.webp",[10,620,621],{},"The last link is similar, because both Xn and Xn-1 need to be perpendicular to Axis n (Zn), so the simplest method is to make Xn align with the direction of Xn-1.",[10,623,624],{},"Xn takes the direction of Xn-1. That is, frame n and frame n-1 are extended.",[10,626,627],{},[49,628,629],{},"Here's the most important part: (There are several ways to determine this; if there are any errors, please discuss and revise.)",[10,631,632],{},[67,633],{"alt":69,"src":634},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1884.webp",[10,636,637],{},"Common knowledge you need to know:",[94,639,640,643,646],{},[97,641,642],{},"Generally, the link twist angle is positive when measured counterclockwise.",[97,644,645],{},"The steering we often refer to is viewed from the opposite direction, meaning we look in the direction where the arrow points toward the eyes.",[97,647,648],{},"Looking at the rotation from the reverse direction of the axis versus along the direction of the axis results in completely opposite turning directions. However, on a flat plane, this can easily cause visual illusions and be difficult to understand. You can try rotating a pen or a motor to test it out.",[10,650,651],{},"① Whether alphai-1 is positive or negative depends on whether the angle from Zi-1 to Zi is clockwise or counterclockwise. Extend your right hand with your thumb pointing in the direction of Xi-1. If alphai-1 follows the direction of your curled fingers, it is counterclockwise and positive; otherwise, it is clockwise and negative.",[10,653,654],{},"So as shown in the figure, alphai-1 is counterclockwise, so it is a positive value.",[10,656,657],{},"② The length of ai-1 is always a positive value because it represents a length, and its value is the relative distance along the Z-axis.",[10,659,660],{},"③ The angle of theta_i is essentially the same: point your right thumb along the direction of Z_i. If theta_i follows the direction of your curled fingers, it is counterclockwise; if it goes against them, it is clockwise.",[10,662,663],{},"④ The magnitude and direction of di depend on the distance from ai-1 to ai along the zi direction: if moving in the positive zi direction, the value is positive; otherwise, it is negative. The magnitude is simply the distance.",[36,665,667],{"id":666},"link-transformations","Link Transformations",[41,669,670],{"id":670},"theory",[10,672,673],{},[67,674],{"alt":69,"src":675},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1885.webp",[10,677,678],{},"Both of our joints have two axes: one is Axis i-1 and the other is Axis i. We also have two frames: one is Frame i-1 and the other is Frame i.",[10,680,681],{},"We need to find the relationship between the two frames, that is, to find the transformation matrix.",[10,683,684],{},"Then quantize the Trans Matrix.",[10,686,687],{},[67,688],{"alt":69,"src":689},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1886.webp",[10,691,692],{},"Suppose there is a point P, whose representation in frame i is Pi. If we find the matrix Ti-1 i, then we can obtain the representation of P in frame i-1.",[10,694,695],{},"So now we need to convert the four parameters we just found into our Transformation Matrix.",[10,697,698],{},"These four parameters—ai-1, alphai-1, di, and thetai—are sufficient to describe the transformation from framei-1 to framei.",[10,700,701],{},"① First, on Axis i-1,",[10,703,704],{},"First, describe alpha by rotating Zi-1 of frame i-1 to roughly align with the direction of Zi, generating FrameR (rotate only Z, leave X unchanged, then determine Y using the right-hand rule).",[10,706,707],{},[67,708],{"alt":69,"src":709},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1887.webp",[10,711,712],{},"② Then describe a,",[10,714,715],{},"Just move FrameR along the direction of a_i-1 onto Z_i.",[10,717,718],{},[67,719],{"alt":69,"src":720},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1888.webp",[10,722,723],{},"③ Describe theta again",[10,725,726],{},"We rotate ZR in frameR to align it with the direction of ai, generating frameP (X moves, Z stays fixed, Y is determined by the right-hand rule).",[10,728,729],{},"After doing this, the direction of Xp is the same as Xi, and the direction of Zp is also the same as Zi.",[10,731,732],{},[67,733],{"alt":69,"src":734},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1889.webp",[10,736,737],{},"④ Describe d again, which is pulling FrameP upward until it eventually coincides with Framei.",[10,739,740],{},[67,741],{"alt":69,"src":742},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1890.webp",[10,744,745],{},"That is, from Frame i-1 to Frame R, then to Frame Q, then to Frame P, and finally to Frame i. A total of four transformations.",[10,747,748],{},"Just now we demonstrated going from Pi-1 to Pi. Now we need to go from our Pi to Pi-1, which means multiplying on the left in reverse order: first multiply by Tp i, then continue down the line.",[10,750,751],{},[67,752],{"alt":69,"src":753},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1891.webp",[10,755,756],{},"The homogeneous transformation matrix between the coordinate systems from link i to link i-1 is T i-1 i = Rot(X, α_i-1) Trans(a_i-1, 0, 0) Rot(Z, θ_i) Trans(0, 0, d_i).",[10,758,759],{},[67,760],{"alt":69,"src":761},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1892.webp",[10,763,764],{},"The top-left corner is a 3x3 rotation matrix, so it only has the angle theta and alpha parameters.",[10,766,767],{},"The 3x1 matrix in the upper right corner is the vector from the origin of frame i relative to the origin of frame i - 1, as seen from frame i - 1. So it is a combination of length and angle.",[10,769,770],{},"The 1x4 matrix in the last row, which is 0001, is a fixed number and does not move.",[10,772,773],{},[67,774],{"alt":69,"src":775},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1893.webp",[10,777,778],{},"For continuous links, we can compute all the way from base_link to linkx, where x can be any number you want.",[10,780,781],{},"For example, with three links, if we find T23 (3 relative to 2), T12 (1 relative to 2), and T01 (ground relative to 1), we can find T03 (ground relative to 3).",[10,783,784],{},[67,785],{"alt":69,"src":786},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1894.webp",[41,788,790],{"id":789},"example","Example",[792,793,795],"h6",{"id":794},"planar-rrr-type","Planar RRR type",[10,797,798],{},[67,799],{"alt":69,"src":800},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1895.webp",[10,802,803],{},"① First, locate the joint axes.",[10,805,806],{},"The three joints are represented by three red dots. Since they are points, this indicates the direction coming out of the page. (Because it is a planar structure, the angle between each Z-axis is 0, so the Link Twist Alpha is 0. Therefore, the direction of Z can be chosen arbitrarily. However, here we assume all joints rotate counterclockwise. Following the right-hand rule, all Z-axes point upward.)",[10,808,809],{},"② Then find the common perpendiculars.",[10,811,812],{},"However, since all axes are parallel to each other, there are infinitely many common perpendiculars. Therefore, we can simply express them within a single plane.",[10,814,815],{},[67,816],{"alt":69,"src":817},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1896.webp",[10,819,820],{},"③ Next, define the Zi vector (the Z direction is the same as the rotation axis direction, so it is also upward).",[10,822,823],{},[67,824],{"alt":69,"src":825},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1897.webp",[10,827,828],{},"④ Then determine the middle Xi vector",[10,830,831],{},[67,832],{"alt":69,"src":833},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1898.webp",[10,835,836],{},"⑤ Then determine the middle Yi vector.",[10,838,839],{},[67,840],{"alt":69,"src":841},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1899.webp",[10,843,844],{},"⑥ Then determine the head and tail, i.e., frame 0 and frame n.",[10,846,847],{},[67,848],{"alt":69,"src":849},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1900.webp",[10,851,852],{},"Actually, we can make frame0 and frame1 completely coincident by setting both alpha and theta to 0. However, as shown in the figure, they are not coincident, so there is a non-zero theta value.",[10,854,855],{},[67,856],{"alt":69,"src":857},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1901.webp",[10,859,860],{},"The last link is the same. It is recommended to align the direction of X3 with that of X2, so that both theta and alpha are 0.",[10,862,863],{},[67,864],{"alt":69,"src":865},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1902.webp",[10,867,868],{},[67,869],{"alt":69,"src":870},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1903.webp",[10,872,873],{},"Because each axis is parallel, alpha is 0. Since all ai are coplanar, d is also 0.",[10,875,876],{},"Since frame0 and frame1 coincide, a0 = 0, then a1 = L1, a2 = L2.",[10,878,879],{},"Since everything is RRR, all thetas are varying angles.",[10,881,882],{},"The end effector at point P can also be calculated by moving along the X3 direction to obtain the expression of P in frame n, and then the expression of P in frame 0 can be derived.",[10,884,885],{},"As shown in the figure, the coordinates of point P in Frame 3 are (L3, 0, 0).",[792,887,889],{"id":888},"rpr-type","RPR type",[10,891,892],{},[67,893],{"alt":69,"src":894},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1904.webp",[10,896,897],{},"① First, find the rotating shaft.",[10,899,900],{},[67,901],{"alt":69,"src":902},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1905.webp",[10,904,905],{},"Follow the right-hand rule.",[10,907,908],{},"② Find the common perpendicular",[10,910,911],{},"Because Z1 of frame1 and Z2 of frame2 intersect, there is no common perpendicular.",[10,913,914],{},"The Z2 of frame2 and the Z3 of frame3 coincide, so there is no common perpendicular either.",[10,916,917],{},"So that means all a's are 0.",[10,919,920],{},[67,921],{"alt":69,"src":922},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1906.webp",[10,924,925],{},"③ Establish the Zi vector",[10,927,928],{},[67,929],{"alt":69,"src":930},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1907.webp",[10,932,933],{},"The Zi direction is the same as the axis direction.",[10,935,936],{},"④ Xi's vector",[10,938,939],{},[67,940],{"alt":69,"src":941},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1908.webp",[10,943,944],{},"When Z1 and Z2 intersect, we choose the direction of X to be perpendicular to both Z1 and Z2. There are two options: X can point forward or backward. In the figure, it points backward.",[10,946,947],{},"X1 and X2 must be parallel because it is a P-type joint.",[10,949,950],{},"⑤ Y-axis",[10,952,953],{},[67,954],{"alt":69,"src":955},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1909.webp",[10,957,958],{},"⑥Frame 0 and frame n",[10,960,961],{},[67,962],{"alt":69,"src":963},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1910.webp",[10,965,966],{},"frame 0 and frame 1 coincide",[10,968,969],{},[67,970],{"alt":69,"src":971},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1911.webp",[10,973,974],{},"Make the X3 direction the same as the X2 direction.",[10,976,977],{},[67,978],{"alt":69,"src":979},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1912.webp",[10,981,982],{},"As shown in the figure, the joint parameters of the drive are theta1, d2, and theta3 respectively.",[10,984,985],{},[67,986],{"alt":69,"src":987},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1913.webp",[10,989,990],{},"Since frame0 and frame1 coincide, alpha0 = 0.",[10,992,993],{},"The angle from Z1 to Z2: extend your right thumb pointing toward X1, then align your fingers with the direction from Z1 to Z2. This indicates a counterclockwise rotation, which is positive, so the angle is 90 degrees.",[10,995,996],{},"Then from frame2 to frame3, Z is collinear, so alpha2 = 0.",[10,998,999],{},"Then, because some Zi intersect and some are collinear, all a are 0.",[10,1001,1002],{},"Then d1 is 0, because frame0 and frame1 coincide.",[10,1004,1005],{},"d2 is d2, and d3 is L2 (where d is the distance of X on the Axis).",[10,1007,1008],{},[67,1009],{"alt":69,"src":1010},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1914.webp",[10,1012,1013],{},"The coordinates of point P on Frame3 are (0, 0, L3).",[10,1015,1016],{},[67,1017],{"alt":69,"src":1018},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1915.webp",[10,1020,1021],{},"Actually, there are two choices for the Z direction and two for the X direction, making four options in total. Just pick the one that is easiest to understand and calculate.",[792,1023,1025],{"id":1024},"china-tsmc-wafer-robot-prrr-type-4-degrees-of-freedom","China TSMC wafer robot (PRRR type, 4 degrees of freedom)",[10,1027,1028],{},[67,1029],{"alt":69,"src":1030},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1916.webp",[10,1032,1033,1036],{},[67,1034],{"alt":69,"src":1035},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1917.webp",[67,1037],{"alt":69,"src":1038},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1918.webp",[792,1040,1042],{"id":1041},"scara-robot-rrrp-type-4-degrees-of-freedom","SCARA robot (RRRP type, 4 degrees of freedom)",[10,1044,1045],{},[67,1046],{"alt":69,"src":1047},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1919.webp",[10,1049,1050],{},"The robot's last joint can be either R or P, so it is an RP joint, and you can calculate R first or P first.",[10,1052,1053,1056],{},[67,1054],{"alt":69,"src":1055},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1920.webp",[67,1057],{"alt":69,"src":1058},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1921.webp",[792,1060,1062],{"id":1061},"rp-type","RP type",[10,1064,1065],{},[67,1066],{"alt":69,"src":1067},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1922.webp",[10,1069,1070],{},[67,1071],{"alt":69,"src":1072},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1923.webp",[10,1074,1075],{},"Choose D, because with two degrees of freedom, there are two driving parameters.",[10,1077,1078],{},[67,1079],{"alt":69,"src":1080},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1924.webp",[36,1082,1084],{"id":1083},"actuator-joint-and-cartesian-spaces","Actuator Joint and Cartesian Spaces",[10,1086,1087],{},[67,1088],{"alt":69,"src":1089},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1925.webp",[10,1091,1092],{},"Our drivers here are theta1-3.",[10,1094,1095],{},"Once we know the values of theta1-3, we will know the expression of point P in the world coordinate system.",[10,1097,1098],{},"This is called Forward Kinematics.",[10,1100,1101],{},"Inverse kinematics refers to the process of calculating joint angles from the world coordinates of point P.",[10,1103,1104],{},[67,1105],{"alt":69,"src":1106},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1926.webp",[10,1108,1109],{},"Actuator Space refers to the drive space, such as how a motor is controlled to rotate to a fixed angle in joint space (through a series of transformations).",[10,1111,1112],{},[67,1113],{"alt":69,"src":1114},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1927.webp",[10,1116,1117],{},[67,1118],{"alt":69,"src":1119},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1928.webp",[10,1121,1122,1125],{},[67,1123],{"alt":69,"src":1124},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1929.webp",[67,1126],{"alt":69,"src":1127},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1930.webp",[10,1129,1130,1133],{},[67,1131],{"alt":69,"src":1132},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1931.webp",[67,1134],{"alt":69,"src":1135},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1932.webp",[10,1137,1138,1141],{},[67,1139],{"alt":69,"src":1140},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1933.webp",[67,1142],{"alt":69,"src":1143},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1934.webp",[10,1145,1146],{},"There are parts that both rotate and move (so two motors are needed to achieve these two degrees of freedom).",[10,1148,1149,1152],{},[67,1150],{"alt":69,"src":1151},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1935.webp",[67,1153],{"alt":69,"src":1154},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1936.webp",[10,1156,1157],{},"The synchronous belt mechanism rotates it. (First motor)",[10,1159,1160],{},"The rack and pinion mechanism achieves vertical movement. (Second motor)",[10,1162,1163],{},"However, these two are not independent, because they are coaxially driven, so there is some load.",[10,1165,1166],{},[67,1167],{"alt":69,"src":1168},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1937.webp",[10,1170,1171],{},"Two rotations become one rotation and one translation.",[36,1173,1175],{"id":1174},"forward-kinematics","Forward kinematics",[10,1177,1178,1181],{},[49,1179,1180],{},"Definition",": Given the motion parameters (such as angle, displacement, velocity, etc.) of each joint (or drive unit like wheels) of a robot, calculate the position and orientation of the end effector.",[10,1183,1184],{},[67,1185],{"alt":69,"src":1186},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1938.webp",[10,1188,1189],{},[67,1190],{"alt":69,"src":1191},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1939.webp",[10,1193,1194],{},"ads=dv/dt * ds = ds/dt *dv = vdv",[10,1196,1197],{},[67,1198],{"alt":69,"src":1199},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1940.webp",[10,1201,1202],{},"Newton's second law, conservation of energy, impulse and momentum.",[10,1204,1205],{},[67,1206],{"alt":69,"src":1207},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1941.webp",[10,1209,1210],{},"Wp is the coordinate of point P in the world coordinate system.",[10,1212,1213],{},[67,1214],{"alt":69,"src":1215},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1942.webp",[10,1217,1218],{},[67,1219],{"alt":69,"src":1220},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1943.webp",[10,1222,1223],{},[67,1224],{"alt":69,"src":1225},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1944.webp",[10,1227,1228],{},"According to this formula, the coordinates of the end effector in the world coordinate system can be obtained.",[36,1230,1232],{"id":1231},"inverse-kinematics","Inverse kinematics",[10,1234,1235,1237],{},[49,1236,1180],{},": Given the target position and orientation of the end effector, calculate the angle or speed at which each joint (or drive unit such as a wheel) must move to achieve that target.",[10,1239,1240,1243],{},[67,1241],{"alt":69,"src":1242},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1945.webp",[67,1244],{"alt":69,"src":1245},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1946.webp",[10,1247,1248],{},"First, know the expression of a certain point P on the end effector in the world coordinate system, that is, provide Pw or the frame H on a certain point of the end effector.",[10,1250,1251],{},"Calculate theta from Pw.",[10,1253,1254],{},[67,1255],{"alt":69,"src":1256},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1947.webp",[10,1258,1259],{},"This gives the arm 6 unknowns.",[10,1261,1262],{},[67,1263],{"alt":69,"src":1264},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1948.webp",[10,1266,1267],{},"16 numbers, the rotating part occupies 9 numbers, which is the 3x3 rotation matrix in the upper left corner. Then the 3x1 vector in the upper right corner represents the displacement relative to the origin. (That is, what is the displacement of the origin of frame6 relative to the origin of frame0?)",[10,1269,1270],{},"The following 0001 is an integer, fixed and unchanging.",[10,1272,1273],{},[67,1274],{"alt":69,"src":1275},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1949.webp",[10,1277,1278],{},"In this rotation matrix, there are 3 length constraints and 3 perpendicularity constraints, so out of the 9 numbers, only 3 degrees of freedom remain. (That is, 3 constraints from unit vector lengths, and 3 from pairwise perpendicularity, so it's a translation matrix with 3 degrees of freedom.)",[10,1280,1281],{},"Then, in the 3x1 vector at the top right, the coordinates X, Y, Z relative to the origin represent 3 degrees of freedom.",[10,1283,1284],{},"So there are 6 degrees of freedom in total.",[10,1286,1287],{},"These 12 equations allow us to write an expression for each parameter above, except for the lowly 0001. What we need to do is solve for 6 unknowns from these 12 equations.",[10,1289,1290],{},[67,1291],{"alt":69,"src":1292},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1950.webp",[10,1294,1295],{},"A dexterous workspace is a subset of the reachable workspace.",[10,1297,1298],{},[67,1299],{"alt":69,"src":1300},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1951.webp",[10,1302,1303],{},"Its reachable workspace is a ring.",[10,1305,1306],{},"For a given point, in this example, only 1 or 2 poses can be achieved. This robot only has RWS, not DWS.",[10,1308,1309],{},[67,1310],{"alt":69,"src":1311},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1952.webp",[10,1313,1314],{},"If the arms are the same length, the workspace becomes a circle.",[10,1316,1317],{},"One key point is DWS, which is the origin point. When the arm is folded inward, it can reach this point from any angle of 360 degrees, so that point is DWS.",{"title":69,"searchDepth":120,"depth":120,"links":1319},[1320],{"id":21,"depth":233,"text":22},"/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","16",16000000,"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/ch16-Moveit2工业机器人机械臂",false,true,null,"en-US","en-us",{},{"title":5,"description":15},"/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工业机器人机械臂",1,"O_DZ1Vf8uPzOsyovbDu6HCSy1-sdMcNudvROrJiLfR4",[1343,1349,1355,1361,1367,1373,1379,1385,1391,1397,1403,1409,1415,1421,1427,1433,1439,1445,1450,1456,1461,1467,1473,1479,1485,1491,1497,1503,1509,1515,1521,1527,1533,1539,1545,1551,1557,1563,1569,1575,1581,1587,1593,1599,1605,1611,1617,1618,1624,1630,1636,1642,1648,1654,1660,1666,1672,1678,1684,1690],{"path":1344,"stem":1345,"title":1346,"date":1324,"chapter":1347,"chapterSort":1348,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1350,"stem":1351,"title":1352,"date":1324,"chapter":1353,"chapterSort":1354,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1356,"stem":1357,"title":1358,"date":1324,"chapter":1359,"chapterSort":1360,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1362,"stem":1363,"title":1364,"date":1324,"chapter":1365,"chapterSort":1366,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1368,"stem":1369,"title":1370,"date":1324,"chapter":1371,"chapterSort":1372,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1374,"stem":1375,"title":1376,"date":1324,"chapter":1377,"chapterSort":1378,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1380,"stem":1381,"title":1382,"date":1324,"chapter":1383,"chapterSort":1384,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1386,"stem":1387,"title":1388,"date":1324,"chapter":1389,"chapterSort":1390,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1392,"stem":1393,"title":1394,"date":1324,"chapter":1395,"chapterSort":1396,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1398,"stem":1399,"title":1400,"date":1324,"chapter":1401,"chapterSort":1402,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1404,"stem":1405,"title":1406,"date":1324,"chapter":1407,"chapterSort":1408,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1410,"stem":1411,"title":1412,"date":1324,"chapter":1413,"chapterSort":1414,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1416,"stem":1417,"title":1418,"date":1324,"chapter":1419,"chapterSort":1420,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1422,"stem":1423,"title":1424,"date":1324,"chapter":1425,"chapterSort":1426,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1428,"stem":1429,"title":1430,"date":1324,"chapter":1431,"chapterSort":1432,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1434,"stem":1435,"title":1436,"date":1324,"chapter":1437,"chapterSort":1438,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1440,"stem":1441,"title":1442,"date":1324,"chapter":1443,"chapterSort":1444,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1446,"stem":1447,"title":1412,"date":1324,"chapter":1448,"chapterSort":1449,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1451,"stem":1452,"title":1453,"date":1324,"chapter":1454,"chapterSort":1455,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1457,"stem":1458,"title":1412,"date":1324,"chapter":1459,"chapterSort":1460,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1462,"stem":1463,"title":1464,"date":1324,"chapter":1465,"chapterSort":1466,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1468,"stem":1469,"title":1470,"date":1324,"chapter":1471,"chapterSort":1472,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1474,"stem":1475,"title":1476,"date":1324,"chapter":1477,"chapterSort":1478,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1480,"stem":1481,"title":1482,"date":1324,"chapter":1483,"chapterSort":1484,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1486,"stem":1487,"title":1488,"date":1324,"chapter":1489,"chapterSort":1490,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1492,"stem":1493,"title":1494,"date":1324,"chapter":1495,"chapterSort":1496,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1498,"stem":1499,"title":1500,"date":1324,"chapter":1501,"chapterSort":1502,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1504,"stem":1505,"title":1506,"date":1324,"chapter":1507,"chapterSort":1508,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1510,"stem":1511,"title":1512,"date":1324,"chapter":1513,"chapterSort":1514,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1516,"stem":1517,"title":1518,"date":1324,"chapter":1519,"chapterSort":1520,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1522,"stem":1523,"title":1524,"date":1324,"chapter":1525,"chapterSort":1526,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1528,"stem":1529,"title":1530,"date":1324,"chapter":1531,"chapterSort":1532,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1534,"stem":1535,"title":1536,"date":1324,"chapter":1537,"chapterSort":1538,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1540,"stem":1541,"title":1542,"date":1324,"chapter":1543,"chapterSort":1544,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1546,"stem":1547,"title":1548,"date":1324,"chapter":1549,"chapterSort":1550,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1552,"stem":1553,"title":1554,"date":1324,"chapter":1555,"chapterSort":1556,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1558,"stem":1559,"title":1560,"date":1324,"chapter":1561,"chapterSort":1562,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1564,"stem":1565,"title":1566,"date":1324,"chapter":1567,"chapterSort":1568,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1570,"stem":1571,"title":1572,"date":1324,"chapter":1573,"chapterSort":1574,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/en-us/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-轮式里程计标定","Wheel odometry calibration","14.8.1.1",14080101,{"path":1576,"stem":1577,"title":1578,"date":1324,"chapter":1579,"chapterSort":1580,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1582,"stem":1583,"title":1584,"date":1324,"chapter":1585,"chapterSort":1586,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1588,"stem":1589,"title":1590,"date":1324,"chapter":1591,"chapterSort":1592,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1594,"stem":1595,"title":1596,"date":1324,"chapter":1597,"chapterSort":1598,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1600,"stem":1601,"title":1602,"date":1324,"chapter":1603,"chapterSort":1604,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1606,"stem":1607,"title":1608,"date":1324,"chapter":1609,"chapterSort":1610,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1612,"stem":1613,"title":1614,"date":1324,"chapter":1615,"chapterSort":1616,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1321,"stem":1339,"title":5,"date":1324,"chapter":1322,"chapterSort":1323,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},{"path":1619,"stem":1620,"title":1621,"date":1324,"chapter":1622,"chapterSort":1623,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1625,"stem":1626,"title":1627,"date":1324,"chapter":1628,"chapterSort":1629,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1631,"stem":1632,"title":1633,"date":1324,"chapter":1634,"chapterSort":1635,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1637,"stem":1638,"title":1639,"date":1324,"chapter":1640,"chapterSort":1641,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1643,"stem":1644,"title":1645,"date":1324,"chapter":1646,"chapterSort":1647,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1649,"stem":1650,"title":1651,"date":1324,"chapter":1652,"chapterSort":1653,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1655,"stem":1656,"title":1657,"date":1324,"chapter":1658,"chapterSort":1659,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1661,"stem":1662,"title":1663,"date":1324,"chapter":1664,"chapterSort":1665,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1667,"stem":1668,"title":1669,"date":1324,"chapter":1670,"chapterSort":1671,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1673,"stem":1674,"title":1675,"date":1324,"chapter":1676,"chapterSort":1677,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1679,"stem":1680,"title":1681,"date":1324,"chapter":1682,"chapterSort":1683,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1685,"stem":1686,"title":1687,"date":1324,"chapter":1688,"chapterSort":1689,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1331},"/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":1327,"stem":1691,"title":1692,"date":1324,"chapter":1333,"chapterSort":1693,"docKey":1326,"docRoot":1327,"docTitle":1328,"isWikiDoc":1332,"isWikiIndex":1332},"_i18n/en-us/wiki/2023-12-30-ros2-tutorial/index","ROS2 Robot Operating System Tutorial",0,{"variants":1695},[1696,1697,1700,1703,1706],{"path":1321,"localeSlug":1335,"i18nKey":1330},{"path":1698,"localeSlug":1699,"i18nKey":1330},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","zh-hant",{"path":1701,"localeSlug":1702,"i18nKey":1330},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","zh-hk",{"path":1704,"localeSlug":1705,"i18nKey":1330},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","zh-tw",{"path":1707,"localeSlug":1708,"i18nKey":1330},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","zh-cn",[1321,1338,1698,1338,1701,1338,1704,1338,1707,1338],1780671807201]