{"id":23,"date":"2024-08-16T16:35:39","date_gmt":"2024-08-16T16:35:39","guid":{"rendered":"https:\/\/libraryresources.nse.org.ng\/robotics\/chapter\/chapter-2\/"},"modified":"2026-03-16T14:22:38","modified_gmt":"2026-03-16T14:22:38","slug":"chapter-2","status":"publish","type":"chapter","link":"https:\/\/libraryresources.nse.org.ng\/robotics\/chapter\/chapter-2\/","title":{"raw":"Rigid Body Transforms","rendered":"Rigid Body Transforms"},"content":{"raw":"[latexpage]\n<h1>1) Introduction to Rigid Body Transforms<\/h1>\nRobots can be modeled as a combination of rigid bodies in 3D space.\u00a0 The maximum degrees of freedom in 3D space is six: x\/y\/z position and roll\/pitch\/yaw orientation.\u00a0 The combination of position and orientation is called a\u00a0<em>pose\u00a0<\/em>and is described by a mathematical matrix.\u00a0 One transformation matrix is used per link of a robot to indicate pose, but rigid body transforms can also be used to represent points or vectors in different coordinate frames.\u00a0 Uses of rigid body transforms include:\n<ul>\n \t<li>indicating coordinates of the same point or vector in two different frames\n<em>example: location of a part to pick in the robot's frame of reference versus the camera's frame versus the operator's frame<\/em><\/li>\n \t<li>describing the motion of a point or vector from one pose to another\n<em>example: moving a part from point A to point B<\/em><\/li>\n \t<li>calculating forward kinematics\n<em>example: pose of a robot's tip relative to its base<\/em><\/li>\n<\/ul>\nIf the difference between the new frame\/point\/vector and the old frame\/point\/vector is just a rotation, a 3x3 rotation matrix is used to relate the two.\u00a0 If the difference includes a translation, a 4x4 homogeneous transformation matrix is used.\u00a0 This chapter will address rotations first and transformations second.\n<h2>Quick Quiz<\/h2>\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n<h1>2) Rotations<\/h1>\nA rotation matrix is a 3x3 matrix that describes the relationship between two different frames of reference, a new frame versus an original frame.\u00a0 For example, the matrix $R_1^0$ represents the orientation of the new frame 1 (subscript) relative to the original frame 0 (superscript).\u00a0 Matrix $R_0^1$ would be the inverse (or transpose) of that, representing frame 0 with respect to frame 1.\n\nThe columns of a rotation matrix represent the unit coordinate axis vectors, where\u00a0<em>x<\/em> is the first column,\u00a0<em>y<\/em> is the second column, and\u00a0<em>z<\/em> is the third column.\u00a0 The video below explains the basics of rotation matrices, how they are derived, and how to describe a point in a new frame versus an old frame.\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=QZQ7C8SpCug\" rel=\"noopener\">Rotations - Basics<\/a> (click link for closed-caption version).\n\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n\nThe basic rotations around each unit vector are as follows:\n\nRotation about x axis:\n\n[latex]\n\nR_{x,\\theta} = \\left\\[ \\begin{bmatrix} 1 &amp; 0 &amp; 0 \\\\ 0 &amp; cos(\\theta) &amp; -sin(\\theta) \\\\ 0 &amp; sin(\\theta) &amp; cos(\\theta) \\\\ \\end{bmatrix} \\right\\]\n\n[\/latex]\n\nRotation about y axis:\n\n[latex]\n\nR_{y,\\theta} = \\left\\[ \\begin{bmatrix} cos(\\theta) &amp; 0 &amp; sin(\\theta)\\\\ 0 &amp; 1 &amp; 0 \\\\ -sin(\\theta) &amp; 0 &amp; cos(\\theta) \\end{bmatrix} \\right\\]\n\n[\/latex]\n\nRotation about z axis:\n\n[latex]\n\nR_{z,\\theta} = \\left\\[ \\begin{bmatrix} cos(\\theta) &amp; -sin(\\theta) &amp; 0\\\\ sin(\\theta) &amp; cos(\\theta) &amp; 0\\\\ 0 &amp; 0 &amp; 1 \\end{bmatrix} \\right\\]\n\n[\/latex]\n\nTo calculate a point in a new frame if the two frames and the original point are known, one would use the formula:\n\n\\[p^1 = R_0^1 p^0 \\]\n\nwhere $p^1$ is the point (3x1 matrix) represented in the new frame (1), $R_0^1$ is the orientation (3x3 matrix) of the new frame (1) with respect to the old frame (0), and $p^0$ is the coordinates (3x1 matrix) of the point in the original frame.\n\nThe video below shows an example of how to mathematically calculate a rotation matrix, inverse rotation matrix, and point in new coordinate frame using numerical values and a real life application.\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=e_ChAZKYmC0\" rel=\"noopener\">Rotation Example<\/a> (click link for closed caption version)\n\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n\nWhen two or more rotations are involved to go from the original frame to the final frame, i.e. a sequence of rotations is performed, this can be done in two different ways: current frame rotations versus fixed frame rotations.\u00a0 Current frame rotations are done in the current frame, i.e. each rotation is done relative to the previous frame.\u00a0 In this situation, the rotation matrices are post-multiplied, with each successive rotation multiplied on the right of the previous one.\u00a0 Fixed frame rotations are done relative to the original frame.\u00a0 In this case, the rotation matrices are pre-multiplied, with the new rotation multiplied\u00a0<em>before<\/em> or on the left side of the previous one.\u00a0 A detailed explanation and examples are given in the video below.\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=l40cn5-fAOg\" rel=\"noopener\">Rotation Sequences<\/a> (click link for closed caption version)\n\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n\nEuler's rotation theorem says that the displacement of a rigid body with one point fixed is a rotation about an axis through that point.\u00a0 To visualize this, imagine a pinwheel.\u00a0 The pin is the fixed point, and the wheel turns about it.\u00a0 Another example is a pendulum.\u00a0 The top of the pendulum is pinned, and the bottom rotates around that point.\n\nRotations can be represented in multiple ways.\u00a0 The most common way is the 3x3 rotation matrix explained above; however, it is not the only way.\u00a0 Others include:\n<ul>\n \t<li>Roll-pitch-yaw: a sequence of three fixed-frame rotation matrices, $R_z*R_y*R_x$, most common in robotics and aviation<\/li>\n \t<li>Euler angles: a sequence of any three current frame rotation matrices, not necessarily x, y, and z<\/li>\n \t<li>Axis-angle: a 4-parameter set, one 3x1 unit vector $\\hat{k}$ representing the axis of rotation, and the angle of rotation $\\theta$<\/li>\n \t<li>Quaternion: another 4-parameter set, with a 3x1 unit vector $\\epsilon$ and a scalar $\\eta$, used to avoid singularities<\/li>\n<\/ul>\nThese representations and their mathematical formulas are explained in the video below along with examples.\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=QXtM6jWnIOo\" rel=\"noopener\">Rotation Representations<\/a> (click link for closed caption version)\n\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n\nAn additional example detailing how to calculate a single rotation matrix representing a roll-pitch-yaw orientation sequence is in the following video.\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=w9qVvIzlGpc\" rel=\"noopener\">Roll-Pitch-Yaw Rotation Example <\/a>(click link for closed caption version)\n\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n<h2>Quick Quiz<\/h2>\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n<h1>3) Homogeneous Transformations<\/h1>\nChasle's theorem says that the most general displacement of a rigid body is translation along an axis (d) and rotation about the same axis (R).\u00a0 In this situation, the order of rotation versus translation does not matter because the rotation and translation are done with the same axis.\u00a0 This is represented mathematically by a 4x4 homogeneous transformation matrix, which combines the 3x3 rotation matrix\u00a0<em>R<\/em> with the 3x1 translation location <em>d<\/em>, and a bottom row of three zeros and a one:\n\n[latex]\n\n$T = \\left\\[ \\begin{bmatrix} cos(\\theta) &amp; -sin(\\theta) &amp; 0 &amp; x \\\\ sin(\\theta) &amp; cos(\\theta) &amp; 0 &amp; y \\\\ 0 &amp; 0 &amp; 1 &amp; z\\\\ 0 &amp; 0 &amp; 0 &amp; 1 \\end{bmatrix} = \\begin{bmatrix} R_{3x3} &amp; d_{3x1} \\\\ 0_{1x3} &amp; 1 \\end{bmatrix} \\right\\]$\n\n[\/latex]\n\nIf the motion is pure translation, the rotation matrix\u00a0<em>R\u00a0<\/em>is just the identity matrix.\n\nHomogeneous transformations can represent:\n<ul>\n \t<li>Relative position and orientation between coordinate frames<\/li>\n \t<li>Passive transformation of a point or vector into a new coordinate frame<\/li>\n \t<li>Active transformation of a point or vector in a fixed reference frame<\/li>\n<\/ul>\nTo express a point\u00a0<em>p<\/em> in a new frame using transformations if the position of the point has changed, the formula is similar to the one for rotations:\n\n\\[p^1 = T_0^1 p^0 \\]\n\nwhere $p^1$ is the point (4x1 matrix) represented in the new frame (1), $T_0^1$ is the orientation (4x4 matrix) of the new frame (1) with respect to the old frame (0), and $p^0$ is the coordinates (4x1 matrix) of the point in the original frame.\u00a0 In order to make the point a 4x1 matrix when it only has three coordinates, augment it with a one: $p = [x; y; z; 1]$.\u00a0 Doing this preserves the effect of the original position, or fourth column, of the transformation matrix. Vectors should be augmented with a zero because they are location independent (directional only).\n\nIn contrast to rotation sequences, which can be done in fixed or current frames, homogeneous transformations are just done in current frames (each frame relative to the one before it).\u00a0 For a standard six-axis industrial robot, for example, the transformation relating the tip of the robot (frame 6) relative to the base is:\n\n\\[T_6^0 = T_1^0 T_2^1 T_3^2 T_4^3 T_5^4 T_6^5 \\]\n\nA second difference between transformations and rotations is the method of finding the inverse.\u00a0 Whereas for a rotation, the inverse is simply the transpose (swap rows and columns), for a transformation, the formula is more complicated:\n\n[latex]\n\n$T^{-1} = \\left\\[ \\begin{bmatrix} R^T &amp; -R^T d \\\\ 0 &amp; 1 \\end{bmatrix} \\; where \\;\\; T^b_a = (T^a_b)^{-1} \\right\\]$\n\n[\/latex]\n\nAn introduction to the theory of homogeneous transformations is provided in the following video:\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=G38zTrQYiVc\" rel=\"noopener\">Homogeneous Transformations<\/a> (click link for closed caption version)\n\n[embed]https:\/\/www.youtube.com\/watch?v=G38zTrQYiVc[\/embed]\n\nThe following video provides a detailed example of using a homogeneous transformation matrix to calculate the pose of a point in a new frame relative to the original frame, using the example of a space ship shooting a missile at a target while moving.\n\nVideo: <a href=\"https:\/\/www.youtube.com\/watch?v=NoArFHuksNE\" rel=\"noopener\">Transformation Example<\/a>\u00a0(click link for closed caption version)\n\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.\n<h2>Quick Quiz<\/h2>\nThe original version of this chapter contained H5P content. You may want to remove or replace this element.","rendered":"<p>[latexpage]<\/p>\n<h1>1) Introduction to Rigid Body Transforms<\/h1>\n<p>Robots can be modeled as a combination of rigid bodies in 3D space.\u00a0 The maximum degrees of freedom in 3D space is six: x\/y\/z position and roll\/pitch\/yaw orientation.\u00a0 The combination of position and orientation is called a\u00a0<em>pose\u00a0<\/em>and is described by a mathematical matrix.\u00a0 One transformation matrix is used per link of a robot to indicate pose, but rigid body transforms can also be used to represent points or vectors in different coordinate frames.\u00a0 Uses of rigid body transforms include:<\/p>\n<ul>\n<li>indicating coordinates of the same point or vector in two different frames<br \/>\n<em>example: location of a part to pick in the robot&#8217;s frame of reference versus the camera&#8217;s frame versus the operator&#8217;s frame<\/em><\/li>\n<li>describing the motion of a point or vector from one pose to another<br \/>\n<em>example: moving a part from point A to point B<\/em><\/li>\n<li>calculating forward kinematics<br \/>\n<em>example: pose of a robot&#8217;s tip relative to its base<\/em><\/li>\n<\/ul>\n<p>If the difference between the new frame\/point\/vector and the old frame\/point\/vector is just a rotation, a 3&#215;3 rotation matrix is used to relate the two.\u00a0 If the difference includes a translation, a 4&#215;4 homogeneous transformation matrix is used.\u00a0 This chapter will address rotations first and transformations second.<\/p>\n<h2>Quick Quiz<\/h2>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<h1>2) Rotations<\/h1>\n<p>A rotation matrix is a 3&#215;3 matrix that describes the relationship between two different frames of reference, a new frame versus an original frame.\u00a0 For example, the matrix $R_1^0$ represents the orientation of the new frame 1 (subscript) relative to the original frame 0 (superscript).\u00a0 Matrix $R_0^1$ would be the inverse (or transpose) of that, representing frame 0 with respect to frame 1.<\/p>\n<p>The columns of a rotation matrix represent the unit coordinate axis vectors, where\u00a0<em>x<\/em> is the first column,\u00a0<em>y<\/em> is the second column, and\u00a0<em>z<\/em> is the third column.\u00a0 The video below explains the basics of rotation matrices, how they are derived, and how to describe a point in a new frame versus an old frame.<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=QZQ7C8SpCug\" rel=\"noopener\">Rotations &#8211; Basics<\/a> (click link for closed-caption version).<\/p>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<p>The basic rotations around each unit vector are as follows:<\/p>\n<p>Rotation about x axis:<\/p>\n<p>[latex]R_{x,\\theta} = \\left\\[ \\begin{bmatrix} 1 & 0 & 0 \\\\ 0 & cos(\\theta) & -sin(\\theta) \\\\ 0 & sin(\\theta) & cos(\\theta) \\\\ \\end{bmatrix} \\right\\][\/latex]<\/p>\n<p>Rotation about y axis:<\/p>\n<p>[latex]R_{y,\\theta} = \\left\\[ \\begin{bmatrix} cos(\\theta) & 0 & sin(\\theta)\\\\ 0 & 1 & 0 \\\\ -sin(\\theta) & 0 & cos(\\theta) \\end{bmatrix} \\right\\][\/latex]<\/p>\n<p>Rotation about z axis:<\/p>\n<p>[latex]R_{z,\\theta} = \\left\\[ \\begin{bmatrix} cos(\\theta) & -sin(\\theta) & 0\\\\ sin(\\theta) & cos(\\theta) & 0\\\\ 0 & 0 & 1 \\end{bmatrix} \\right\\][\/latex]<\/p>\n<p>To calculate a point in a new frame if the two frames and the original point are known, one would use the formula:<\/p>\n<p>\\[p^1 = R_0^1 p^0 \\]<\/p>\n<p>where $p^1$ is the point (3&#215;1 matrix) represented in the new frame (1), $R_0^1$ is the orientation (3&#215;3 matrix) of the new frame (1) with respect to the old frame (0), and $p^0$ is the coordinates (3&#215;1 matrix) of the point in the original frame.<\/p>\n<p>The video below shows an example of how to mathematically calculate a rotation matrix, inverse rotation matrix, and point in new coordinate frame using numerical values and a real life application.<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=e_ChAZKYmC0\" rel=\"noopener\">Rotation Example<\/a> (click link for closed caption version)<\/p>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<p>When two or more rotations are involved to go from the original frame to the final frame, i.e. a sequence of rotations is performed, this can be done in two different ways: current frame rotations versus fixed frame rotations.\u00a0 Current frame rotations are done in the current frame, i.e. each rotation is done relative to the previous frame.\u00a0 In this situation, the rotation matrices are post-multiplied, with each successive rotation multiplied on the right of the previous one.\u00a0 Fixed frame rotations are done relative to the original frame.\u00a0 In this case, the rotation matrices are pre-multiplied, with the new rotation multiplied\u00a0<em>before<\/em> or on the left side of the previous one.\u00a0 A detailed explanation and examples are given in the video below.<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=l40cn5-fAOg\" rel=\"noopener\">Rotation Sequences<\/a> (click link for closed caption version)<\/p>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<p>Euler&#8217;s rotation theorem says that the displacement of a rigid body with one point fixed is a rotation about an axis through that point.\u00a0 To visualize this, imagine a pinwheel.\u00a0 The pin is the fixed point, and the wheel turns about it.\u00a0 Another example is a pendulum.\u00a0 The top of the pendulum is pinned, and the bottom rotates around that point.<\/p>\n<p>Rotations can be represented in multiple ways.\u00a0 The most common way is the 3&#215;3 rotation matrix explained above; however, it is not the only way.\u00a0 Others include:<\/p>\n<ul>\n<li>Roll-pitch-yaw: a sequence of three fixed-frame rotation matrices, $R_z*R_y*R_x$, most common in robotics and aviation<\/li>\n<li>Euler angles: a sequence of any three current frame rotation matrices, not necessarily x, y, and z<\/li>\n<li>Axis-angle: a 4-parameter set, one 3&#215;1 unit vector $\\hat{k}$ representing the axis of rotation, and the angle of rotation $\\theta$<\/li>\n<li>Quaternion: another 4-parameter set, with a 3&#215;1 unit vector $\\epsilon$ and a scalar $\\eta$, used to avoid singularities<\/li>\n<\/ul>\n<p>These representations and their mathematical formulas are explained in the video below along with examples.<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=QXtM6jWnIOo\" rel=\"noopener\">Rotation Representations<\/a> (click link for closed caption version)<\/p>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<p>An additional example detailing how to calculate a single rotation matrix representing a roll-pitch-yaw orientation sequence is in the following video.<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=w9qVvIzlGpc\" rel=\"noopener\">Roll-Pitch-Yaw Rotation Example <\/a>(click link for closed caption version)<\/p>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<h2>Quick Quiz<\/h2>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<h1>3) Homogeneous Transformations<\/h1>\n<p>Chasle&#8217;s theorem says that the most general displacement of a rigid body is translation along an axis (d) and rotation about the same axis (R).\u00a0 In this situation, the order of rotation versus translation does not matter because the rotation and translation are done with the same axis.\u00a0 This is represented mathematically by a 4&#215;4 homogeneous transformation matrix, which combines the 3&#215;3 rotation matrix\u00a0<em>R<\/em> with the 3&#215;1 translation location <em>d<\/em>, and a bottom row of three zeros and a one:<\/p>\n<p>[latex]$T = \\left\\[ \\begin{bmatrix} cos(\\theta) & -sin(\\theta) & 0 & x \\\\ sin(\\theta) & cos(\\theta) & 0 & y \\\\ 0 & 0 & 1 & z\\\\ 0 & 0 & 0 & 1 \\end{bmatrix} = \\begin{bmatrix} R_{3x3} & d_{3x1} \\\\ 0_{1x3} & 1 \\end{bmatrix} \\right\\]$[\/latex]<\/p>\n<p>If the motion is pure translation, the rotation matrix\u00a0<em>R\u00a0<\/em>is just the identity matrix.<\/p>\n<p>Homogeneous transformations can represent:<\/p>\n<ul>\n<li>Relative position and orientation between coordinate frames<\/li>\n<li>Passive transformation of a point or vector into a new coordinate frame<\/li>\n<li>Active transformation of a point or vector in a fixed reference frame<\/li>\n<\/ul>\n<p>To express a point\u00a0<em>p<\/em> in a new frame using transformations if the position of the point has changed, the formula is similar to the one for rotations:<\/p>\n<p>\\[p^1 = T_0^1 p^0 \\]<\/p>\n<p>where $p^1$ is the point (4&#215;1 matrix) represented in the new frame (1), $T_0^1$ is the orientation (4&#215;4 matrix) of the new frame (1) with respect to the old frame (0), and $p^0$ is the coordinates (4&#215;1 matrix) of the point in the original frame.\u00a0 In order to make the point a 4&#215;1 matrix when it only has three coordinates, augment it with a one: $p = [x; y; z; 1]$.\u00a0 Doing this preserves the effect of the original position, or fourth column, of the transformation matrix. Vectors should be augmented with a zero because they are location independent (directional only).<\/p>\n<p>In contrast to rotation sequences, which can be done in fixed or current frames, homogeneous transformations are just done in current frames (each frame relative to the one before it).\u00a0 For a standard six-axis industrial robot, for example, the transformation relating the tip of the robot (frame 6) relative to the base is:<\/p>\n<p>\\[T_6^0 = T_1^0 T_2^1 T_3^2 T_4^3 T_5^4 T_6^5 \\]<\/p>\n<p>A second difference between transformations and rotations is the method of finding the inverse.\u00a0 Whereas for a rotation, the inverse is simply the transpose (swap rows and columns), for a transformation, the formula is more complicated:<\/p>\n<p>[latex]$T^{-1} = \\left\\[ \\begin{bmatrix} R^T & -R^T d \\\\ 0 & 1 \\end{bmatrix} \\; where \\;\\; T^b_a = (T^a_b)^{-1} \\right\\]$[\/latex]<\/p>\n<p>An introduction to the theory of homogeneous transformations is provided in the following video:<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=G38zTrQYiVc\" rel=\"noopener\">Homogeneous Transformations<\/a> (click link for closed caption version)<\/p>\n<p><iframe loading=\"lazy\" id=\"oembed-1\" title=\"Homogeneous Transformations\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/G38zTrQYiVc?feature=oembed&#38;rel=0\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>The following video provides a detailed example of using a homogeneous transformation matrix to calculate the pose of a point in a new frame relative to the original frame, using the example of a space ship shooting a missile at a target while moving.<\/p>\n<p>Video: <a href=\"https:\/\/www.youtube.com\/watch?v=NoArFHuksNE\" rel=\"noopener\">Transformation Example<\/a>\u00a0(click link for closed caption version)<\/p>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n<h2>Quick Quiz<\/h2>\n<p>The original version of this chapter contained H5P content. You may want to remove or replace this element.<\/p>\n","protected":false},"author":1,"menu_order":2,"template":"","meta":{"pb_show_title":"","pb_short_title":"Ch. 2: Rigid Body Transforms","pb_subtitle":"","pb_authors":["eledoux"],"pb_section_license":""},"chapter-type":[],"contributor":[62],"license":[],"class_list":["post-23","chapter","type-chapter","status-publish","hentry","contributor-eledoux"],"part":18,"_links":{"self":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/23\/revisions"}],"predecessor-version":[{"id":24,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/23\/revisions\/24"}],"part":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/parts\/18"}],"metadata":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapters\/23\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/pressbooks\/v2\/chapter-type?post=23"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/contributor?post=23"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/libraryresources.nse.org.ng\/robotics\/wp-json\/wp\/v2\/license?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}