Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. Abstract:
  2. Study of Quadruped robots, their gaits, kinematics. As well as yielding the effeciency of the utilization of OOP concepts in order to facilitate the design, debugging and maintaince of code including inheritance, composition relations and others. In addition to the study of image processing and object tracking using RGB filters and gradients, and their applications.
  3.  
  4. Introduction
  5.  
  6.  
  7. The purpose of this C# program is to act as a control and debugging platform for our Quadrupedrobot. With its help we can send instructions to the Arduino powered robot to move certain servo motors and certain legs, move in different directions, rotate, apply different preset configurations and many other functions distributed in various tabs which will be discussed thoroughly.
  8.  
  9.  
  10. Arduino:
  11. The arduino is the main brain of the robot that utilizes the AVR unit to give instructions to the motor as well as parse the signals sent by the robot from the GUI via the SerialPort.
  12.  
  13. It contains the underlying functions of controling the robot that are hidden from the users including their inherent complexities.
  14.  
  15. It includes forward kinematics, inverse kinematics, rotation and gait processing function which is considered the lowest level code that has direct access to the motors.
  16.  
  17. All this data is handled by the GUI to prevent the user from accessing this info, corrupting it, or plagirising it.
  18.  
  19.  
  20. GUI:
  21.  
  22. The GUI consists of several tabs which have the features of the robots control divided among them.
  23.  
  24. -----------
  25. The first tab enables the user to move one leg or all legs according to certain alpha, beta and gamma values chosen by the user. The second tab allows the user to make a whole leg move in the direction of user-given X,Y and Z coordinates.
  26. -----------------
  27. The third tab is important for debugging procedures as it can directly edit the initial angle position of every servo of the robot as it can change the robot movement speed and it can also set the head and tail of the robot by determining which pair of legs are front or back legs.
  28. ------------------
  29. The next tab is a more "user-friendly" interface which resembles a remote controller; it has buttons assigned for moving forwards, backwards, left and right. It also has buttons for re-initialization and rotation both clockwise and anticlockwise.
  30. ---------------
  31. The fifth tab is very important as it increases productivity and decreases time spent by the user. At first, the user had to enter every single instruction one by one for the robot to execute. But now after our serialization system, the user can both save and load files filled with thousands of pre-written instructions and the program will handle them which is better than making the user enter them one by one.
  32. -----------------------------------------
  33. The next tab is important for surveillance purposes. This tab consists of a live video feed from the point of view of our robot. With the help of a webcam, our robot can detect different colours, objects and shapes and act accordingly by either moving towards or away from those objects.
  34. ---------------------------------------------
  35.  
  36. Main Classes
  37. These are the main classes that are considered the backbone of the program and which other smaller classes are inherited from
  38.  
  39. Transmitter class:
  40. --------------------
  41. The arduino has a serial port opened and waiting for incoming commands from our program. The transmitter class is responsible for opening this port from the side of the computer, send user given instructions after parsing them in the approved format then closes the serial port until the user has another instruction to send. These instructions have two types which are accepted by the arduino; either commands that consist of 4 bytes or commands which are just one string, the user has to choose the type manually.
  42.  
  43. The transmitter class has two children which are the String Transmitter and Byte Transmitter and each class has the same functionality of the base transmitter class but adjusted for either bytes or strings.
  44.  
  45. Signal class:
  46. -----------------
  47. After the user enters their desired command, the Signal class rephrases and parses those commands into a format that the arduino can deparse and execute. That format usually begins with "Cxy" where 'C' means command type and "xy" denoting which command to be executed.
  48.  
  49. The signal class has two children as well which are byte signal and string signal classes, each of which parse commands in different manners whether the user's choice was byte or string commands.
  50.  
  51. Controller class:
  52. ------------------
  53. The controller class controls the robot directly.
  54. It utilizes functions such as MoveRobot and RotateRobot and Setup robot which send signals to the arduino in the main robot in order to control it.
  55. It offers an interface for the coder to use without worrying about the underlying details
  56. -----------------------------------------------------------------------------------------
  57.  
  58. Image Processing:
  59. ----------------
  60.  
  61. The image processing part of the GUI is a standalone form to prevent unessecary processing overhead while p
  62.  
  63.  
  64. Motion Tracking:
  65. ---------------------------
  66. We use the RGB image processing filters in order to track a certain object with a certain color only. We can use this tracking of the motion and its position relative to the camera to move the robot to center it with the object for easier following.
  67.  
  68. Using the image tracking feature in the GUI the program makes the robot track the object on screen with the required RGB values so that if it goes left or right it gives the robot commands in order to move it to make the required object almost center
  69. -------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement