Control, Monitor and Simulation For SIR-1 Robot


1.0 Introduction:

The objective of this project is to provide a DOS based software tool to control an SR1 Robot. The tool was developed using C++ and can also run under Windows3.1

Installation :

To run the program you need : A PC with 3.5” Floppy drive COM 1 to be free

Copy robot.exe to you hard drive, from the prompt type ROBOT


2.0 Description

The tool has three windows:

Simulation window:

This window has a 3-D graphical representation of the SIR-1 Robot.

Status Window :

This window reports the actual position of the End Effector as well providing information on the number of steps sent to the robot over the serial link.

Control Window:

This window allows the user to enter new coordinated to the robot.


3.0 Processing flow

Once a new set of coordinates was entered the inverse kinematics is calculated, if a solution exists the software sends the new coordinate to the robot and update the simulation screen. The software will repeat this process unless the user presses the ESC button.


4.0 Detailed Description

The following section provide a detailed description of each section of the program:

Simulation:

The basic concept behind the simulator is as follows:

1. Each polygon has a 3-D matrix representation

2. Once a new set of coordinates is provided, a new 3-D representation of the robot is calculated.

3. For every 3-D representation a 2-D representation is calculated

4. The 2-D picture is sent to the screen

The following figure shows the flow of the program:

Inverse Kinematics:

Taking into consideration only the first three joints of SR1(base,shoulder and elbow),the robot can be represented by the following model:

The DH parameters are given in the table below:

Driver:

The basic function of driver is to send the commands to the controller of the robot. These commands will be sent as a serial data : 8 bits word width 1 start bit 2 stop bits no parity bits full duplex

One function included in <bios.h> library is "bioscom". By using this function you can send data serially through RS232C port.

By changing the value of "mode" variable, this function can send initialization, receive status, send data and receive data. You can send one character each time. By using continuous sending of characters, you can send command like: M 100,200,-200<CR> Each command should be ended by <CR> to start execution.

The bioscom can take these forms: bioscom(0,SETTINGS,COM1) to send initialization

bioscom(1,ch,COM1) to send character

bioscom(2,in,COM1) to receive character

bioscom(3,STATUS,COM1) to receive status


5.0 SIR1 Robot Pictures and Simulation Menu:


6.0 Program Listing

To list the program, press here