
INTRODUCTION
The aim of this project was to design and build a 4WD differential drive rover with integrated robotic arm capable of autonomousoperation with obstacle avoidance and object detection. Also designed to have a manual override teleoperated mode for wireless remote manipulation using a graphical user interface on a PC for both rover as well as arm control.
3D DESIGN & MODELING
Below are the 3D CAD models of various components of the robot designed in Solidworks.
The aim of this project was to design and build a 4WD differential drive rover with integrated robotic arm capable of autonomousoperation with obstacle avoidance and object detection. Also designed to have a manual override teleoperated mode for wireless remote manipulation using a graphical user interface on a PC for both rover as well as arm control.
3D DESIGN & MODELING
Below are the 3D CAD models of various components of the robot designed in Solidworks.








SOFTWARE & HARDWARE OVERVIEW
The graphical user interface for remote operation was created inVisual Basic 6. Initial concept for software control of rover and arm required knowledge of inverse kinematics for precision real-time control of the arm. Below are sketches of initial conceptualization.
The graphical user interface for remote operation was created inVisual Basic 6. Initial concept for software control of rover and arm required knowledge of inverse kinematics for precision real-time control of the arm. Below are sketches of initial conceptualization.




These concepts were incorporated into software and tested on servos that would later be part of the robotic arm. I decided on the Pololu Micro Serial Servo Controller that accepts serial data using RS232 protocol and can drive up to 8 servos. After some mathematical calculation involving arm lengths, weights and torque requirements, I selected Hitec HS-805BB and HS-755HB servos.
Images below shows servo data calibration and inverse kinematic equations that I derived:




Below is the Sabertooth 2x10 motor controller.

Both the motor controller and servo controller slave devices are driven by a master PIC16F877A microcontroller. In manual control override mode, the PIC communicates with the software on a PC via a bidirectional wireless UART link and receives instructions that drives both controllers as well as other devices like LEDs & sensors as well as transmits data from sensors back to the software.
ROBOT TELE-CONTROL APPLICATION


I developed the software in VB6 with the purpose of implementing real-time control of the rover and arm without the need for writing down scripts for pre-planning the robot's movements. The graphical user interface is divided into 4 quadrants. The top-left quadrant shows the graphical position of the robotic arm. The arm itself is made of 4 segments including wrist & gripper. The user can drag the end-effector to any location (Xp, Yp) in cartesian space with base of the arm at (0,0) and the software calculates the angles of A, B and C using inverse kinematic equations. The user can also move each arm segment independently without moving the other segments. Alternatively, each angle can be changed by directly editing the angle in the appropriate text box and using forward kinematics, the end-effector position (X, Y) is computed.
The top right quadrant has controls for the rover. Basic controls for the differential drive are forwards, backwards, turn right, turn left and rotate either side. The navigation frame in the sidebar shows the speed of the rover as a percentage of full speed. Other controls on the rover like, wrist rotation, gripper controls and various LED lights can also be controlled from here.
The bottom left quadrant displays options for the infrared sensor.Scan180 option sweeps the sensor 180 degrees and displays the result graphically like a radar. The Follow Target option locks the rover onto a moving object in front of it and follows it while maintaining its distance.

Other software features include, graphical enhancements like grid (Polar and Cartesian), arm segment loci, inside and outside borders for the arm, ability to create macros, scripts, real-time battery power and wireless signal strength indicators.
When the wireless link is enabled from the application, any changes in rover or arm positions are transmitted to the robot in real-time. If sensor is enabled, the software requests the robot to send current sensor data. The progress bars for the signal strength and battery voltage indicator are also periodically updated.
ELECTRONICS AND CIRCUIT DESIGN
Figuure below shows the block diagram of the electronics involved:








4.000 MHz / 9600baud = 416.6666... (not an integer)
For serial communications, selecting a crystal frequency which is exactly divisible by standard baud rates, is very important. Using the wrong crystal results in loss of data which results in unsatisfactory performance in teleoperated mode. In my case, I decided to use18.432 MHz.
18.432 MHz / 9600 = 1920 (an integer)

PROTOTYPE DEMONSTRATION
Slideshow of ongoing autonomous rover prototype with integrated robotic arm.My robotic arm being controlled manually from a graphical user interface (GUI) application that I developed in VB6.Earlier 3D model and simulation of the robot arm (Concept stage).
Click photo to go to a Robotics Project
Original Teleoperated Robot With 5 DOF Arm

Current Robotics Project: Snow (work in progress)
ReplyDeleteHi, please VB6 source-codes Robots?
thanks
flaviohsilva007@gmail.com