|
4 | 4 | "cell_type": "markdown", |
5 | 5 | "metadata": {}, |
6 | 6 | "source": [ |
7 | | - "# IROS 2020 workshop: REVIEW ON SCREW THEORY & GEOMETRIC ROBOT DYNAMICS" |
| 7 | + "<!-- RTB_HEADER -- generated from the notebook metadata (rtb_header) by sync_bootstrap.py, do not hand-edit -->\n", |
| 8 | + "<table>\n", |
| 9 | + " <tr>\n", |
| 10 | + " <td><div align=\"left\"><font size=\"30\">Robotics Toolbox for Python</font></div></td>\n", |
| 11 | + " <td><img src=\"figs/RobToolBox_RoundLogoB.png\" width=\"300\"></td>\n", |
| 12 | + " </tr>\n", |
| 13 | + "</table>\n", |
| 14 | + "\n", |
| 15 | + "<p></p>\n", |
| 16 | + "<div align=\"center\" style=\"font-size: 1.5em;\">IROS 2020 workshop: review on screw theory and geometric robot dynamics</div>\n", |
| 17 | + "<p></p>\n", |
| 18 | + "\n", |
| 19 | + "(c) Peter Corke 2020, updated 2026\n", |
| 20 | + "\n", |
| 21 | + "> **Modernised 2026-10-19** to address API drift: this notebook was written for an earlier release of the Toolbox, and has been updated so that it runs with the current one." |
8 | 22 | ] |
9 | 23 | }, |
10 | 24 | { |
|
189 | 203 | "metadata": {}, |
190 | 204 | "outputs": [], |
191 | 205 | "source": [ |
192 | | - "q, *_ = puma.ikine(T)\n", |
| 206 | + "q = puma.ikine_LM(T).q\n", |
193 | 207 | "q" |
194 | 208 | ] |
195 | 209 | }, |
196 | 210 | { |
197 | 211 | "cell_type": "markdown", |
198 | 212 | "metadata": {}, |
199 | 213 | "source": [ |
200 | | - "_Note: that `ikine` returns additional status information which we are ignoring here_\n", |
| 214 | + "_Note: that `ikine_LM` returns an `IKSolution` object, with the joint coordinates in its `q` attribute and the status of the solution in other attributes, which we are ignoring here_\n", |
201 | 215 | "\n", |
202 | 216 | "The manipulability at this particular configuration is" |
203 | 217 | ] |
|
208 | 222 | "metadata": {}, |
209 | 223 | "outputs": [], |
210 | 224 | "source": [ |
211 | | - "puma.maniplty(q)" |
| 225 | + "puma.manipulability(q)" |
212 | 226 | ] |
213 | 227 | }, |
214 | 228 | { |
|
287 | 301 | "metadata": {}, |
288 | 302 | "outputs": [], |
289 | 303 | "source": [ |
290 | | - "import roboticstoolbox.robot.ET as ET\n", |
| 304 | + "from roboticstoolbox import ET\n", |
291 | 305 | "\n", |
292 | 306 | "l1 = 0.672\n", |
293 | 307 | "l2 = 0.2337\n", |
|
315 | 329 | "source": [ |
316 | 330 | "e = (\n", |
317 | 331 | " ET.tz(l1)\n", |
318 | | - " * ET.rz()\n", |
| 332 | + " * ET.Rz()\n", |
319 | 333 | " * ET.ty(l2)\n", |
320 | | - " * ET.ry()\n", |
| 334 | + " * ET.Ry()\n", |
321 | 335 | " * ET.tz(l3)\n", |
322 | 336 | " * ET.tx(l6)\n", |
323 | 337 | " * ET.ty(l4)\n", |
324 | | - " * ET.ry()\n", |
| 338 | + " * ET.Ry()\n", |
325 | 339 | " * ET.tz(l5)\n", |
326 | | - " * ET.rz()\n", |
327 | | - " * ET.ry()\n", |
328 | | - " * ET.rz()\n", |
| 340 | + " * ET.Rz()\n", |
| 341 | + " * ET.Ry()\n", |
| 342 | + " * ET.Rz()\n", |
329 | 343 | ")" |
330 | 344 | ] |
331 | 345 | }, |
|
614 | 628 | "metadata": {}, |
615 | 629 | "outputs": [], |
616 | 630 | "source": [ |
617 | | - "Twist3.R([1, 0, 0], [0, 0, 0])" |
| 631 | + "Twist3.UnitRevolute([1, 0, 0], [0, 0, 0])" |
618 | 632 | ] |
619 | 633 | }, |
620 | 634 | { |
|
630 | 644 | "metadata": {}, |
631 | 645 | "outputs": [], |
632 | 646 | "source": [ |
633 | | - "Twist3.P([0, 1, 0])" |
| 647 | + "Twist3.UnitPrismatic([0, 1, 0])" |
634 | 648 | ] |
635 | 649 | }, |
636 | 650 | { |
|
696 | 710 | "metadata": {}, |
697 | 711 | "outputs": [], |
698 | 712 | "source": [ |
699 | | - "tw.pitch()" |
| 713 | + "tw.pitch" |
700 | 714 | ] |
701 | 715 | }, |
702 | 716 | { |
|
712 | 726 | "metadata": {}, |
713 | 727 | "outputs": [], |
714 | 728 | "source": [ |
715 | | - "tw.pole()" |
| 729 | + "tw.pole" |
716 | 730 | ] |
717 | 731 | }, |
718 | 732 | { |
|
992 | 1006 | "fig = puma.plot(puma.qz)\n", |
993 | 1007 | "lines.plot(\"k--\", linewidth=1.5, bounds=np.r_[-1, 1, -1, 1, -1, 1.5])" |
994 | 1008 | ] |
995 | | - }, |
996 | | - { |
997 | | - "cell_type": "code", |
998 | | - "execution_count": null, |
999 | | - "metadata": {}, |
1000 | | - "outputs": [], |
1001 | | - "source": [ |
1002 | | - "from spatialmath import SO3, SE2\n", |
1003 | | - "\n", |
1004 | | - "SO3.Ry(90, unit=\"deg\")" |
1005 | | - ] |
1006 | | - }, |
1007 | | - { |
1008 | | - "cell_type": "code", |
1009 | | - "execution_count": null, |
1010 | | - "metadata": {}, |
1011 | | - "outputs": [], |
1012 | | - "source": [ |
1013 | | - "SE2() * SO3()" |
1014 | | - ] |
1015 | | - }, |
1016 | | - { |
1017 | | - "cell_type": "code", |
1018 | | - "execution_count": null, |
1019 | | - "metadata": {}, |
1020 | | - "outputs": [], |
1021 | | - "source": [ |
1022 | | - "tw.exp(0)" |
1023 | | - ] |
1024 | | - }, |
1025 | | - { |
1026 | | - "cell_type": "code", |
1027 | | - "execution_count": null, |
1028 | | - "metadata": {}, |
1029 | | - "outputs": [], |
1030 | | - "source": [ |
1031 | | - "tw.exp(1)" |
1032 | | - ] |
1033 | | - }, |
1034 | | - { |
1035 | | - "cell_type": "code", |
1036 | | - "execution_count": null, |
1037 | | - "metadata": {}, |
1038 | | - "outputs": [], |
1039 | | - "source": [ |
1040 | | - "tw.exp([0, 1])" |
1041 | | - ] |
1042 | | - }, |
1043 | | - { |
1044 | | - "cell_type": "code", |
1045 | | - "execution_count": null, |
1046 | | - "metadata": {}, |
1047 | | - "outputs": [], |
1048 | | - "source": [ |
1049 | | - "Twist3.P([1, 0, 0])" |
1050 | | - ] |
1051 | | - }, |
1052 | | - { |
1053 | | - "cell_type": "code", |
1054 | | - "execution_count": null, |
1055 | | - "metadata": {}, |
1056 | | - "outputs": [], |
1057 | | - "source": [ |
1058 | | - "Twist3.Rx(0)" |
1059 | | - ] |
1060 | | - }, |
1061 | | - { |
1062 | | - "cell_type": "code", |
1063 | | - "execution_count": null, |
1064 | | - "metadata": {}, |
1065 | | - "outputs": [], |
1066 | | - "source": [] |
1067 | 1009 | } |
1068 | 1010 | ], |
1069 | 1011 | "metadata": { |
|
1120 | 1062 | "_Feature" |
1121 | 1063 | ], |
1122 | 1064 | "window_display": false |
| 1065 | + }, |
| 1066 | + "rtb_header": { |
| 1067 | + "title": "IROS 2020 workshop: review on screw theory and geometric robot dynamics", |
| 1068 | + "paragraphs": [], |
| 1069 | + "copyright": "Peter Corke 2020, updated 2026", |
| 1070 | + "modernised": "2026-10-19" |
1123 | 1071 | } |
1124 | 1072 | }, |
1125 | 1073 | "nbformat": 4, |
|
0 commit comments