Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:projects:wheeled_robot [2010/03/08 13:25] kristiseppaen:projects:wheeled_robot [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 3: Line 3:
 Mobile robot is one of the most popular robot for construction. Very common are sumo robots, sports robots (football, volleyball etc.), robots simulating rescue operations (firefighting, person or object finding etc.) and many other. For these kinds of robots there are many different competitions in the world and in Estonia, even standard classes have been developed (eg sumo robots). The common feature for these types of robots is mobile platform, which may have different construction and capabilities, but its main functionality remains the same. It is controlling the motors and basic navigation, which includes avoiding objects and travelling to the desired destination. Usually, a specific functionality is added to the main functionality, which is planned according to the requirements and opportunities set for the project. Mobile robot is one of the most popular robot for construction. Very common are sumo robots, sports robots (football, volleyball etc.), robots simulating rescue operations (firefighting, person or object finding etc.) and many other. For these kinds of robots there are many different competitions in the world and in Estonia, even standard classes have been developed (eg sumo robots). The common feature for these types of robots is mobile platform, which may have different construction and capabilities, but its main functionality remains the same. It is controlling the motors and basic navigation, which includes avoiding objects and travelling to the desired destination. Usually, a specific functionality is added to the main functionality, which is planned according to the requirements and opportunities set for the project.
  
-Here we look at documentation of a typical mobile robot platform project and its different phases.+Here we look at the documentation of a typical mobile robot platform project and its different phases.
  
-===== Preliminary tasks =====+===== Initial tasks =====
  
 Plan and construct a multifunctional mobile robot platform with basic navigation functionality using HomeLab components. Robot platform must have an easy-to-change operational functionality, when equipped with different gadgets:  Plan and construct a multifunctional mobile robot platform with basic navigation functionality using HomeLab components. Robot platform must have an easy-to-change operational functionality, when equipped with different gadgets: 
Line 25: Line 25:
   * Cannot exceed the cost limit 10 000 EEK   * Cannot exceed the cost limit 10 000 EEK
  
-~~PB~~ 
  
 ===== The overall model of the system  ===== ===== The overall model of the system  =====
Line 38: Line 37:
  
 [{{  :examples:projects:robot:robot_ideekavandid.png?500  |Design solutions}}] [{{  :examples:projects:robot:robot_ideekavandid.png?500  |Design solutions}}]
- 
-~~PB~~ 
  
 Simplified evaluation matrix was as following:  Simplified evaluation matrix was as following: 
Line 47: Line 44:
 |Complexity of building | 2 | 4 | 7 | 0,7 | |Complexity of building | 2 | 4 | 7 | 0,7 |
 |Maneuverability | 4 | 8 | 8 | 0,5 | |Maneuverability | 4 | 8 | 8 | 0,5 |
-|Permeability/läbitavus? | 5 | 8 | 2 | 0,3 |+|Permeability             | 5 | 8 | 2 | 0,3 |
 |Applicability of HomeLab | 5 | 4 | 5 | 0,9 | |Applicability of HomeLab | 5 | 4 | 5 | 0,9 |
 |Weight | 5 | 6 | 7 | 0,8 | |Weight | 5 | 6 | 7 | 0,8 |
Line 56: Line 53:
 Based on the assessment the optimum solution for given task was proved to be a platform moving on two wheels with two separate motors. Further work continued developing the chosen solution into a real system.  Based on the assessment the optimum solution for given task was proved to be a platform moving on two wheels with two separate motors. Further work continued developing the chosen solution into a real system. 
  
-~~PB~~ 
  
 ===== Mechanics ===== ===== Mechanics =====
  
-Mechanics was tried to make as simple as possible, while following the principle of modularity. The front and the rear bumper are identical modules. Electronics have three modules, which are placed on top of each other, allowing simple ribakaabelühendusi, while ensuring relatively simple changeability of modules. Motors have been selected from HomeLab kit: motors with integrated reducer and coder, which are connected directly to the actuator of the motors. Model aircraft wheels have been used, because they are very light and strong enough for the robot. To simplify the construction the bottom and the top plate are identical. Plates are equipped with holes, allowing different devices to be attached on the top plate. Besides the electronic modules a battery fits between the plates as well. +Mechanics was tried to make as simple as possible, while following the principle of modularity. The front and the rear bumper are identical modules. Electronics have three modules, which are placed on top of each other, allowing simple ribbon cable connections, while ensuring relatively simple changeability of modules. Motors have been selected from HomeLab kit: motors with integrated reducer and coder, which are connected directly to the actuator of the motors. Model aircraft wheels have been used, because they are very light and strong enough for the robot. To simplify the construction the bottom and the top plate are identical. Plates are equipped with holes, allowing different devices to be attached on the top plate. Besides the electronic modules a battery fits between the plates as well. 
  
 [{{  :examples:projects:robot:robot_3d.jpg?500  |Primary 3D model of the robot and location of its components. }}] [{{  :examples:projects:robot:robot_3d.jpg?500  |Primary 3D model of the robot and location of its components. }}]
  
-The bumper of the robot is projected separately and it is integrated with touch sensors and tracking sensors. The bumper is made from PCBs and therefore has electricity in addition to construction. Tracking sensors are soldered directly to the bumper of the bottom plate. Touch sensors (micro switches) are placed between the bumper plates and is covered by a single rubber piece at front. The rubber piece absorbs the hit and at the same time enables to identify where the hit came from. +The bumper of the robot is projected separately and it is integrated with touch sensors and line following sensors. The bumper is made from PCBs and therefore has electricity in addition to construction. Line following sensors are soldered directly to the bumper of the bottom plate. Touch sensors (micro switches) are placed between the bumper plates and are covered by a single rubber piece at front. The rubber piece absorbs the hit and at the same time enables to identify where the hit came from. 
  
 [{{  :examples:projects:robot:pamperi_joonis.jpg?500  |Bumper plate drawing}}] [{{  :examples:projects:robot:pamperi_joonis.jpg?500  |Bumper plate drawing}}]
Line 74: Line 70:
 [{{  :examples:projects:robot:robot_electronics.png?500  |Block diagram of electronic components}}] [{{  :examples:projects:robot:robot_electronics.png?500  |Block diagram of electronic components}}]
  
-~~PB~~+<pagebreak>
  
-As an example, tracking sensors electric scheme and respective PCB assembly scheme of the robot's bumper is shown.+As an example, Line following sensors electric scheme and respective PCB assembly scheme of the robot's bumper is shown.
  
 [{{  :examples:projects:robot:robot_pumper_skeem.png?500  |Electric scheme of the bumper sensors}}] [{{  :examples:projects:robot:robot_pumper_skeem.png?500  |Electric scheme of the bumper sensors}}]
Line 82: Line 78:
 [{{  :examples:projects:robot:robot_pumper_pcb.png?500  |Assembly scheme of the bumper}}] [{{  :examples:projects:robot:robot_pumper_pcb.png?500  |Assembly scheme of the bumper}}]
  
-~~PB~~+<pagebreak>
  
 ===== Control system ===== ===== Control system =====
  
-Roboti juhtimine tuleneb süsteemi käitumismudelist ja on määratud lähteülesande funktsionaalsusega ning nõuete ja piirangutegaSüsteemi käitumismudelist luuakse täpsustatud juhtprogrammi algoritmmillest omakorda lähtutakse tarkvara programmikoodi koostamiselKõik kolm taset (käitumismudel-algoritm-lähtekoodpeavad olema omavahel kooskõlas.+The control system of the robot derives from behavioral model and is set by the functionality, requirements and restrictions of the initial taskFrom the behavioral model of the system a specified control program is createdwhich in turn is the basis for software program codeAll three levels (behavioral model-algorithm-source codemust be consistent with each other
  
 ==== Algorithm ==== ==== Algorithm ====
  
-Algoritm kirjeldab süsteemi juhtloogikat ja on esitatud plokkdiagramminaLihtsama algoritmi koostamiseks piisab paarist elemendist ja nendevaheliste seoste kirjeldamisestKui roboti algoritm on koostatud korrektseltsiis on sellest roboti juhtprogrammi juba suhteliselt lihtne koostada.  +Algorithm describes the control logic of the system and is depicted as a block diagramA few elements and description of their relations is enough to create a simple algorithmIf the algorithm of the robot is composed correctlythen it is relatively easy to compose a control program for this robot   
-Algoritmis on kasutatud põhiliselt kahte erinevat objektiümardatud nurkadega ristkülikmis tähistab mingit tegevust ja väike romb mingi tingimuse kontrollimiseksmillele järgneb vastavalt kontrolli tulemusena edasiste tegevuste käivitamine.+Mainly two different objects are used in the algorithma rectangle with rounded cornerswhich marks an activity and a small diamond for controlling a conditionfollowed by a startup of further activities in accordance with the results of the inspection.
  
-Algoritmis kasutatud tähiste tähendused:+Meanings of the symbols used in the algorithm
  
-^Tähis^Tähendus^0^1^-1^ +^Symbol^Meaning^0^1^-1^ 
-|M1|vasak mootor|seisab|pöörleb päripäeva|pöörleb vastupäeva+|M1|left motor|stop|rotates clockwise|rotates counter-clockwise
-|M2|parem mootor|seisab|pöörleb päripäeva|pöörleb vastupäeva+|M2|right motor|stop|rotates clockwise|rotates counter-clockwise
-|F|esimene keskmine puuteandur|signaal puudub|signaal olemas| | +|F|first middle touch sensor|no signal|signal| | 
-|FR|esimene parem puuteandur|signaal puudub|signaal olemas | | +|FR|first right touch sensor|no signal|signal | | 
-|FL|esimene vasak puuteandur|signaal puudub|signaal olemas | | +|FL|first left touch sensor|no signal|signal | | 
-|d|viide| | | |+|d|reference| | | |
  
-[{{  :examples:projects:robot:robot_algoritm.png?500  |Algoritmi olekudiagramm}}]+[{{  :examples:projects:robot:robot_algoritm.png?500  |Algorithm state diagram}}]
  
 ==== Source code  ==== ==== Source code  ====
Line 113: Line 109:
 #include <homelab/delay.h> #include <homelab/delay.h>
  
-// Põrkeandurite viikude defineerimine+// Defining bumper pins
 pin front      = PIN(C, 0); pin front      = PIN(C, 0);
 pin frontleft  = PIN(C, 1); pin frontleft  = PIN(C, 1);
Line 119: Line 115:
  
 // //
-// Mainprogram+// Main program
 // //
 int main(void) int main(void)
 { {
- // Mootorite ja algseadistamine+ // Initiating motors and 
  dcmotor_init(0);  dcmotor_init(0);
  dcmotor_init(1);  dcmotor_init(1);
  
- // Andurite viigud sisendiks+ // Sensor pins as inputs
  pin_setup_input_with_pullup(front);  pin_setup_input_with_pullup(front);
  pin_setup_input_with_pullup(frontleft);  pin_setup_input_with_pullup(frontleft);
  pin_setup_input_with_pullup(frontright);  pin_setup_input_with_pullup(frontright);
  
- // Lõputu tsükkel+ // Endless cycle
  while (true)  while (true)
  {  {
- // Mootorite päripäeva käivitamine+ // Clockwise motor startup 
  dcmotor_drive(0, 1);  dcmotor_drive(0, 1);
  dcmotor_drive(1, 1);  dcmotor_drive(1, 1);
            
- // Keskmise anduri signaali kontroll+ // Controlling the middle sensor signal
  if (pin_get_value(front))  if (pin_get_value(front))
  {  {
- // Mootorite reverseerimine+ // Reversal of the motors
  dcmotor_drive(0, -1);  dcmotor_drive(0, -1);
  dcmotor_drive(1, -1);  dcmotor_drive(1, -1);
  
- // Paus 1 sekund+ // Paus 1 second
  sw_delay_ms(1000);  sw_delay_ms(1000);
  
- // Vasaku mootori päripäeva käivitamine + // Left motor clockwise startup  
  dcmotor_drive(0, 1);  dcmotor_drive(0, 1);
   
Line 156: Line 152:
  }  }
  
- // Vasaku anduri signaali kontroll+ // Controlling the left sensor signal
  else if (pin_get_value(frontleft))  else if (pin_get_value(frontleft))
  {  {
- // Parema mootori reverseerimine+ // Reversal of right motor
  dcmotor_drive(1, -1);  dcmotor_drive(1, -1);
   
Line 166: Line 162:
  }  }
  
- // Parema anduri signaali kontroll+ // Controlling the right sensor signal
  else if (pin_get_value(frontright))  else if (pin_get_value(frontright))
  {  {
- // Vasaku mootori reverseerimine+ // Reversal of left motor 
  dcmotor_drive(0, -1);  dcmotor_drive(0, -1);
   
- // Paus 2 sekundit+ // Paus 2 seconds
  sw_delay_ms(2000);  sw_delay_ms(2000);
  }  }
Line 179: Line 175:
 </code> </code>
  
-~~PB~~+
  
 ===== Ready-to-use solution ===== ===== Ready-to-use solution =====
  
-Projekti raames valminud robotplatvorm on valmistatud üldjoontes plastikustvälja arvatud mootori kinnitusedmis on valmistatud alumiiniumprofiilistElektroonikamoodulid on paigutatud üksteise peale, aku on lahtiselt kahe plaadi vahelPõrkerauad on valmistatud trükkplaadist ja värvitud mustaksRoboti pealmine plaat on täiesti silevõimaldades sinna kinnitada erinevaid soovitud seadmeidProjekti raames paigaldati robotplatvormile lihtne radar, mis koosnes väikesest RC servomootorist ja infrapunaanduristTeise lahendusena paigaldati platvormile intelligentne kaameramoodul masinnägemise ülesannete lahendamiseksMõlemad variandid on näidatud allolevatel piltidelKolmandaks seadmeks katsetati standardmanipulaatoritmille lülisid juhitakse samuti standardsete RC servomootoritegakasutades nende ajuri juhtimiseks jadaliidest+Robot platform completed under this project is largely made from plasticexcept from motor mountingswhich are made from aluminumElectronic modules are placed on top of each other and the battery is loose between the platesBumpers are made from PCB and painted blackThe top plate of the robot is completely flatallowing to attach different desired devicesA simple radar was installed on the robotwhich consisted of a small RC servo motor and an infra red sensorAs a second solution, intelligent camera module was installed on the platform for solving machine vision problemsBoth solutions are brought out on the following picturesStandard manipulator was tested as a third devicewhich components are controlled with standard servo motors as wellusing serial interface for controlling their actuator
  
-[{{  :examples:projects:robot:robot_radar.png?580 |Robot infrapuna radariga}}] +[{{  :examples:projects:robot:robot_radar.png?580 |Robot with infrared radar}}] 
-[{{  :examples:projects:robot:robot_camera.png?580  |Robot intelligentse kaameramooduliga (CMUcam3)}}]+[{{  :examples:projects:robot:robot_camera.png?580  |Robot with intelligent camera module (CMUcam3)}}]
  
-~~PB~~ 
  
 ===== Economic calculation ===== ===== Economic calculation =====
  
-Majanduslik kalkulatsioon hõlmab endas komponentide maksumust ja roboti detailide valmistamise ning koostamise kulusid.+Economic calculation includes the cost of components and robot production costs. The currency used in following tables is Estonian Kroon (EEK).
  
-Komponentide maksumuse tabel+Table of components cost 
  
-^Komponent^Mark^Kogus^Hind^Maksumus+^Component^Mark^Quantity^Price^Cost
-|Mootor|M LE149.6.43|2|500.-|1000.-| +|Motor|M LE149.6.43|2|500.-|1000.-| 
-|Mikrokontroller|uC ATmega128|1|900.-|900.-| +|Microcontroller|uC ATmega128|1|900.-|900.-| 
-|Mootorite juhtplaat|Actuator Board v1.2|1|700.-|700.-| +|Motors actuator board|Actuator Board v1.2|1|700.-|700.-| 
-|Toiteplaat|TP|1|500.-|500.-| +|Power plate|TP|1|500.-|500.-| 
-|Joonejälgimise andurid|LFS QRD1114|8|30.-|240.-| +|Line following sensors|LFS QRD1114|8|30.-|240.-| 
-|Puuteandurid|TS Microswitch|8|25.-|200.-| +|Touch sensors|TS Microswitch|8|25.-|200.-| 
-|Kere plaat|ABS |4|50.-|200.-| +|Hull plate|ABS |4|50.-|200.-| 
-|Trükiplaadi toorik| |2|50.-|100.-| +|PCB blank| |2|50.-|100.-| 
-|Mootorikinnituse profiil|Al-L |2|10.-|20.-| +|Motor mountings profile|Al-L |2|10.-|20.-| 
-|Ratas|60/10 mm |2|30.-|60.-| +|Wheel|60/10 mm |2|30.-|60.-| 
-|Aku|NI-MH 9,6 V|1|350.-|350.-| +|Battery|NI-MH 9,6 V|1|350.-|350.-| 
-|Erinevad kaablid| |10|20.-|200.-| +|Different cables| |10|20.-|200.-| 
-|Mutrid-poldid| |1|50.-|50.-| +|Nuts-bolts| |1|50.-|50.-| 
-|Muud tarvikud| |1|100.-|100.-|+|Other acsessories| |1|100.-|100.-|
 ^ Total  ^ ^ ^ ^ 4620.- ^ ^ Total  ^ ^ ^ ^ 4620.- ^
  
-Hinnanguline tööjõu- ja tootmiskulu üksikeksemplari korral.+Estimated labor and production cost for a single copy
  
-^Töö^Aeg (h)^Hind^Maksumus+^Work^Time (h)^Price^Cost ^  
-|Konstruktsioonidetailide freesimine|1|300.-|300.-| +|Milling construction details|1|300.-|300.-| 
-|Trükiplaatide (põrkerauadfreesimine|0,5|500.-|250.-| +|Milling PCBs (bumpers)|0,5|500.-|250.-| 
-|Roboti konstruktsiooni koostamine|0,5|250.-|125.-| +|Construction of the robot|0,5|250.-|125.-| 
-|Põrkeraudade koostamine (komponentide jootmine)|1|300.-|300.-| +|Building bumpers (soldering components)|1|300.-|300.-| 
-|Programmeerimine|5|300.-|1500.-| +|Programming|5|300.-|1500.-| 
-|Dokumentatsiooni koostamine|3|250.-|750.-| +|Compiling documentation|3|250.-|750.-| 
-^Kokku^ 11 ^ ^ 3225.- ^+^Total^ 11 ^ ^ 3225.- ^
  
-Roboti hinnanguline maksumus kokku **7845.-**+Estimated cost of the robot **7845.-**
  
-Arvutatud roboti maksumus on siiski hinnangulinekuna tegemist on õppeotstarbelise projektigakus enamik tööd ja koostamist on tehtud oluliselt suuremas mahuskuid otsese rahalise tasutaSeetõttu on töö- ja ajakulu ligikaudne ja ei kajasta tegelikku olukorda.+The cost calculation of the robot is estimatedsince it is an educational projectwhere most of the work and construction is done in significantly larger volumesbut without direct chargeTherefore, the work and the approximate time spent does not reflect the real situation.
  
 ===== Project management ===== ===== Project management =====
  
-Mehhatroonikasüsteem (Robot) on loodud meeskonnatööna ja kindla ajakava ning eelarvegaomades seega enamuse olulisi projekti tunnuseidProjektijuhtimise seisukohalt olid olulised tegevusedaja planeeriminemeeskonnatöö planeerimine ja juhtimineeelarve jälgimine ja vahendite hankiminejooksev aruandlus juhendajalelõpptulemuse presentatsioon ja dokumenteerimineProjekti aruandele lisatakse töögruppide koosolekute protokollidprojekti plaan (soovitavalt Gantti diagrammina), ressursijaotus (k.a. inimressurssja planeeritud ning tegelik eelarveNäiteks on toodud lihtne tegevuste plaan Gantti diagrammina.+Mechatronic system (Robot) is created as a team work with a firm timetable and budgetthus having  most of the significant features of a projectThe key activities of the project management weretime planningteam work planning and managementbudget monitoring and obtaining suppliescurrent reporting to the supervisorpresentation and documentation of the outcomeThe project report includes working groups minutes of meetingsproject plan (preferably in a Gantt diagram), resource allocation (including human resources), planned and actual budgetFor example a simple action plan is given as a Gantt diagram.
  
-[{{  :examples:projects:robot:roboti_projekt_gantt.gif?580  |Projekti tegevusdiagramm}}]+[{{  :examples:projects:robot:roboti_projekt_gantt.gif?580  |Action diagram of a project}}]
  
 ===== Summary and conclusions ===== ===== Summary and conclusions =====
  
-Majanduslik kalkulatsioon näitas meileet roboti tootmishind on üsna kõrgeeriti kui tegemist on ainueksemplariga, kuid jäi siiski lähteülesandes etteantud piiridesseTootmise hinda saaks kindlasti oluliselt alandadaoptimeerides komponentide ja materjalikulu ning tootes korraga suurema koguse roboteidProjekti käigus tutvusime mehhatroonikasüsteemi projekteerimisevalmistamise ja testimisegamis andis meile esmakordse sellelaadse kogemuse.+Economic calculation showed that the production cost of the robot is quite highespecially when dealing with a single originalbut remains within a predetermined initial taskProduction costs could certainly be substantially reduced through the optimization of materials and componentsand producing a larger quantity of robots at the same timeDuring this project we learned how to project a mechatronic systemhow to construct and test itwhich gave us the first time experience of this kind
  
-Töö lõpus selgus tõsiasiet roboti korralikuks töötamiseks on vaja oluliselt rohkem aega planeerida testimisele, seda eriti tarkvara osasErinevad moodulid ei pruugi alati koos korrektselt töötadakuigi eraldi katsetades oli kõik korrasSee näitabet süsteemi moodulite integreerimine on tõsine väljakutse ja selleks tuleb planeerida oluliselt rohkem aega ja ressurssi.+At the end of the work a fact revealed: in order for the robot to function properly significantly more time should be planned for testingespecially for the software testingDifferent modules may not always work properly togetheralthough as a separate experiment it worksThis shows that the integration of the modules of the system is a serious challengeand therefore more time and resources should be planned for this
  
-Kokkuvõteks arvameet projekt oli väga huvitav ja hariv ning andis aimu integreeritud süsteemide projekteerimisest ja valmistamisest.+In conclusionwe believe that the project was very interesting and instructive, it gave an indication how to design and construct integrated systems
  
 ===== References and materials used ===== ===== References and materials used =====
  
-  - Home Lab generic manual http://home.roboticlab.eu +  - HomeLab generic manual http://home.roboticlab.eu 
-  - ATmega128 datasheet+  - ATmega2561 datasheet
   - Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008   - Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008
   - Friendenthal, S., Moore, A., Steiner, A., A Practical Guide to SysML, Elsevier, 2008   - Friendenthal, S., Moore, A., Steiner, A., A Practical Guide to SysML, Elsevier, 2008
   - Perens, A. Project Management, Külim, 1999   - Perens, A. Project Management, Külim, 1999
   - Bräunl, T. Embedded Robotics, Springer-Verlag, 2003   - Bräunl, T. Embedded Robotics, Springer-Verlag, 2003
en/projects/wheeled_robot.1268054723.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0