SwerveInverseKinematicsDerivation .pdf

File information


Original filename: SwerveInverseKinematicsDerivation.pdf

This PDF 1.5 document has been generated by / Skia/PDF m52, and has been sent on pdf-archive.com on 26/05/2016 at 21:07, from IP address 204.130.x.x. The current document download page has been viewed 691 times.
File size: 177 KB (2 pages).
Privacy: public file


Download original PDF file


SwerveInverseKinematicsDerivation.pdf (PDF, 177 KB)


Share on social networks



Link to this file download page



Document preview


Swerve Inverse Kinematics 
 

Inverse Kinematics 
The goal of inverse kinematics is to determine the appropriate inputs to a system (in our case, 
commands to the turning and driving motors) in order to produce a desired output (a velocity 
vector and a rotational speed and direction for the robot). For swerve, we don’t need to 
determine what to send the motors directly, since we’re using control loops for that, but we do 
need to tell those control loops what direction and speed we want for the wheels. 
 

Determining the outputs 
The outputs we want are determined by user input. I decided to keep it simple and set the x 
component of the desired velocity vector based on the x­input of the left joystick, the y 
component of the velocity vector based on the y­input of the left joystick, and the desired 
rotation based on the x­input of the right joystick. I’m considering joystick inputs to be on a 
range from ­1 to 1. 
 
Some definitions: 
V​
 ­­ The maximum speed one of our wheel pods can move 
max​
V​
 ­­ The desired velocity vector of the frame (componentized into V​
 and V​

f​
f, x​
f, y​
⍵​
 ­­ The desired rotation of the frame; I’m defining counterclockwise as positive 
f​
L ­­ The vertical length of the robot (measured between contact points of wheels) 
W ­­ The width of the robot (measured between contact points of wheels) 



2
R =​
  L

4

2

+ W4  ​
 ­­ The robot’s radius of turning 

 
Target settings based on my control scheme: 
V​
 = V​
 * leftJoystickX 
f, x​
max​
V​
 = V​
 * leftJoystickY 
f, y​
max​
⍵​
 = V​
 * rightJoystickX / R 
f​
max​
 

Wheel motion 
If there’s no rotation, each of the wheels clearly moves with the same velocity as the frame; they 
should all face the same direction and move the same speed. This is identical to crab drive. 

Applying rotation changes the target velocity of the wheel. Recall V = ⍵R from physics. Thus, on 
the upper­left pod, the target velocity is componentized as follows. (Note to self: add diagram). 
­1​
ɸ

 = tan​
(L / W) ­­ The angle between the frame and the first wheel pod 
1​
V​
 = V​
 ­ ⍵​
 * sin(ɸ

) * R = V​
 ­ ½ * ⍵​
 * L 
1, x​
f, x​
f​
1​
f, x​
f​
V​
 = V​
 ­ ⍵​
 * cos(ɸ

) * R = V​
 ­ ½ * ⍵​
 * W 
1, y​
f, y​ f​
1​
f, y​
f​

 
The following is a table, by physical position on the frame, of the componentized wheel 
velocities: 
V​
 = V​
 ­ ½ * ⍵​
 * L 
1, x​
f, x​
f​
V​
 = V​
 ­ ½ * ⍵​
 * W 
1, y​
f, y​
f​

V​
 = V​
 ­ ½ * ⍵​
 * L 
2, x​
f, x​
f​
V​
 = V​
 + ½ * ⍵​
 * W 
2, y​
f, y​
f​

V​
 = V​
 + ½ * ⍵​
 * L 
1, x​
f, x​
f​
V​
 = V​
 ­ ½ * ⍵​
 * W 
1, y​
f, y​
f​

V​
 = V​
 + ½ * ⍵​
 * L 
1, x​
f, x​
f​
V​
 = V​
 + ½ * ⍵​
 * W 
1, y​
f, y​
f​

 
Note that they are very similar, except for the sign on the rotational influence term. Each pod 
inherits the target velocity of the frame, and its velocity components are either added to or 
subtracted from by the rotational influence term, depending on where they are.  

Determining the wheel pod settings 
Now that we know the target velocity for each wheel pod, deriving the target angle and speed 
for each wheel is simple.  
Θ​
 = atan2(V​
, V​
 ) ­­ The target angle for wheel pod n 
n​
n,  y  ​
n, x​
|V​
| = 
n​



­­ The target speed for wheel pod n 
(V n, x)2 + (V n, y)2  ​

 
Finally, because the target speeds may not be in the same range as your motor settings, if any 
of the target speeds is greater than 1, divide all target speeds by the greatest target speed. 

Room for improvement 
Note that this technique does NOT account for the fact that wheels can turn backwards. In order 
to reverse direction, it is more efficient to hold the wheel pods at the same angle and reverse 
their wheels. However, this technique, when applied on its own, will instead turn the wheel pods 
180° at full forward drive power.  


Document preview SwerveInverseKinematicsDerivation.pdf - page 1/2

Document preview SwerveInverseKinematicsDerivation.pdf - page 2/2

Related documents


swerveinversekinematicsderivation
flexible parallel robots ieee
gps and relativity
maze bot final
jan17thresumeraylo
600dvideoguide

Link to this page


Permanent link

Use the permanent link to the download page to share your document on Facebook, Twitter, LinkedIn, or directly with a contact by e-Mail, Messenger, Whatsapp, Line..

Short link

Use the short link to share your document on Twitter or by text message (SMS)

HTML Code

Copy the following HTML code to share your document on a Website or Blog

QR Code

QR Code link to PDF file SwerveInverseKinematicsDerivation.pdf