Version 1.00
April 2011
Documentation author
Sachitanand Malewar, NEX Robotics Pvt. Ltd.
Content of this manual is released under the Creative Commence cc by-nc-sa license.
For legal information refer to:
http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
Recycling:
Almost all the part of this product are recyclable. Please send this product to the
recycling plant after its operational life. By recycling we can contribute to cleaner
and healthier environment for the future generations.
Index
1.
Introduction
2.
1. Introduction
Dexter ER2 Robotic Arm is a 5 Axis robotic Arm + Servo Gripper. It uses 7 metal gear
servo motors with 15Kg/cm torque and two servo motors with 7Kg/cm torque. Robot
Arm has 5 degrees of freedom which includes: Base rotation, Shoulder rotation, Elbow
rotation, Wrist pitch and roll. Out of which Shoulder rotation, Elbow rotation, Wrist pitch
have two 15Kg/cm torque servo motors in parallel for giving additional torque.
Robotic arm comes preassembled along with the Servo control card, Servo motion profile
generator GUI, 5V-25A, 12V-5A SMPS and Flex sheets with polar and rectangular
coordinate systems for the robotic arm.
Servo motion profile generator GUI is used for quickly generating servo motion profile
for the robot. GUI can access each servo motor individually in real-time. We can select
individual servo motors velocity. We can also generate, edit and play motion sequence
(motion profile) using GUI.
Vertical articulated
5 axes plus servo gripper
180
180 (Dual servos)
180 (Dual servos)
180 (Dual servos)
180
320mm
DC servo motor based gripper with Parallel
finger motion
55mm
Yes
5VDC servo motors
15Kg/cm
7Kg/cm
7Kg/cm
9
50gms
1.5Kg
240C (36104F) 10% to 90% relative
humidity
5V-10Amp; 12V-2Amp (SMPS)
GUI for Servo Motion Profile Generation
*For long life move shoulder (joint 2) in front 90 degrees region. To rotate in full 180 degrees remove two
metals studs which are located between joint number 2 and 3.
Important:
Before using the robotic arm ensure that the robotic arm is kept in an area where lots
of free space is available.
Before use mount the robotic arm using screws / nuts and bolts on the table.
Read the product manual carefully before using Robotic Arm
Do not keep arm in stretched position for more than few minutes at a stretch, else
servo motors will get damaged because of overheating.
Kit contains:
Dexter ER-2 Heavy Duty Robotic Arm
Servo control card
5V-25A, 12V-5A SMPS
Two flex sheets with polar and rectangular coordinate systems
Documentation CD
Figure 2.1: Flex sheets with polar and rectangular coordinate systems for the
Robotic Arm
10
Figure 2.6
Step 4:
Check on the radio button No, not this time and then click on the next button.
Figure 2.7
11
Figure 2.8
Select the second option manually to install the drivers and click on next button.
Step 5:
Now check the second option and set the location of folder containing drivers
E.g.(C:\CDM 2.06.00 WHQL Certified).
Figure 2.9
12
Step 6:
On clicking next driver installation will begin.
Figure 2.10
Step 7:
On successfully installing the driver following window will appear. Click Finish to
complete the installation.
Figure 2.11
After installation of FT232 USB UART software, PC may ask for USB serial port
software. To install this software follow steps 1 to 7 of USB serial converter software
installation.
Important: When using USB port for the communication, for proper operation first turn
on the robot then connect USB cable between PC and the Robotic Arm. We have to
follow this exact sequence because USB to serial converter chip is powered by USB. If
any fault occurs then turn off the Robotic Arm, remove the USB cable and repeat the
same procedure.
13
Figure 2.12
Step 2:
Click on the Device manager in the Hardware tab.
Figure 2.13
14
Step 3:
Expand Ports (Com & LPT) tree. COM Port number is mentioned in the parenthesis next
to USB Serial Port. For example in the figure 2.14 COM3 is connected with the Robotic
Arm via FT232 USB to Serial Converter.
Figure 2.15
NEX Robotics Pvt. Ltd.
www.nex-robotics.com
15
Step 2:
In the Port settings tab click on the Advanced button, the following window will
appear.
Figure 2.16
You can change the COM port number by clicking on the Com Port Number drop down
list and select the appropriate number. Make sure the new COM port is not being used by
any other device.
16
17
Figure 2.18
Step 2: Click on the Next button to continue.
Step 3: Browse the location where setup file should be installed or set the default location
and click next button to start the installation.
Step 4: When installation is successfully completed, click Close to exit.
Figure 2.19
18
Figure 2.20
1. Comport selection: Select COM port corresponding to the robots USB port
2. Connect button: Used to establish communication with the robot
3. Exit button: Used to close the application.
4. Reset button: Resets the angle to 90 degree and velocity to 90 degree per sec. for all
servo motors
5. All: Used to select all servo motors.
6. None: Used to unselect all servo motors
7. Lock: To lock the velocity of servo motors to a constant value. You can set the
common velocity of all the servos in this scroll bar after pressing lock button.
8. Angle scroll bar: Used to select the desired angle of individual servo motor.
9. Velocity scroll bar: Used to select the servo motor velocity of individual servo motor.
10. Check/Uncheck box: Select individual servo motor which is to be used.
11. ADD: Used to generate the string for motion profile, for checked servo motors.
12. DELETE: It clears data from the motion profile editor box.
13. RAM: Used to load the generated motion profile string to the RAM memory of robot.
14. ROM: Used to load the generated motion profile string to the ROM memory of robot.
15. RUN: Execute loaded motion profile strings from the RAM memory of robot.
16. STOP: Stop the Robot, while in motion.
17. String Execution Time: Use this to allot single string execution time in milliseconds
(ms).
18. Motion Profile Editor: Shows the generated motion profile strings from the checked
servo motors from the real time servo control section of GUI.
NEX Robotics Pvt. Ltd.
www.nex-robotics.com
19
19. Terminal window: Displays status of the motion profile data while being loaded on
the robot.
Note: To execute the motion profile strings from the RAM memory of robot press INT7
Switch (Boot Load Switch) on the robot.
2.6.2 Establishing communication between PC and the Robotic Arm
1. Fix the robot on the table firmly using screws or nuts and bolts. You may also use Flex
sheet with polar or rectangular coordinate system.
2. Turn on Robotic Arm. Robot will move to its home position as shown in figure 2.4.
Important:
Bring the robotic arm in the home position slowly and carefully by hand as shown in the
figure 2.4. If robotic arm is in other state then it will try to regain is home position
quickly. To avoid stress to the robotic arm bring it to the home position before powering
it up.
3. Connect USB cable between robot and PC.
If you not installed USB drivers for the robot then you need to install them before using
GUI. For USB driver installation, refer to section 2.4.
If drivers are installed then Connect USB cable between robot and PC, wait for 5 seconds
and start the GUI.
20
4. In the GUI select the correct COM port. If multiple COM ports appear then refer to
section 2.4.2 for identifying the correct COM port number. Press Connect button. PC
will start communicating with the robot.
2.6.3 Moving individual servo motors using Real Time Servo Control window
GUI has 18 + 2 servo motors. Robotic Arm uses 1 to 6 servo channels. For number
associated with each joint, refer to figure 1.1.
As default GUI starts with all servo motors selected with default velocity set at 90
degrees per second and angle set at 90 degrees. You can move slider bar corresponding to
any servo motor to move it. You can also change the velocity of the individual servo
motor.
To bring all servo motors to the home position press Reset button. You can also select
or unselect all servos by pressing All or None buttons. If required you can select or
unselect individual servo motors as required.
If you want to keep same velocity for all servo motors then press Lock button and use
slider bar above to set common velocity for all the servo motors.
Important settings for the Robotic Arm
1. Select Servo numbers 1 to 6 in the Real Time Servo Control Window
2. If you are a new user then lock velocity of all servos and keep it at 20 degrees per
second. As you acquire more familiarity with the Robotic Arm, you can set
different velocity for each servo motor.
21
2.6.4 Generating motion profile using motion profile generator and executing it on
the robot
To easily understand the process we are going to use a small example. In this example we
are going to move axis 1 and gripper.
1. Follow all the steps of the section 2.6.2 and 2.6.3.
2. In this case keep String Execution Time at 5000 in the Motion Profile Properties
window. We will see its purpose at the end of the example.
3. In the Servo Control Properties press Lock button and move velocity to 20 degrees
per second. This will make all servos of the Robotic Arm move at 20 degrees per second.
Figure 2.22
22
4. Move Servo 1 to 65 degree, Servo 2 to 60 degrees and servo 3 to 70 degrees from the
Real Time Servo Control window and press ADD button from the Motion Profile
Properties window. It adds the following code in the Motion Profile Editor window.
We will see its meaning at the end of the example.
$ 1 5000 # 1 65 20 # 2 60 20 # 3 70 20 # 4 90 20 # 5 90 20 # 6 90 20 # 7 90 20 # 8 90 20 # 9 90 20 # 10 90 20 # 11 90 20 # 12 90 20 # 13
90 20 # 14 90 20 # 15 90 20 # 16 90 20 # 17 90 20 # 18 90 20 # 19 90 20 # 20 90 20 *
Figure 2.23
23
5. Move servo 4 to 70 degrees and press add. Following code will get added.
$ 2 5000 # 1 65 20 # 2 60 20 # 3 70 20 # 4 70 20 # 5 90 20 # 6 90 20 # 7 90 20 # 8 90 20 # 9 90 20 # 10 90 20 # 11 90 20 # 12 90 20 # 13
90 20 # 14 90 20 # 15 90 20 # 16 90 20 # 17 90 20 # 18 90 20 # 19 90 20 # 20 90 20 *
Figure 2.24
24
6. Move all servos back to 90 degrees by slider bar and press ADD button. Following
code will get added.
$ 3 5000 # 1 90 90 # 2 90 90 # 3 90 90 # 4 90 90 # 5 90 90 # 6 90 90 # 7 90 90 # 8 90 90 # 9 90 90 # 10 90 90 # 11 90 90 # 12 90 90 # 13
90 90 # 14 90 90 # 15 90 90 # 16 90 90 # 17 90 90 # 18 90 90 # 19 90 90 # 20 90 90 *
Figure 2.25
25
2.6.4.1 Loading generated motion profile string in to RAM memory and executing
The ATmega 640 have 8KB of RAM, If you are using this memory for storing the motion
profile strings, Which will get erased after power OFF the Robot.
To load the string in RAM, Continuing the step 6 from above section,
7. Press RAM button. It will load the generated motion profile displayed in Motion
Profile Editor window in the robots RAM. After loading is successful robot will beep
twice.
Figure 2.26
8. Now press RUN button, Robot will beep thrice at the beginning and it will start
executing the generated motion profile. You can press STOP button if you want to stop in
between.
Figure 2.27
NEX Robotics Pvt. Ltd.
www.nex-robotics.com
26
Figure 2.28
2.6.4.2 Loading generated motion profile string in to ROM memory and executing
The ATmega 640 have 4KB of internal EEROM, If you are using this memory for storing
the motion profile strings, Which you can use even after restarting the Robot and run by
pressing the INT7 i.e. BOOT switch.
To load the string in ROM, Continuing the step 6 from above section,
7. Press ROM button. It will load the generated motion profile displayed in Motion
Profile Editor window in the robots internal EEPROM memory of ATMEGA 640
Microcontroller. After loading is successful robot will beep twice.
Figure 2.29
8. Now press INT7 switch (boatload switch) on the robot, it will start executing the
generated motion profile. Please refer the Figure 2.5 to know the INT7 switch (boatload
switch) location on robot.
NEX Robotics Pvt. Ltd.
www.nex-robotics.com
27
Note:
After each power ON the data stored in EEPROM is getting erased, to avoid this we need
to enable the EESAVE bit in the fuse setting of ATMEGA 640 microcontroller. Please
read carefully the data sheet of ATmega640 microcontroller.
While shipping the robot all the fuse setting is burned properly and tested all the motion
profiles on Robotic arm. The above discussion on EESAVE fuses setting is for
Knowledge purpose.
2.6.5 Error Messages wile loading motion profile strings
GUI will give the two types of error messages.
1. Firstly, while loading the motion profile generated string in RAM or ROM of the robot,
after pressing the RAM or ROM button, if the robot is not detected due to some loose
connection of USB cable between Robot and GUI or robot is powered off unfortunately,
the GUI will display the following message in terminal window.
Figure 2.30
2. Secondly, while loading the motion profile generated string in RAM or ROM of the
robot, if string is more then 4000 byte, the GUI will display the error in terminal window.
Figure 2.31
Important:
After pressing run button Arm will only respond to STOP command.
In order to start again, first press Disconnect button on the GUI then press Reset
button of the Robotic Arm. Now press Connect button on the GUI and start using
application.
If GUI is not responding to the commands then restart the GUI and Reset the Robotic
Arm. If it is still not responding then close the GUI, unplug and plug the USB cable and
repeat the same process.
NEX Robotics Pvt. Ltd.
www.nex-robotics.com
28
When you are using Real Time Servo Control you can see the frequent blinking of the
Red LED on the Servo Control Card. If Red LED is not blinking while using Real Time
Servo Control then you have to repeat above steps.
2.6.6 Interpretation of the generated motion profile string
In the exampled covered in the section 2.2.5 following motion profile strings were
generated.
$ 1 5000 # 1 65 20 # 2 60 20 # 3 70 20 # 4 90 20 # 5 90 20 # 6 90 20 # 7 90 20 # 8 90 20 # 9 90 20 # 10 90 20 # 11 90 20 # 12 90 20 # 13
90 20 # 14 90 20 # 15 90 20 # 16 90 20 # 17 90 20 # 18 90 20 # 19 90 20 # 20 90 20 *
$ 2 5000 # 1 65 20 # 2 60 20 # 3 70 20 # 4 70 20 # 5 90 20 # 6 90 20 # 7 90 20 # 8 90 20 # 9 90 20 # 10 90 20 # 11 90 20 # 12 90 20 # 13
90 20 # 14 90 20 # 15 90 20 # 16 90 20 # 17 90 20 # 18 90 20 # 19 90 20 # 20 90 20 *
$ 3 5000 # 1 90 20 # 2 90 20 # 3 90 20 # 4 90 20 # 5 90 20 # 6 90 20 # 7 90 20 # 8 90 20 # 9 90 20 # 10 90 20 # 11 90 20 # 12 90 20 # 13
90 20 # 14 90 20 # 15 90 20 # 16 90 20 # 17 90 20 # 18 90 20 # 19 90 20 # 20 90 20 *
In this set of commands $ represents the beginning of the each string. Number followed
by the $ is string number like $1 or $4 etc.
Followed by this we have number 5000 which is the String Execution Time. It sets the
time interval after which robot will execute the next string. You can change this by
moving the slider bar. It shows the time in milliseconds i.e. 5000 represents 5000
milliseconds or 5 seconds.
Warning: While setting String Execution Time make sure that you give sufficient time
for the execution of the particular motion. If time set is less then robot will simply skip
the current motion and go to next motion. Some times it may result in damage to the
servo motor.
After the String Execution Time we have # 1 65 20. Here # acts as servo motor
separator. First number followed by # represents the servo motor number. After servo
motor number first digits separated by space indicates servo angle which can vary
between 0 to 180 degrees and second set of digits separated by space represents servo
motors velocity in terms of degrees per second. You can set servo motors velocity from
1 to 180 degrees per second.
Each motion profile string is ended by symbol *
2.6.7 Using previously generated commands to play motions
After generating complete motion you can copy it from Motion Profile Editor and paste
it in note pad to save it. Do not copy it to word pad or word document as it may add its
own characters in between.
To use this saved motion profile copy it from the note pad and paste it in the Motion
Profile Editor window. Finally to load this string and execute refer the above section
2.6.4 section
You have to restart GUI and Robot after pressing RAM, ROM or RUN button to
start with new application.
NEX Robotics Pvt. Ltd.
www.nex-robotics.com
29
30