Example #1
0
        private void thereAndBack_x(int displacement_mm, int no_of_measurements_there, robotOdometry odometry, int offset_mm, int offset_x_mm, int offset_y_mm)
        {
            float x = 0, y = 0, x2 = 0, pan = 0, tot = 0;
            float length_mm = displacement_mm * no_of_measurements_there;

            for (int i = 0; i < no_of_measurements_there * 2; i++)
            {
                y = 0;
                if (tot < length_mm)
                {
                    x   = (i * displacement_mm) + offset_mm;
                    x2  = x;
                    pan = (float)Math.PI / 2;
                    //pan = (float)Math.PI*3/2;
                }
                else
                {
                    x2 -= displacement_mm;
                    x   = x2 + displacement_mm - offset_mm;
                    pan = (float)Math.PI * 3 / 2;
                    //pan = (float)Math.PI/2;
                }

                odometry.AddPosition(-x + offset_x_mm, y + offset_y_mm, pan);

                tot += displacement_mm;
            }
        }
Example #2
0
        private void thereAndBack(int displacement_mm, int no_of_measurements_there, robotOdometry odometry, int offset_mm, int offset_x_mm, int clip)
        {
            float x, y = 0, y2 = 0, pan = 0, tot = 0;
            float length_mm = displacement_mm * no_of_measurements_there;

            for (int i = 0; i < (no_of_measurements_there * 2) - clip; i++)
            {
                x = 0;
                if (tot < length_mm)
                {
                    y   = (i * displacement_mm) + offset_mm;
                    y2  = y;
                    pan = 0;
                }
                else
                {
                    y2 -= displacement_mm;
                    y   = y2 + displacement_mm - offset_mm;
                    pan = (float)Math.PI;
                }

                odometry.AddPosition(x + offset_x_mm, y, pan);

                tot += displacement_mm;
            }
        }
Example #3
0
        private void thereAndBack_x(int displacement_mm, int no_of_measurements_there, robotOdometry odometry, int offset_mm, int offset_x_mm, int offset_y_mm)
        {
            float x = 0, y = 0, x2 = 0, pan = 0, tot = 0;
            float length_mm = displacement_mm * no_of_measurements_there;

            for (int i = 0; i < no_of_measurements_there * 2; i++)
            {
                y = 0;
                if (tot < length_mm)
                {
                    x = (i * displacement_mm) + offset_mm;
                    x2 = x;
                    pan = (float)Math.PI / 2;
                    //pan = (float)Math.PI*3/2;
                }
                else
                {
                    x2 -= displacement_mm;
                    x = x2 + displacement_mm - offset_mm;
                    pan = (float)Math.PI * 3 / 2;
                    //pan = (float)Math.PI/2;
                }

                odometry.AddPosition(-x + offset_x_mm, y + offset_y_mm, pan);

                tot += displacement_mm;
            }
        }
Example #4
0
        private void thereAndBack(int displacement_mm, int no_of_measurements_there, robotOdometry odometry, int offset_mm, int offset_x_mm, int clip)
        {
            float x, y = 0, y2 = 0, pan=0, tot=0;
            float length_mm = displacement_mm * no_of_measurements_there;
            
            for (int i = 0; i < (no_of_measurements_there*2)-clip; i++)
            {
                x = 0;
                if (tot < length_mm)
                {
                    y = (i * displacement_mm) + offset_mm;
                    y2 = y;
                    pan = 0;
                }
                else
                {
                    y2 -= displacement_mm;
                    y = y2 + displacement_mm - offset_mm;
                    pan = (float)Math.PI;
                }                

                odometry.AddPosition(x + offset_x_mm, y, pan);

                tot += displacement_mm;
            }
        }
Example #5
0
        private void squareAndBack(int displacement_mm, int no_of_measurements_forward, int no_of_measurements_right, robotOdometry odometry, int offset_mm)
        {
            squareTrack(displacement_mm, no_of_measurements_forward, no_of_measurements_right, odometry, offset_mm);

            float x, y, pan;
            int i;
            int side1 = no_of_measurements_forward * displacement_mm;
            int side2 = no_of_measurements_right * displacement_mm;
            x = -(side2 / 2);
            y = -(side1 / 2);

            for (int side = 0; side < 4; side++)
            {
                switch (side)
                {
                    case 0:
                        {
                            pan = (float)Math.PI * 3 / 2;                            
                            for (i = 0; i < no_of_measurements_right; i++)
                            {
                                x += displacement_mm;
                                odometry.AddPosition(x + offset_mm, y, pan);
                            }
                            break;
                        }
                    case 1:
                        {
                            pan = 0;
                            for (i = 0; i < no_of_measurements_forward; i++)
                            {
                                y += displacement_mm;
                                odometry.AddPosition(x, y + offset_mm, pan);
                            }
                            break;
                        }
                    case 2:
                        {
                            pan = (float)Math.PI / 2;
                            for (i = 0; i < no_of_measurements_right; i++)
                            {
                                x -= displacement_mm;
                                odometry.AddPosition(x - offset_mm, y, pan);
                            }
                            break;
                        }
                    case 3:
                        {
                            pan = (float)Math.PI;
                            for (i = 0; i < no_of_measurements_forward; i++)
                            {
                                y -= displacement_mm;
                                odometry.AddPosition(x, y - offset_mm, pan);
                            }
                            break;
                        }
                }
            }

        }
Example #6
0
        private void squareAndBack(int displacement_mm, int no_of_measurements_forward, int no_of_measurements_right, robotOdometry odometry, int offset_mm)
        {
            squareTrack(displacement_mm, no_of_measurements_forward, no_of_measurements_right, odometry, offset_mm);

            float x, y, pan;
            int   i;
            int   side1 = no_of_measurements_forward * displacement_mm;
            int   side2 = no_of_measurements_right * displacement_mm;

            x = -(side2 / 2);
            y = -(side1 / 2);

            for (int side = 0; side < 4; side++)
            {
                switch (side)
                {
                case 0:
                {
                    pan = (float)Math.PI * 3 / 2;
                    for (i = 0; i < no_of_measurements_right; i++)
                    {
                        x += displacement_mm;
                        odometry.AddPosition(x + offset_mm, y, pan);
                    }
                    break;
                }

                case 1:
                {
                    pan = 0;
                    for (i = 0; i < no_of_measurements_forward; i++)
                    {
                        y += displacement_mm;
                        odometry.AddPosition(x, y + offset_mm, pan);
                    }
                    break;
                }

                case 2:
                {
                    pan = (float)Math.PI / 2;
                    for (i = 0; i < no_of_measurements_right; i++)
                    {
                        x -= displacement_mm;
                        odometry.AddPosition(x - offset_mm, y, pan);
                    }
                    break;
                }

                case 3:
                {
                    pan = (float)Math.PI;
                    for (i = 0; i < no_of_measurements_forward; i++)
                    {
                        y -= displacement_mm;
                        odometry.AddPosition(x, y - offset_mm, pan);
                    }
                    break;
                }
                }
            }
        }