[{"data":1,"prerenderedAt":1471},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi":3,"wiki-doc-items-2023-12-30-ros2-tutorial":1326},{"id":4,"title":5,"body":6,"chapter":1311,"chapterSort":1312,"date":1313,"description":15,"docKey":1314,"docRoot":1315,"docTitle":1316,"extension":1317,"isWikiDoc":1318,"isWikiIndex":1319,"meta":1320,"navigation":1318,"path":1321,"seo":1322,"stem":1323,"wikiDepth":1324,"__hash__":1325},"wiki\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch16-Moveit2工业机器人机械臂.md","Moveit2工业机器人机械臂",{"type":7,"value":8,"toc":1308},"minimark",[9,18,22,28,34,38,43,59,62,69,72,77,80,84,87,90,99,104,107,112,115,123,128,131,139,142,145,148,153,158,163,166,169,174,177,180,183,188,193,198,201,206,209,212,215,220,225,228,236,239,244,250,255,258,261,264,267,270,273,276,283,286,291,298,305,310,313,318,326,329,334,337,342,347,350,353,356,363,368,373,376,379,384,391,394,399,402,410,415,418,423,426,429,432,435,440,443,446,451,454,457,460,465,468,473,476,479,484,487,492,495,500,503,506,509,514,517,520,525,528,533,536,539,542,545,550,553,556,559,562,565,573,576,581,586,589,592,595,600,603,606,611,614,617,622,627,630,641,644,647,650,653,656,660,663,668,671,674,677,682,685,688,691,694,697,702,705,708,713,716,719,722,727,730,735,738,741,746,749,754,757,760,763,768,771,774,779,783,788,793,796,799,802,805,810,813,818,821,826,829,834,837,842,845,850,853,858,863,866,869,872,875,878,882,887,890,895,898,901,904,907,910,915,918,923,926,929,934,937,940,943,948,951,956,959,964,967,972,975,980,983,986,989,992,995,998,1003,1006,1011,1014,1018,1023,1031,1035,1040,1043,1051,1055,1060,1065,1068,1073,1077,1082,1085,1088,1091,1094,1099,1102,1107,1112,1120,1128,1136,1139,1147,1150,1153,1156,1161,1164,1167,1173,1178,1183,1186,1191,1194,1199,1202,1207,1212,1217,1220,1223,1228,1236,1239,1242,1247,1250,1255,1258,1261,1266,1269,1272,1275,1278,1283,1286,1291,1294,1297,1302,1305],[10,11,12],"p",{},[13,14,15],"a",{"href":15,"rel":16},"https:\u002F\u002Fmoveit.ros.org\u002F",[17],"nofollow",[19,20,21],"h3",{"id":21},"机器人学",[10,23,24],{},[13,25,26],{"href":26,"rel":27},"https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1v4411H7ez",[17],[10,29,30],{},[13,31,32],{"href":32,"rel":33},"https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002Fav59243185",[17],[35,36,37],"h4",{"id":37},"理论基础",[39,40,42],"h5",{"id":41},"dof自由度","DOF(自由度)",[10,44,45,46,50,51,54,55,58],{},"简单来说，自由度(以下统称为dof)指的是 ",[47,48,49],"strong",{},"物体在空间里面的基本运动方式"," ，总共有6种。任何运动都可以拆分成这6种基本运动方式，而这6种基本运动方式又可以分为两类： ",[47,52,53],{},"位移"," 和 ",[47,56,57],{},"旋转"," 。",[10,60,61],{},"位移：X轴、Y轴、Z轴的平动",[10,63,64],{},[65,66],"img",{"alt":67,"src":68},"","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1834.webp",[10,70,71],{},"旋转：Roll横滚角(绕X转动)、Pitch俯仰角(绕Y转动)、Yaw航向角(绕Z转动)",[10,73,74],{},[65,75],{"alt":67,"src":76},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1835.webp",[35,78,79],{"id":79},"数理基础",[39,81,83],{"id":82},"位姿位置与姿态的表示","位姿（位置与姿态）的表示",[10,85,86],{},"倘若在一个空间里有一个刚体（frame），我们如何确定刚体在这个空间里的位姿呢？",[10,88,89],{},"首先要建立一个世界坐标系（world frame），然后要在刚体上建立刚体坐标系（body frame）.",[91,92,93],"ol",{},[94,95,96],"li",{},[47,97,98],{},"位置的描述",[10,100,101],{},[65,102],{"alt":67,"src":103},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1836.webp",[10,105,106],{},"描述刚体的质心(一个点)在世界中的位置，就可以用一个3X1向量来表示.",[10,108,109],{},[65,110],{"alt":67,"src":111},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1837.webp",[10,113,114],{},"这样就知道了平动的三个DOF。",[91,116,118],{"start":117},2,[94,119,120],{},[47,121,122],{},"方位的描述",[10,124,125],{},[65,126],{"alt":67,"src":127},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1838.webp",[10,129,130],{},"设世界坐标系为A，刚体坐标系为B。",[10,132,133,136],{},[65,134],{"alt":67,"src":135},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1839.webp",[65,137],{"alt":67,"src":138},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1840.webp",[10,140,141],{},"上面这个矩阵就叫旋转矩阵（Rotation Matrix），是一个3*3的正交矩阵，ABR描述的是A为参考坐标系，B相对于A的方向。",[10,143,144],{},"每一个列向量，都代表B的对应坐标轴各自指向的方向。",[10,146,147],{},"每一列向量都是B的对应的坐标轴相对于A的方向余弦（Direct Cosines）。",[10,149,150],{},[65,151],{"alt":67,"src":152},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1841.webp",[10,154,155],{},[65,156],{"alt":67,"src":157},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1842.webp",[10,159,160],{},[65,161],{"alt":67,"src":162},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1843.webp",[10,164,165],{},"旋转矩阵的每个元素 r ij代表 B 的第 j 轴与 A 的第 i 轴的方向余弦.",[10,167,168],{},"实在看不懂，先来看下面来看例子：",[10,170,171],{},[65,172],{"alt":67,"src":173},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1844.webp",[10,175,176],{},"B的X轴在A中怎么表示？可以看出来，B的X正好是A的Z轴的负半轴，那就是0，0，-1.",[10,178,179],{},"B的Y轴在A中怎么表示？可以看出来，B的Y正好是A的Y轴的正半轴，那就是0，1，0.",[10,181,182],{},"B的Z轴在A中怎么表示？可以看出来，B的Z正好是A的X轴的正半轴，那就是1，0，0.",[10,184,185],{},[65,186],{"alt":67,"src":187},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1845.webp",[10,189,190],{},[65,191],{"alt":67,"src":192},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1846.webp",[10,194,195],{},[65,196],{"alt":67,"src":197},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1847.webp",[10,199,200],{},"这个例子里，AB的Z重合了，所以我们只看上视图就可以了。",[10,202,203],{},[65,204],{"alt":67,"src":205},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1848.webp",[10,207,208],{},"就是把XB这个单位向量，投影到A的X和Y上看分量即可。",[10,210,211],{},"同理YB也一样。",[10,213,214],{},"ZB和ZA重合，比较简单。",[10,216,217],{},[65,218],{"alt":67,"src":219},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1849.webp",[10,221,222],{},[65,223],{"alt":67,"src":224},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1850.webp",[10,226,227],{},"答案是B。",[91,229,231],{"start":230},3,[94,232,233],{},[47,234,235],{},"位姿的描述",[10,237,238],{},"通过BF在WF的状态，就可以知道刚体在世界中的位姿。",[10,240,241],{},[65,242],{"alt":67,"src":243},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1851.webp",[91,245,247],{"start":246},4,[94,248,249],{},"运动的描述",[10,251,252],{},[65,253],{"alt":67,"src":254},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1852.webp",[10,256,257],{},"红色是刚体运动的轨迹线，",[10,259,260],{},"轨迹（平动DOF）对时间的微分(导数)，就是刚体线速度。",[10,262,263],{},"刚体速度再对时间的微分(导数)，就是刚体线加速度。",[10,265,266],{},"同理,转动DOF对时间的微分(导数)，就是刚体的角速度。",[10,268,269],{},"角速度再对时间的微分(导数)，就是刚体角加速度。",[39,271,272],{"id":272},"旋转矩阵",[10,274,275],{},"特性：",[10,277,278,279,282],{},"由于旋转矩阵R里每个元素都是两个向量内积，内积是可以交换位置且最后结果",[47,280,281],{},"数值不变","的。",[10,284,285],{},"所以我们选择交换位置。",[10,287,288],{},[65,289],{"alt":67,"src":290},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1853.webp",[10,292,293,294,297],{},"原始的R是每一 ",[47,295,296],{},"列"," 都是B的某一轴在A系的分量。",[10,299,300,301,304],{},"交换位置后的R是每一 ",[47,302,303],{},"行"," 都是A的某一轴在B系的分量。",[10,306,307],{},[65,308],{"alt":67,"src":309},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1854.webp",[10,311,312],{},"结论：所以说Rab = Rba的T。",[10,314,315],{},[65,316],{"alt":67,"src":317},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1855.webp",[10,319,320,323],{},[65,321],{"alt":67,"src":322},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1856.webp",[65,324],{"alt":67,"src":325},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1857.webp",[10,327,328],{},"他俩明显是转置关系。",[10,330,331],{},[65,332],{"alt":67,"src":333},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1858.webp",[10,335,336],{},"RT*R=I3（3*3单位阵）(正交阵orthogonal matrix的性质)",[10,338,339],{},[65,340],{"alt":67,"src":341},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1859.webp",[10,343,344],{},[65,345],{"alt":67,"src":346},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1860.webp",[10,348,349],{},"还有个性质就是|R|=1",[10,351,352],{},"虽然有9个数字，但是啊，因为正交阵的性质，所以是有约束条件的，这9个数字里有6个数字是随着其他数字变化而变化的，所以这9个数字实际上只有3个参数可以任意选择，也就是旋转矩阵实际上只有3个自由度。(转动DOF)",[10,354,355],{},"旋转矩阵的一个功能如下：",[10,357,358,359,362],{},"比如说另一个坐标系B相对于A坐标系绕X,Y,Z轴各自",[47,360,361],{},"逆时针","转动theta度的旋转矩阵。",[10,364,365],{},[65,366],{"alt":67,"src":367},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1861.webp",[10,369,370],{},[65,371],{"alt":67,"src":372},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1862.webp",[10,374,375],{},"在中国大陆教材中，常用R(X,theta)来代替图中的RXA(theta)。图中这个A指的是原坐标系，得出来的AP`也是原坐标下的坐标。",[10,377,378],{},"这样的话，AP左乘一个R就得出来了P转动后在A系的坐标。（一定要与下面讲的旋转坐标变换分清楚，很容易混淆）",[10,380,381],{},[65,382],{"alt":67,"src":383},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1863.webp",[10,385,386,387,390],{},"P逆时针转动30度后，在",[47,388,389],{},"原坐标系","中的坐标为002.",[10,392,393],{},"总结：旋转矩阵主要是三种用法，如下图：",[10,395,396],{},[65,397],{"alt":67,"src":398},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1864.webp",[39,400,401],{"id":401},"坐标变换",[91,403,404,407],{},[94,405,406],{},"平移坐标变换",[94,408,409],{},"旋转坐标变换",[10,411,412],{},[65,413],{"alt":67,"src":414},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1865.webp",[10,416,417],{},"这里的APX是个数值，XA等是矢量，加法是矢量加法，最后得出来的是AP向量。",[10,419,420],{},[65,421],{"alt":67,"src":422},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1866.webp",[10,424,425],{},"重要结论就是AP = ABR*BP.(注意是矩阵的左乘)",[10,427,428],{},"AP就是P在A系的坐标。",[10,430,431],{},"BP就是P在B系的坐标。",[10,433,434],{},"ABR就是A为参考坐标系，B相对于A的旋转矩阵。",[10,436,437],{},[65,438],{"alt":67,"src":439},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1867.webp",[39,441,442],{"id":442},"物体的变换及逆变换",[10,444,445],{},"物体平动的顺序可以互相颠倒,但是物体转动的顺序不能互相颠倒,否则姿态会不一样.",[10,447,448],{},[65,449],{"alt":67,"src":450},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1868.webp",[10,452,453],{},"主要是两种拆解方式,一个是设一个固定的坐标系,一直按这个坐标系转动,",[10,455,456],{},"另一个方式是假设物体的坐标系.",[35,458,459],{"id":459},"机械臂描述方式",[10,461,462],{},[65,463],{"alt":67,"src":464},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1869.webp",[10,466,467],{},"Link 0一般也叫base_Link",[10,469,470],{},[65,471],{"alt":67,"src":472},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1870.webp",[10,474,475],{},"先看好相对关系，Axis i-1的后面才是Link i - 1(当然其他描述也成立)",[35,477,478],{"id":478},"描述各关节之间的关系",[10,480,481],{},[65,482],{"alt":67,"src":483},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1871.webp",[10,485,486],{},"也就是公垂线(唯一解)，其长度为Link Length连杆长度",[10,488,489],{},[65,490],{"alt":67,"src":491},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1872.webp",[10,493,494],{},"现在只是限制住了两个轴的距离，两个轴还是可以转动的，所以需要下一个参数，Link Twist连杆扭角。",[10,496,497],{},[65,498],{"alt":67,"src":499},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1873.webp",[10,501,502],{},"这个角就是沿中垂线，把后一个轴线沿中垂线往当前轴移动，然后形成的夹角叫Link Twist连杆扭角。",[10,504,505],{},"也就是说，针对空间中任意两个转轴，我们需要两个参数来进行描述，也就是Link Length和Link Twist。",[10,507,508],{},"如果是多个串起来的转轴，我们就无法找到对应关系了，比如说",[10,510,511],{},[65,512],{"alt":67,"src":513},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1874.webp",[10,515,516],{},"上面这个图，我没法表示ai-1与ai在轴线Axis i上的相对关系以及相对姿态是什么样子的。",[10,518,519],{},"所以还需要其他参数。",[10,521,522],{},[65,523],{"alt":67,"src":524},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1875.webp",[10,526,527],{},"首先肯定需要一个长度，两个公垂线在Axis i上的距离，叫做Link Offset，连杆偏距。",[10,529,530],{},[65,531],{"alt":67,"src":532},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1876.webp",[10,534,535],{},"然后还需要一个角，Joint Angle连杆夹角，也叫关节角。",[10,537,538],{},"其实发现，这四个参数，只有一个参数是变化的，其他都是固定的。",[10,540,541],{},"如果ioint type是revolute joint，那么thetai变化，其他不变。",[10,543,544],{},"如果joint type是prismatic joint，那么di变化，其他不变。",[10,546,547],{},[65,548],{"alt":67,"src":549},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1877.webp",[10,551,552],{},"描述两个轴需要2个参数，连杆长度与连杆扭角。",[10,554,555],{},"描述多个轴串在一起需要4个参数(每两两杆件都需要4个参数)，连杆长度Link Length，连杆扭角Link Twist，连杆偏距Link Offset，连杆夹角Joint Angle。",[35,557,558],{"id":558},"在joint上建立frame",[10,560,561],{},"咱们一般把Z方向定义成和转轴的方向一样，Z朝上或朝下是看怎么朝向，这两个轴的夹角最小，这样就能够确定Z的方向了。",[10,563,564],{},"Xi的方向是沿着ai的方向。",[10,566,567,570],{},[65,568],{"alt":67,"src":569},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1878.webp",[65,571],{"alt":67,"src":572},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1879.webp",[10,574,575],{},"Xi与Zi+1和Zi都垂直。",[10,577,578],{},[65,579],{"alt":67,"src":580},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1880.webp",[10,582,583],{},[65,584],{"alt":67,"src":585},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1881.webp",[10,587,588],{},"右手定则，判断Y方向。",[10,590,591],{},"原点是Z和X的交点。",[10,593,594],{},"若是建立base_link(link0)与link1的话，则是特殊情况。（base_link是immobile不动的）",[10,596,597],{},[65,598],{"alt":67,"src":599},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1882.webp",[10,601,602],{},"frame0和frame1重叠(重合)。通常，比如说是个旋转关节，虽然规定theta是arbitrary任意的，但是我把theta固定成0，然后让frame0和frame1(theta",[10,604,605],{},"= 0)重合。如果是平动关节，那么同理也取d=0的时候的frame1。注意，这里是重叠重合，并不是形状相同，而是完全重叠的坐标系。",[10,607,608],{},[65,609],{"alt":67,"src":610},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1883.webp",[10,612,613],{},"最后一个杆件，也差不多，因为Xn和Xn-1都要垂直于Axis n(Zn)，所以最简单的方法就是让Xn与Xn-1方向一致。",[10,615,616],{},"Xn取Xn-1的方向。也就是framen和framen-1是延长的。",[10,618,619],{},[47,620,621],{},"下面是重点中的重点：(有好几种方法判断，如有错误请讨论后修改)",[10,623,624],{},[65,625],{"alt":67,"src":626},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1884.webp",[10,628,629],{},"需要知道的常识：",[91,631,632,635,638],{},[94,633,634],{},"一般连杆扭角按逆时针是正值。",[94,636,637],{},"我们常说的转向，是从逆着的方向去看，也就是让箭头指向眼睛的方向去看的。",[94,639,640],{},"从轴的逆方向去看和顺着方向去看转向，是完全相反的方向，但是在平面上容易产生视觉错觉，难以理解。可以拿支笔或者电机，转动一下试试。",[10,642,643],{},"①alphai-1是正值还是负值，要看Zi-1到Zi的角是顺时针还是逆时针，伸出右手，让拇指沿Xi-1的方向，如果alphai-1顺着四指方向则为逆时针，正值，反之为顺时针，负值。",[10,645,646],{},"所以如图，alphai-1是逆时针，所以是正值。",[10,648,649],{},"②ai-1的长度因为是长度，所以永远是正值，然后值为Z轴间的相对距离。",[10,651,652],{},"③thetai的角度也基本同理，将右手大拇指沿着Zi的方向，若thetai顺着四指方向则为逆时针，逆着则为顺时针。",[10,654,655],{},"④di的大小方向要看从ai-1沿着zi的方向到ai，则是正值，反之为负值，大小即为距离。",[35,657,659],{"id":658},"link-transformations","Link Transformations",[39,661,662],{"id":662},"理论",[10,664,665],{},[65,666],{"alt":67,"src":667},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1885.webp",[10,669,670],{},"我们两个关节都有俩轴，一个Axisi-1一个是Axisi，我们也有俩frame，一个是framei-1一个是framei。",[10,672,673],{},"我们需要找到两个frame之间的关系式是什么，也就是找到变换矩阵Transformation Matrix。",[10,675,676],{},"然后将Trans Matrix量化即可。",[10,678,679],{},[65,680],{"alt":67,"src":681},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1886.webp",[10,683,684],{},"假设说有一个点P，他在frame i下的表达是Pi，如果我们找到了Ti-1 i的矩阵，那么就有办法，获得P在frame i-1下的表达了。",[10,686,687],{},"所以我们现在需要，用刚才找到的四个参数，转化成我们的Trans Matrix。",[10,689,690],{},"这四个参数，也就是ai-1，alphai-1，di和thetai，足以可以表达framei-1到framei了。",[10,692,693],{},"①首先在Axis i-1上，",[10,695,696],{},"先描述alpha，就把framei-1的Zi-1旋转到差不多Zi的方向，生成FrameR（只旋转Z，X不动，然后右手定则判断Y）",[10,698,699],{},[65,700],{"alt":67,"src":701},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1887.webp",[10,703,704],{},"②然后描述a，",[10,706,707],{},"就把FrameR沿着ai-1的方向移动到Zi上，",[10,709,710],{},[65,711],{"alt":67,"src":712},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1888.webp",[10,714,715],{},"③再描述theta",[10,717,718],{},"我们转动frameR中的ZR，使其与ai方向相同，生成frameP（X动，Z不动，右手定则判断Y）",[10,720,721],{},"这样搞完之后，Xp的方向与Xi是相同的，Zp的方向也与Zi相同。",[10,723,724],{},[65,725],{"alt":67,"src":726},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1889.webp",[10,728,729],{},"④再描述d，也就是把FrameP往上拉，最后会与Framei重合。",[10,731,732],{},[65,733],{"alt":67,"src":734},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1890.webp",[10,736,737],{},"也就是从Framei - 1到Frame R，然后再到Frame Q，然后再到Frame P，最后到Frame i。一共四次转化。",[10,739,740],{},"刚才我们演示的是从Pi-1到Pi，现在我们要求的是从我们的Pi要到Pi-1，那么就是倒着左乘，先乘Tp i接着往下以此类推。",[10,742,743],{},[65,744],{"alt":67,"src":745},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1891.webp",[10,747,748],{},"从连杆i到连杆i-1的坐标系间的齐次变换矩阵T i-1 i=Rot(X，aplhai-1)Trans(ai-1,0,0)Rot(Z,thetai)Trans(0,0,di)",[10,750,751],{},[65,752],{"alt":67,"src":753},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1892.webp",[10,755,756],{},"左上角是3X3的旋转矩阵，所以只有角度theta和alpha参数，",[10,758,759],{},"右上角3X1的矩阵，也就是frame i的原点相对于frame i - 1的原点的向量。然后是从frame i - 1去看。所以他是长度与角度的复合。",[10,761,762],{},"最后一行的1X4的矩阵，是0001是固定数不动的。",[10,764,765],{},[65,766],{"alt":67,"src":767},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1893.webp",[10,769,770],{},"对于连续的杆件，我们可以从base_link一直算到linkx，x想是几就是几。",[10,772,773],{},"比如说，现在有三个杆件，我们找到T23（3对2的），T12（1对2的）T01（地对1的），就可以找到T03（地对3的）",[10,775,776],{},[65,777],{"alt":67,"src":778},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1894.webp",[39,780,782],{"id":781},"example","Example",[784,785,787],"h6",{"id":786},"平面rrr类型","平面RRR类型",[10,789,790],{},[65,791],{"alt":67,"src":792},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1895.webp",[10,794,795],{},"①先找到关节转轴Joint Axes",[10,797,798],{},"三个转轴是三个红点，是点的话，也就是出纸面的方向。（因为，他是个平面的，所以说，每个Z轴之间的角度都是0，所以说Link Twist Alpha是0，所以Z的方向都随便取，但是咱们这里，假设关节都是逆时针旋转，按右手螺旋定则来看，Z就都朝上）",[10,800,801],{},"②再找到公垂线Common Perpendiculars",[10,803,804],{},"但是由于Axis都是互相平行的，所以说，这个公垂线有无数多条，所以我们就在一个平面内表达即可。",[10,806,807],{},[65,808],{"alt":67,"src":809},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1896.webp",[10,811,812],{},"③下一步定义Zi向量（Z方向与转轴方向相同所以也是向上。）",[10,814,815],{},[65,816],{"alt":67,"src":817},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1897.webp",[10,819,820],{},"④然后判断中间的Xi向量",[10,822,823],{},[65,824],{"alt":67,"src":825},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1898.webp",[10,827,828],{},"⑤然后判断中间的Yi向量",[10,830,831],{},[65,832],{"alt":67,"src":833},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1899.webp",[10,835,836],{},"⑥然后判断头和尾，也就是frame 0 和frame n",[10,838,839],{},[65,840],{"alt":67,"src":841},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1900.webp",[10,843,844],{},"其实，我们可以把frame0和frame1建的完全重合，就是让alpha和theta都为0，如图并没有重合，所以有theta大小。",[10,846,847],{},[65,848],{"alt":67,"src":849},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1901.webp",[10,851,852],{},"最后一个杆件也一样，建议让X3的方向和X2方向重合，这样的话，theta和alpha都是0。",[10,854,855],{},[65,856],{"alt":67,"src":857},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1902.webp",[10,859,860],{},[65,861],{"alt":67,"src":862},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1903.webp",[10,864,865],{},"因为每个轴都是平行的，所以alpha是0，由于ai都是同平面的，所以d也为0.",[10,867,868],{},"因为frame0和frame1重合，所以a0 = 0，然后a1 = L1，a2 = L2",[10,870,871],{},"由于全是RRR，所以，theta都是变化的角。",[10,873,874],{},"P点末端执行器，也可以算出，沿X3方向走，获得P在frame n的表达，然后就可以推出P在frame 0中的表达了。",[10,876,877],{},"如图的，P点在Frame3里的坐标是（L3，0，0）",[784,879,881],{"id":880},"rpr类型","RPR类型",[10,883,884],{},[65,885],{"alt":67,"src":886},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1904.webp",[10,888,889],{},"①先找到转轴",[10,891,892],{},[65,893],{"alt":67,"src":894},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1905.webp",[10,896,897],{},"按右手螺旋来。",[10,899,900],{},"②找公垂线",[10,902,903],{},"因为frame1的Z1和frame2的Z2相交，所以，没有公垂线。",[10,905,906],{},"frame2的Z2和frame3的Z3重合，所以也没有公垂线。",[10,908,909],{},"也就是说a全是0.",[10,911,912],{},[65,913],{"alt":67,"src":914},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1906.webp",[10,916,917],{},"③建立Zi向量",[10,919,920],{},[65,921],{"alt":67,"src":922},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1907.webp",[10,924,925],{},"Zi方向与转轴方向相同。",[10,927,928],{},"④Xi的向量",[10,930,931],{},[65,932],{"alt":67,"src":933},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1908.webp",[10,935,936],{},"当Z1和Z2相交时，我们挑X的方向就挑和Z1和Z2都垂直的，有两种方案，要么X往前，要么往后，如图是往后的。",[10,938,939],{},"X1和X2必须平行，因为是个P类型的关节",[10,941,942],{},"⑤Y轴",[10,944,945],{},[65,946],{"alt":67,"src":947},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1909.webp",[10,949,950],{},"⑥Frame 0和frame n",[10,952,953],{},[65,954],{"alt":67,"src":955},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1910.webp",[10,957,958],{},"frame 0 和frame1重合",[10,960,961],{},[65,962],{"alt":67,"src":963},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1911.webp",[10,965,966],{},"让X3方向与X2方向相同",[10,968,969],{},[65,970],{"alt":67,"src":971},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1912.webp",[10,973,974],{},"如图，驱动的关节参数分别是theta1，d2，theta3",[10,976,977],{},[65,978],{"alt":67,"src":979},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1913.webp",[10,981,982],{},"由于frame0和frame1重合，那么alpha0 = 0，",[10,984,985],{},"从Z1到Z2的角，伸右手大拇指指向X1，然后四指与Z1到Z2方向相同，所以是逆时针，为正值，所以是90度。",[10,987,988],{},"然后fame2到frame3，Z共线，所以alpha2=0",[10,990,991],{},"然后由于Zi有的相交，有的共线，所以a全是0",[10,993,994],{},"然后d1是0，因为frame0和frame1重合，",[10,996,997],{},"d2是d2，d3是L2（d是X在Axis上的距离）",[10,999,1000],{},[65,1001],{"alt":67,"src":1002},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1914.webp",[10,1004,1005],{},"P点在Frame3上的坐标为（0，0，L3）",[10,1007,1008],{},[65,1009],{"alt":67,"src":1010},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1915.webp",[10,1012,1013],{},"其实Z方向有俩选择，X也有俩选择，一共四种选择，选择自己好理解，好计算的方案即可。",[784,1015,1017],{"id":1016},"中国台积电晶圆机器人prrr类型4个自由度","中国台积电晶圆机器人(PRRR类型4个自由度)",[10,1019,1020],{},[65,1021],{"alt":67,"src":1022},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1916.webp",[10,1024,1025,1028],{},[65,1026],{"alt":67,"src":1027},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1917.webp",[65,1029],{"alt":67,"src":1030},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1918.webp",[784,1032,1034],{"id":1033},"scara机器人rrrp类型4个自由度","SCARA机器人(RRRP类型4个自由度)",[10,1036,1037],{},[65,1038],{"alt":67,"src":1039},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1919.webp",[10,1041,1042],{},"该机器人最后一个关节是既可以R又可以P的，所以是个RP关节，既可以先算R也可以先算P。",[10,1044,1045,1048],{},[65,1046],{"alt":67,"src":1047},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1920.webp",[65,1049],{"alt":67,"src":1050},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1921.webp",[784,1052,1054],{"id":1053},"rp类型","RP类型",[10,1056,1057],{},[65,1058],{"alt":67,"src":1059},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1922.webp",[10,1061,1062],{},[65,1063],{"alt":67,"src":1064},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1923.webp",[10,1066,1067],{},"选D，因为俩自由度，所以有俩驱动参数。",[10,1069,1070],{},[65,1071],{"alt":67,"src":1072},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1924.webp",[35,1074,1076],{"id":1075},"执行器关节与笛卡尔空间actuator-joint-and-cartesian-spaces","执行器关节与笛卡尔空间(Actuator Joint and Cartesian Spaces)",[10,1078,1079],{},[65,1080],{"alt":67,"src":1081},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1925.webp",[10,1083,1084],{},"我们这里的驱动是theta1-3，",[10,1086,1087],{},"当我们知道theta1-3的值之后，我们就会知道P点在世界坐标系上的表达。",[10,1089,1090],{},"这被叫做正向运动学（Forward Kinematics）。",[10,1092,1093],{},"由P点世界坐标系反算关节角度，那么叫逆向运动学（Inverse Kinematics）。",[10,1095,1096],{},[65,1097],{"alt":67,"src":1098},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1926.webp",[10,1100,1101],{},"Actuator Space就是驱动器空间，比如一个电机怎么操控能转joint space下的固定角（经过一系列转换）。",[10,1103,1104],{},[65,1105],{"alt":67,"src":1106},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1927.webp",[10,1108,1109],{},[65,1110],{"alt":67,"src":1111},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1928.webp",[10,1113,1114,1117],{},[65,1115],{"alt":67,"src":1116},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1929.webp",[65,1118],{"alt":67,"src":1119},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1930.webp",[10,1121,1122,1125],{},[65,1123],{"alt":67,"src":1124},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1931.webp",[65,1126],{"alt":67,"src":1127},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1932.webp",[10,1129,1130,1133],{},[65,1131],{"alt":67,"src":1132},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1933.webp",[65,1134],{"alt":67,"src":1135},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1934.webp",[10,1137,1138],{},"有转动有移动的部分（所以需要两个电机来达到这两个自由度）",[10,1140,1141,1144],{},[65,1142],{"alt":67,"src":1143},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1935.webp",[65,1145],{"alt":67,"src":1146},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1936.webp",[10,1148,1149],{},"同步带机构使其旋转。（第一个电机）",[10,1151,1152],{},"齿轮齿条机构达到上下移动。（第二个电机）",[10,1154,1155],{},"但是，这两个并不是独立的，因为是同轴驱动的，所以有些负荷。",[10,1157,1158],{},[65,1159],{"alt":67,"src":1160},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1937.webp",[10,1162,1163],{},"两个转动变成一个转动一个移动。",[35,1165,1166],{"id":1166},"正运动学",[10,1168,1169,1172],{},[47,1170,1171],{},"定义"," ：已知机器人各个关节（或轮子等驱动单元）的运动参数（如角度、位移、速度等），计算末端执行器的位置和姿态。",[10,1174,1175],{},[65,1176],{"alt":67,"src":1177},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1938.webp",[10,1179,1180],{},[65,1181],{"alt":67,"src":1182},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1939.webp",[10,1184,1185],{},"ads=dv\u002Fdt * ds = ds\u002Fdt *dv = vdv",[10,1187,1188],{},[65,1189],{"alt":67,"src":1190},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1940.webp",[10,1192,1193],{},"牛顿第二定律，能量守恒，冲量与动量",[10,1195,1196],{},[65,1197],{"alt":67,"src":1198},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1941.webp",[10,1200,1201],{},"Wp就是P点在世界坐标系下的坐标",[10,1203,1204],{},[65,1205],{"alt":67,"src":1206},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1942.webp",[10,1208,1209],{},[65,1210],{"alt":67,"src":1211},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1943.webp",[10,1213,1214],{},[65,1215],{"alt":67,"src":1216},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1944.webp",[10,1218,1219],{},"可以根据该公式，得知末端执行器在世界坐标系中的坐标。",[35,1221,1222],{"id":1222},"逆运动学",[10,1224,1225,1227],{},[47,1226,1171],{}," ：已知末端执行器的目标位置和姿态，计算需要让各个关节（或轮子等驱动单元）运动到什么角度或速度才能达到该目标。",[10,1229,1230,1233],{},[65,1231],{"alt":67,"src":1232},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1945.webp",[65,1234],{"alt":67,"src":1235},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1946.webp",[10,1237,1238],{},"先知道末端执行器的某个点P在世界坐标系中的表达，也就是给出Pw或者末端执行器某个点上的frameH，",[10,1240,1241],{},"通过Pw求出theta。",[10,1243,1244],{},[65,1245],{"alt":67,"src":1246},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1947.webp",[10,1248,1249],{},"这样手臂就有6个未知数",[10,1251,1252],{},[65,1253],{"alt":67,"src":1254},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1948.webp",[10,1256,1257],{},"16个数字，转动的部分占了9个数字，也就是左上角的3X3的旋转矩阵，然后右上角3X1的向量表示相对于原点的位移量是什么。（也就是frame6的原点相对于frame0的原点位移量是什么）",[10,1259,1260],{},"下面的0001是整数，固定的，不变的。",[10,1262,1263],{},[65,1264],{"alt":67,"src":1265},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1949.webp",[10,1267,1268],{},"这个旋转矩阵里，有3个长度条件，3个互相垂直条件，所以9个数字里，就剩3个自由度。（也就是向量长度为1限制3个，向量两两垂直限制3个，所以是平移矩阵，3个自由度）",[10,1270,1271],{},"然后右上角3X1的向量中，相对原点的坐标X,Y,Z,那么就是3个自由度。",[10,1273,1274],{},"所以总共有6个自由度。",[10,1276,1277],{},"这12个方程式就是除了低下的0001，上面的参数都可以列一个式子。我们要做的，就是从12个式子中求出6个未知数。",[10,1279,1280],{},[65,1281],{"alt":67,"src":1282},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1950.webp",[10,1284,1285],{},"灵活工作空间Dexterous workspace是可达工作空间Reachable workspace的子集。",[10,1287,1288],{},[65,1289],{"alt":67,"src":1290},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1951.webp",[10,1292,1293],{},"它的可达工作空间是个圆环。",[10,1295,1296],{},"对于某个点，在这个例子中，只有1种或2种姿态可以达到。这个机器人只有RWS，没有DWS。",[10,1298,1299],{},[65,1300],{"alt":67,"src":1301},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1952.webp",[10,1303,1304],{},"手臂一样长的话，那样工作空间就是个圆了，",[10,1306,1307],{},"有一个点就是DWS,就是原点，当手臂内折，那么可以以360度任意一个角度来达到这个点，所以该点就是DWS。",{"title":67,"searchDepth":117,"depth":117,"links":1309},[1310],{"id":21,"depth":230,"text":21},"16",16000000,"2023-12-30","2023-12-30-ros2-tutorial","\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md",true,false,{},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi",{"title":5,"description":15},"wiki\u002F2023-12-30-ros2-tutorial\u002Fch16-Moveit2工业机器人机械臂",1,"hFPRLgQpajWi2XjujPrtbyLg4yffA8XjvSCaD88Z67Q",[1327,1333,1339,1345,1351,1357,1363,1369,1375,1381,1387,1393,1394,1400,1406,1412,1418,1424,1430,1436,1442,1448,1454,1460,1466],{"path":1328,"stem":1329,"title":1330,"date":1313,"chapter":1331,"chapterSort":1332,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch1-ros2-jie-shao","wiki\u002F2023-12-30-ros2-tutorial\u002Fch1-ROS2介绍","ROS2介绍","1",1000000,{"path":1334,"stem":1335,"title":1336,"date":1313,"chapter":1337,"chapterSort":1338,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch10-stage-ros2-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002Fch10-Stage_Ros2仿真平台","Stage_Ros2仿真平台","10",10000000,{"path":1340,"stem":1341,"title":1342,"date":1313,"chapter":1343,"chapterSort":1344,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-1-gazeboclassic","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":1346,"stem":1347,"title":1348,"date":1313,"chapter":1349,"chapterSort":1350,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-2-ignitiongazebo","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":1352,"stem":1353,"title":1354,"date":1313,"chapter":1355,"chapterSort":1356,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-3-gazebosim","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":1358,"stem":1359,"title":1360,"date":1313,"chapter":1361,"chapterSort":1362,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-4-igngz2gzsim","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-4-Igngz2gzsim","将Ign Gazebo迁移至Gz Sim","11.4",11040000,{"path":1364,"stem":1365,"title":1366,"date":1313,"chapter":1367,"chapterSort":1368,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-gezebo-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-Gezebo仿真平台","Gezebo仿真平台","11",11000000,{"path":1370,"stem":1371,"title":1372,"date":1313,"chapter":1373,"chapterSort":1374,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","wiki\u002F2023-12-30-ros2-tutorial\u002Fch12-机器人导航Navigation2(仿真篇)","机器人导航Navigation2(仿真篇)","12",12000000,{"path":1376,"stem":1377,"title":1378,"date":1313,"chapter":1379,"chapterSort":1380,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch13-ros2serial","wiki\u002F2023-12-30-ros2-tutorial\u002Fch13-ROS2Serial","ROS2 Serial","13",13000000,{"path":1382,"stem":1383,"title":1384,"date":1313,"chapter":1385,"chapterSort":1386,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch14-ji-qi-ren-ying-jian","wiki\u002F2023-12-30-ros2-tutorial\u002Fch14-机器人硬件","机器人硬件","14",14000000,{"path":1388,"stem":1389,"title":1390,"date":1313,"chapter":1391,"chapterSort":1392,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch15-ros2-control","wiki\u002F2023-12-30-ros2-tutorial\u002Fch15-ROS2_Control","ROS2_Control","15",15000000,{"path":1321,"stem":1323,"title":5,"date":1313,"chapter":1311,"chapterSort":1312,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},{"path":1395,"stem":1396,"title":1397,"date":1313,"chapter":1398,"chapterSort":1399,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","wiki\u002F2023-12-30-ros2-tutorial\u002Fch17-机器人导航Navigation2(实体篇)","机器人导航Navigation2(实体篇)","17",17000000,{"path":1401,"stem":1402,"title":1403,"date":1313,"chapter":1404,"chapterSort":1405,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch18-microros","wiki\u002F2023-12-30-ros2-tutorial\u002Fch18-MicroROS","MicroROS","18",18000000,{"path":1407,"stem":1408,"title":1409,"date":1313,"chapter":1410,"chapterSort":1411,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch19-webots-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002Fch19-Webots仿真平台","Webots仿真平台","19",19000000,{"path":1413,"stem":1414,"title":1415,"date":1313,"chapter":1416,"chapterSort":1417,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch2-ru-men-cao-zuo","wiki\u002F2023-12-30-ros2-tutorial\u002Fch2-入门操作","入门操作","2",2000000,{"path":1419,"stem":1420,"title":1421,"date":1313,"chapter":1422,"chapterSort":1423,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch20-opencv","wiki\u002F2023-12-30-ros2-tutorial\u002Fch20-OpenCV","OpenCV","20",20000000,{"path":1425,"stem":1426,"title":1427,"date":1313,"chapter":1428,"chapterSort":1429,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch3-gong-zuo-kong-jian-yu-gong-neng-bao","wiki\u002F2023-12-30-ros2-tutorial\u002Fch3-工作空间与功能包","工作空间与功能包","3",3000000,{"path":1431,"stem":1432,"title":1433,"date":1313,"chapter":1434,"chapterSort":1435,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch4-si-da-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002Fch4-四大通信","四大通信","4",4000000,{"path":1437,"stem":1438,"title":1439,"date":1313,"chapter":1440,"chapterSort":1441,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch5-ros2-qi-ta-tong-xin-ji-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002Fch5-ROS2其他通信机制","ROS2其他通信机制","5",5000000,{"path":1443,"stem":1444,"title":1445,"date":1313,"chapter":1446,"chapterSort":1447,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch6-launch","wiki\u002F2023-12-30-ros2-tutorial\u002Fch6-Launch","Launch","6",6000000,{"path":1449,"stem":1450,"title":1451,"date":1313,"chapter":1452,"chapterSort":1453,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch7-hui-su-rosbag2","wiki\u002F2023-12-30-ros2-tutorial\u002Fch7-回溯rosbag2","回溯rosbag2","7",7000000,{"path":1455,"stem":1456,"title":1457,"date":1313,"chapter":1458,"chapterSort":1459,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch8-zuo-biao-bian-huan-tf","wiki\u002F2023-12-30-ros2-tutorial\u002Fch8-坐标变换TF","坐标变换TF","8",8000000,{"path":1461,"stem":1462,"title":1463,"date":1313,"chapter":1464,"chapterSort":1465,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1319},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","wiki\u002F2023-12-30-ros2-tutorial\u002Fch9-可视化平台RVIZ2与URDF建模语言","可视化平台RVIZ2与URDF建模语言","9",9000000,{"path":1315,"stem":1467,"title":1468,"date":1313,"chapter":1469,"chapterSort":1470,"docKey":1314,"docRoot":1315,"docTitle":1316,"isWikiDoc":1318,"isWikiIndex":1318},"wiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2机器人操作系统教程",null,0,1778666545852]