|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||||
|
|||||
|
Re: Kiwi Drive Concept
I skipped the research when I realized that all of the square roots and trig functions canceled out, and the mapping was pretty straightforward. To map rotation about a point xr, yr at angular speed wr (measured in radians/second, with rotation from the positive x axis towards the positive y axis being a positive angular speed) to translation speed vx,vy and rotation w0:
w0 = wryou can use this same preliminary mapping to make a mecanum drive rotate around a desired point. For conversion purposes, 1 radian per second is 30/pi ~ 9.55 rpm. Using the WPIlib convention for your coordinate system (+x to the right, +y forward, rotations clockwise as viewed from above), your angular speeds will be reversed from this, and you will need to use: w0 = wr Last edited by GeeTwo : 08-05-2015 at 12:29. Reason: Added navigation convention paragraph and transformation |
|
#2
|
||||
|
||||
|
Re: Kiwi Drive Concept
Quote:
|
|
#3
|
||||
|
||||
|
Re: Kiwi Drive Concept
Quote:
the inverse kinematics for your 3 wheel tangential speeds are: S1 = r*ω + Vx S2 = r*ω - 0.5*Vx - 0.866*Vy S3 = r*ω - 0.5*Vx + 0.866*Vy (see attached sketch) |
|
#4
|
|||||
|
|||||
|
Re: Kiwi Drive Concept
Combining the two transformations, to rotate an equilateral kiwi drive around a pivot point (xp, yp) with angular speed ω, the inverse kinematics using Ether's diagram above are:
S1 = ω * (r - yp)Checking rotation points to verify that we didn't swap sign conventions along the way: (0,0): all are ωr, check (0,r): S1 = 0, S2 = S3 = 1.5ωr, reasonable (0,2r): S1 = -ωr, S2 = S3 = 2ωr, reasonable (0,-2r): S1 = 3ωr, S2 = S3 = 0, check (1.155r, 0): S1 = ωr, S2 = 0, S3 = 2ωr, ok (-1.155r, 0): S1 = ωr, S2 = 2ωr, S3 = 0, ok If you want "forward" to be directly between wheels rather than through one (for example if you'll be picking up pieces or doing an internal stack), rotate the robot 180 degrees, leaving the axes and forward arrow in place. Then, the inverse kinematics for rotation about (xp, yp) become: S1 = ω * (r + yp) Last edited by GeeTwo : 10-05-2015 at 11:01. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|