What will it do?

My project Kalakar is an Omni wheeled 4WD CNC Drawbot. Its a portable pen plotter that reads Gcode Send Via bluetooth and draw complex patterns in various surfaces.

 

 

Who will use it?

Kalakar is a device that caters for all ages, and may appeal particularly to those who enjoy being creative with pen and ink.

Drive system

Connectivity

Conceptualization

      Bill of Materials

    Assemble Plan

Theory

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Omni-wheels (Pic 1) only have traction in the direction of rotation. Any oblique force causes the wheel to move sideways.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Movement in any direction is possible if we place omni-wheels along the X-axis and Y-axis as shown in (Pic 2).

The omni-wheel arrangement (Pic 2) is ideally suited to Bresenham’s line drawing algorithm.

The design for this plotter was inspired by the following article http://modwg.co.uk/wp-content/uploads/2015/06/Omni... which explains how to construct 3, 4, 6, and 8 wheeled omni-bots.

 

The wheel arrangement, which differs from that in the above article, offers the following advantages:

        - The wheels are ideally positioned for XY plotting.

        - No tyre scrubbing

        - Simpler calculations

        - Simpler electronics

 

Kinematics

 

 

 

 

 

 

 

 

 

 

This step derives the forward, and inverse, kinematic equations for my Project.

Assumptions

The robot X-axis lies along W2, W4.

The robot Y-axis lies along W1, W3.

Normal rotation is clockwise looking towards the robot center.

Omni wheels (Pic 3) only have traction in the ‘S’ directions.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The ‘x’ and ‘y’ vector components for any given wheel are derived in Pic 4.

For the four-wheel robot shown in Pic 3 the ‘x’ and ‘y’ vector components are:

x1 = cos(Alpha 1 + PI/2)*S1 = cos(90 + 90)* S1 = cos(180)*S1

x2 = cos(Alpha 2 + PI/2)*S1 = cos(180 + 90)* S1 = cos(270)*S2

x3 = cos(Alpha 3 + PI/2)*S1 = cos(270 + 90)*S1 = cos(360)*S3

x4 = cos(Alpha 4 + PI/2)*S1 = cos(360 + 90)*S1 = cos(450)*S4

y1 = sin(Alpha 1 + PI/2)*S1 = sin(90 + 90)* S1 = sin(180)*S1

y2 = sin(Alpha 2 + PI/2)*S1 = sin(180 + 90)* S1 = sin(270)*S2

y3 = sin(Alpha 3 + PI/2)*S1 = sin(270 + 90)*S1 = sin(360)*S3

y4 = sin(Alpha 4 + PI/2)*S1 = sin(360 + 90)*S1 = sin(450)*S4

The resultant vectors for this robot are:

x = x1 + x2 + x3 + x4

y = y1 + y2 + y3 + y4

There is also an angular rotational component "w" which enables the robot to spin about its Z-axis:

w= s1 + s2 + s3 + s4

Forward kinematics

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pic 5 shows the above equations written in matrix form.

The “forward” equations are not particularly useful as they calculate where the robot will be after the wheels have finished rotating.

Reverse kinematics

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

What we want are the “reverse” equations as these allow us to calculate how much each wheel must rotate for the robot to reach a given (X,Y) coordinate.

These equations also enable us to simultaneously rotate the robot body.

Calculating the “inverse matrix”

There are several methods for obtaining the “inverse” of a matrix.

The “Gauss-Jordan” technique, using “identity” matrices, is perhaps the simplest of the manual methods. A video demonstrating this technique may be found at https://www.youtube.com/watch?v=cJg2AuSFdjw

Another way is to use an online “inverse matrix calculator” such as that found at https://www.wolframalpha.com/input/?i=calculate+in...

This calculator requires that the matrix information be entered in the following format:

{{cos(180),cos(270),cos(360),cos(450)},{sin(180),sin(270),sin(360),sin(450)},{1,1,1,1}}

Pic 6 shows the output when you click "compute".

 

Horizontal motion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The relative wheel speeds for horizontal motion may be found by plugging the following equation into the online “matrix calculator” at https://www.wolframalpha.com/input/?i=matrix+calc...

Substituting {x,y,w} = {1,0,0} in the reverse kinematics formula:

{S1,S2,S3,S4} = {{-0.5,0,0.25},{0,-0.5,0.25},{0.5,0,0.25},{0,0.5,0.25}}*{1,0,0}

{S1,S2,S3,S4} = {-0.5,0,0.5,0}

The results are shown in Pic7. A negative sign indicates CCW rotation.

Wheel W1 rotates CCW ... wheel W3 rotates CW.

 

Vertical motion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The relative wheel speeds for vertical motion may be found by plugging the following equation into the online “matrix calculator” at https://www.wolframalpha.com/input/?i=matrix+calc...

Substituting {x,y,w} = {0,1,0} in the reverse kinematics formula:

{S1,S2,S3,S4} = {{-0.5,0,0.25},{0,-0.5,0.25},{0.5,0,0.25},{0,0.5,0.25}}*{0,1,0}

{S1,S2,S3,S4} = {0,-0.5,0,0.5}

The results are shown in Pic 8. A negative sign indicates CCW rotation.

Wheel W2 rotates CCW ... wheel W4 rotates CW.

 

Angular motion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This feature is not required in this plotter since we are using Bresenham’s line formula which only requires horizontal and vertical movement.

The relative wheel speeds for angular motion may be found by plugging the following equation into the online “matrix calculator” at https://www.wolframalpha.com/input/?i=matrix+calc...

Substituting {x,y,w} = {0,0,1} in the reverse kinematics formula:

{S1,S2,S3,S4} = {{-0.5,0,0.25},{0,-0.5,0.25},{0.5,0,0.25},{0,0.5,0.25}}*{0,0,1}

{S1,S2,S3,S4} = {0.25,0.25,0.25,0.25}

The results are shown in Pic 9. A negative sign indicates CCW rotation.

All wheels rotate in the same direction.

 

Diagonal motion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This feature is not required in this plotter since we are using Bresenham’s line formula which only requires horizontal and vertical movement.

The relative wheel speeds for vertical motion may be found by plugging the following equation into the online “matrix calculator” at https://www.wolframalpha.com/input/?i=matrix+calc...

Substituting {x,y,w} = {1,1,0} in the reverse kinematics formula:

{S1,S2,S3,S4} = {{-0.5,0,0.25},{0,-0.5,0.25},{0.5,0,0.25},{0,0.5,0.25}}*{1,1,0}

{S1,S2,S3,S4} = {-0.5,-0.5,0.5,0.5}

The results are shown in Pic 10. A negative sign indicates CCW rotation.

Wheels W1 and W2 rotate CCW ... wheels W3 and W4 rotate CW.

 

Composite motion

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

This feature is not required in this plotter since we are using Bresenham’s line formula which only requires horizontal and vertical movement.

It is possible to combine angular and diagonal motion by varying the {x,y,w} parameters.

The relative wheel speeds for combined diagonal and angular motion may be found by plugging the following equation into the online “matrix calculator” at https://www.wolframalpha.com/input/?i=matrix+calc...

Substituting {x,y,w} = {1,1,1} in the reverse kinematics formula:

{S1,S2,S3,S4} = {{-0.5,0,0.25},{0,-0.5,0.25},{0.5,0,0.25},{0,0.5,0.25}}*{1,1,1}

{S1,S2,S3,S4} = {-0.25,-0.25,0.75,0.75}

The results are shown in Pic 11. A negative sign indicates CCW rotation.

The relative wheel speeds in this example cause the body to rotate as the plotter moves diagonally.


Source: https://www.instructables.com/id/Omni-Wheel-CNC-Plotter/

 


Have you?
Yes, I have sketched my final project idea/s.

Yes, I have described what it will do and who will use it.