= Kinematics, Transmission Ratios, and Joint Ranges = === D-H parameters === D-H frames are defined roughly as shown in Figure 1 when the robot is in its zero position (NOT the robot’s home position). Note that the joint range of Joint 3 (Table 2) prevents BURT from actually reaching this position. Frames 0 and 1 are located at the intersection of the J1 and J2 axes. Frame 2 is coincident to the J3 axis. The frame 3 origin is coincident to the center of the haptic ball when it points straight up. The D-H parameters do not change between left- and right-handed configurations. However, the configuration files do contain separate world-to-base transforms for each configuration. These transforms define the origin of the world frame to be at the user’s sternum, 550 mm from the X1-Z1 plane along Z0. The diagram shows the locations of the world origin in left-handed and right-handed robot configurations. A positive joint motion is based on the right-hand rule for each axis. {{{ #!div class="center" align="center" [[Image(htdocs:therapy/DHFramesSm.PNG)]] '''Figure 1: BURT D-H frames''' }}} * The robot has 3 joints: J1, J2, and J3, shown below. J1 rotates about Z0, J2 rotates about Z1, and J3 rotates about Z2. * J3 is able to change between left- and right-hand configurations, denoted J3L and J3R, respectively. * J1 and J2 are part of a cable differential system. === Forward Kinematics for BURT === Equation 1 below gives the transform between two adjacent D-H coordinate frames. The D-H parameters that were derived from this equation are located in Table 1 below. Note that c and s stand for cos and sin respectively. {{{ #!div class="center" align="center" {{{ #!latex $^{i-l}T_{i}=\left[\begin{array}{cccc} c\theta_{i} & -s\theta_{i}c\alpha_{i} & s\theta_{i}s\alpha_{i} & a_{i}c\theta_{i}\\ s\theta_{i} & c\theta_{i}c\alpha_{i} & -c\theta_{i}s\alpha_{i} & a_{i}s\theta_{i}\\ 0 & s\alpha_{i} & c\alpha_{i} & d_{i}\\ 0 & 0 & 0 & 1\end{array}\right]$ }}} {{{ #!div class="center" align="center" '''Table 1: BURT D-H table''' {{{ #!latex $\begin{tabular}{|c|c|c|c|c|} \hline i &$\alpha_{i}$&$a_i$&$d_i$&$\theta_i$\\ \hline 1 & 0 &$\pi/2$& 0 &$\theta_1$\\ \hline 2 & 0.650 & 0 & 0.156 &$\theta_2$\\ \hline 3 & 0.435 &$-\pi/2$& 0.069 &$\theta_3$\\ \hline\end{tabular}$ }}} For example, to generate the transform from coordinate Frame 2 to coordinate Frame 1 (i.e. the position and orientation of Frame 2 described in terms of Frame 1 which is also a rotation about joint 2), use the parameters in the second row of Table 1 as follows: {{{ #!div class="center" align="center" {{{ #!latex $^{1}T_{2}=\left[\begin{array}{cccc} \cos(\theta_{2}) & -\sin(\theta_{2})\cos(0) & \sin(\theta_{2})\sin(0) & 0.650\cos(\theta_{2})\\ \sin(\theta_{2}) & \cos(\theta_{2})\cos(0) & -\cos(\theta_{2})\sin(0) & 0.650\sin(\theta_{2})\\ 0 & \sin(0) & \cos(0) & (0.156)\\ 0 & 0 & 0 & 1\end{array}\right]$ $^{1}T_{2}=\left[\begin{array}{cccc} \cos\theta_{2} & -\sin\theta_2 & 0 & 0.650\cos\theta_2\\ \sin\theta_{2} & \cos\theta_2 & 0 & 0.650\sin\theta_{2}\\ 0 & 0 & 1 & 0.156\\ 0 & 0 & 0 & 1\end{array}\right]$ }}} '''Equation 1: D-H Matrix Example''' }}} The forward kinematics of BURT are used to determine the end tip location and orientation. These transformations are generated using the parameters in Table 1 and the matrix in Equation 1. The forward kinematics are determined for any frame on the robot by mulitplying all of the transforms up to and including the final frame. To determine the endpoint location and orientation use the following equation: {{{ #!div class="center" align="center" {{{ #!latex $^{0}T_{3}=(^{0}T_{1})(^{1}T_{2})(^{2}T_{3})$ }}} '''Equation 2: Tool end tip position and orientation equation for BURT''' }}} {{{ #!div class="center" align="center" {{{ #!latex $^{0}T_{3}=\left[\begin{array}{cccc} c1c2c3-c1s2s3 & -s1 & -c1c2s3-c1s2c3 & 0.435c1c2c3-0.435c1s2s3+0.069s1+0.650c1c2+0.156s1\\ s1c2c3-s1s2s3 & c1 & -s1c2s3-s1s2c3 & 0.435s1c2c3-0.435s1s2s3-0.069c1+0.650s1c2-0.156c1\\ s2c3+c2s3 & 0 & -s2s3+c2c3 & 0.435c3s2+0.435s3c2+0.650s2\\ 0 & 0 & 0 & 1\end{array}\right]$ }}} === Joint Ranges === Each of the joints has a mechanical stop that limits the motion. Table 2 below shows a complete listing of the joint limits for each axis. 3R and 3L correspond to joint limits for joint 3 in the right and left configurations, respectively. {{{ #!div class="center" align="center" '''Table 2: Joint Limits''' ||Joint||Positive Joint Limit Rad (deg)||Negative Joint Limit Rad (deg) ||1||+0.26 (+15)||-1.01 (-58) ||2||+0.96 (+55)||-0.96 (-55) ||3R||+2.84 (+163)||+0.40 (+23) ||3L||-0.40 (-23)||-2.84 (-163) }}} === Transmission ratios === The following transformations show the change in joint positions as a function of motor positions. The input transmission ratios and the differential transmission ratios are calculated from known pulley, pinion, and cable diameters. {{{ #!div class="center" align="center" '''Table 3: Arm Transmission Ratios''' ||Parameter||Value ||N,,1,,||8.51 ||N,,2,,||8.51 ||n,,2,,||0.56 ||N,,3,,||9.55 {{{ #!latex $\left[\begin{array}{c} J\theta_{1}\\ J\theta_{2}\\ J\theta_{3}\end{array}\right]=\left[\begin{array}{cccc} -1/2N_1 & 1/2N_2 & 0\\ n_2/2N_1 & n_2/2N_1 & 0\\ 0 & 0 & 1/N_3\end{array}\right]\left[\begin{array}{c} M\theta_{1}\\ M\theta_{2}\\ M\theta_{3}\end{array}\right]$ }}} '''Equation 3: BURT Motor-to-Joint position transformations ''' }}} === Transfmormation matrices === The motor position can also be derived from joint space by taking the inverse of the multiplying matrix. For convenience, they are as follows: {{{ #!div class="center" align="center" {{{ #!latex $\left[\begin{array}{c} M\theta_{1}\\ M\theta_{2}\\ M\theta_{3} \end{array}\right]=\left[\begin{array}{cccc} -N_{1} & N_1/n_2 & 0\\ N_{1} & N_2/n_2 & 0\\ 0 & 0 & N_3\end{array}\right]\left[\begin{array}{c} J\theta_{1}\\ J\theta_{2}\\ J\theta_{3}\end{array}\right]$ }}} '''Equation 4: Arm Joint-to-Motor position transformations ''' }}} Similar to the position transformations the following equations determine the joint torque from the motor torque: {{{ #!div class="center" align="center" {{{ #!latex $\left[\begin{array}{c} J\tau_{1}\\ J\tau_{2}\\ J\tau_{3}\end{array}\right]=\left[\begin{array}{cccc} -N_1 & N_2 & 0\\ N_1/n_2 & N_2/n_2 & 0\\ 0 & 0 & N_3\end{array}\right]\left[\begin{array}{c} M\tau_{1}\\ M\tau_{2}\\ M\tau_{3}\end{array}\right]$ }}} '''Equation 5: Arm Motor-to-Joint torque transformation''' }}} The following equations determine motor torque from the joint torque: {{{ #!div class="center" align="center" {{{ #!latex $\left[\begin{array}{c} M\tau_{1}\\ M\tau_{2}\\ M\tau_{3}\end{array}\right]=\left[\begin{array}{cccc} -1/2N_1 & n_2/2N_1 & 0\\ 1/2N_2 & n_2/2N_2 & 0\\ 0 & 0 & 1/N_3\end{array}\right]\left[\begin{array}{c} J\tau_{1}\\ J\tau_{2}\\ J\tau_{3}\end{array}\right]$ }}} '''Equation 6: Arm Joint-to-Motor torque transformations ''' }}}