This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:projects:wheeled_robot [2013/03/26 23:15] – external edit 127.0.0.1 | en:projects:wheeled_robot [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Mobile robot platform ====== | ||
| + | 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, | ||
| + | |||
| + | Here we look at the documentation of a typical mobile robot platform project and its different phases. | ||
| + | |||
| + | ===== 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, | ||
| + | * Manipulator | ||
| + | * Radar | ||
| + | * Camera | ||
| + | Robot must be able to move on a flat surface in indoors. | ||
| + | |||
| + | ==== Requirements ==== | ||
| + | |||
| + | * Maximum dimensions: 20 cm x 20 cm x 20 cm | ||
| + | * Maximum weight 2 kg | ||
| + | * Speed max. 0,2 m/s | ||
| + | * Full autonomy | ||
| + | |||
| + | ==== Restrictions ==== | ||
| + | |||
| + | * Must be constructed mainly from HomeLab components | ||
| + | * Cannot exceed the cost limit 10 000 EEK | ||
| + | |||
| + | |||
| + | ===== The overall model of the system | ||
| + | |||
| + | The overall model of the system is presented as a block diagram. It describes the structure, behaviour and other important aspects of the system. As an example, an hierarchical model of the overall system is depicted below. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Design solutions ===== | ||
| + | |||
| + | For this task the team used a brainstorming method and generated 3 conceptually different solutions. Evaluation matrix was compiled and the most optimum construction was found. The main differences of the solutions lay in the movement schemes. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | Simplified evaluation matrix was as following: | ||
| + | |||
| + | ^ Function/ | ||
| + | |Cost | ||
| + | |Complexity of building | 2 | 4 | 7 | 0,7 | | ||
| + | |Maneuverability | 4 | 8 | 8 | 0,5 | | ||
| + | |Permeability | ||
| + | |Applicability of HomeLab | 5 | 4 | 5 | 0,9 | | ||
| + | |Weight | 5 | 6 | 7 | 0,8 | | ||
| + | ^Total (with weight factor) ^ 19^27^ 28^ ^ | ||
| + | |||
| + | Evaluation scale was 1-10 points and weight factor 0-1. Weight factors were chosen according to the requirements and restrictions set for this system. Eg, although solution 2 was significantly more capable moving on rough ground, it wasn't required in the preliminary task and therefore the weight factor was low. | ||
| + | |||
| + | 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. | ||
| + | |||
| + | |||
| + | ===== 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 ribbon cable connections, | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | 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. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Electronics ===== | ||
| + | |||
| + | The electronics of the system is described as a principle scheme and electronic scheme with PCB assembly scheme. | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | As an example, Line following sensors electric scheme and respective PCB assembly scheme of the robot' | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | < | ||
| + | |||
| + | ===== Control system ===== | ||
| + | |||
| + | The control system of the robot derives from behavioral model and is set by the functionality, | ||
| + | |||
| + | ==== Algorithm ==== | ||
| + | |||
| + | Algorithm describes the control logic of the system and is depicted as a block diagram. A few elements and description of their relations is enough to create a simple algorithm. If the algorithm of the robot is composed correctly, then it is relatively easy to compose a control program for this robot. | ||
| + | Mainly two different objects are used in the algorithm: a rectangle with rounded corners, which marks an activity and a small diamond for controlling a condition, followed by a startup of further activities in accordance with the results of the inspection. | ||
| + | |||
| + | Meanings of the symbols used in the algorithm: | ||
| + | |||
| + | ^Symbol^Meaning^0^1^-1^ | ||
| + | |M1|left motor|stop|rotates clockwise|rotates counter-clockwise| | ||
| + | |M2|right motor|stop|rotates clockwise|rotates counter-clockwise| | ||
| + | |F|first middle touch sensor|no signal|signal| | | ||
| + | |FR|first right touch sensor|no signal|signal | | | ||
| + | |FL|first left touch sensor|no signal|signal | | | ||
| + | |d|reference| | | | | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ==== Source code ==== | ||
| + | |||
| + | Simple navigation | ||
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // Defining bumper pins | ||
| + | pin front = PIN(C, 0); | ||
| + | pin frontleft | ||
| + | pin frontright = PIN(C, 2); | ||
| + | |||
| + | // | ||
| + | // Main program | ||
| + | // | ||
| + | int main(void) | ||
| + | { | ||
| + | // Initiating motors 0 and 1 | ||
| + | dcmotor_init(0); | ||
| + | dcmotor_init(1); | ||
| + | |||
| + | // Sensor pins as inputs | ||
| + | pin_setup_input_with_pullup(front); | ||
| + | pin_setup_input_with_pullup(frontleft); | ||
| + | pin_setup_input_with_pullup(frontright); | ||
| + | |||
| + | // Endless cycle | ||
| + | while (true) | ||
| + | { | ||
| + | // Clockwise motor startup | ||
| + | dcmotor_drive(0, | ||
| + | dcmotor_drive(1, | ||
| + | | ||
| + | // Controlling the middle sensor signal | ||
| + | if (pin_get_value(front)) | ||
| + | { | ||
| + | // Reversal of the motors | ||
| + | dcmotor_drive(0, | ||
| + | dcmotor_drive(1, | ||
| + | |||
| + | // Paus 1 second | ||
| + | sw_delay_ms(1000); | ||
| + | |||
| + | // Left motor clockwise startup | ||
| + | dcmotor_drive(0, | ||
| + | |||
| + | // Paus 2 seconds | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | |||
| + | // Controlling the left sensor signal | ||
| + | else if (pin_get_value(frontleft)) | ||
| + | { | ||
| + | // Reversal of right motor | ||
| + | dcmotor_drive(1, | ||
| + | |||
| + | // Paus 2 seconds | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | |||
| + | // Controlling the right sensor signal | ||
| + | else if (pin_get_value(frontright)) | ||
| + | { | ||
| + | // Reversal of left motor | ||
| + | dcmotor_drive(0, | ||
| + | |||
| + | // Paus 2 seconds | ||
| + | sw_delay_ms(2000); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Ready-to-use solution ===== | ||
| + | |||
| + | Robot platform completed under this project is largely made from plastic, except from motor mountings, which are made from aluminum. Electronic modules are placed on top of each other and the battery is loose between the plates. Bumpers are made from PCB and painted black. The top plate of the robot is completely flat, allowing to attach different desired devices. A simple radar was installed on the robot, which consisted of a small RC servo motor and an infra red sensor. As a second solution, intelligent camera module was installed on the platform for solving machine vision problems. Both solutions are brought out on the following pictures. Standard manipulator was tested as a third device, which components are controlled with standard servo motors as well, using serial interface for controlling their actuator. | ||
| + | |||
| + | [{{ : | ||
| + | [{{ : | ||
| + | |||
| + | |||
| + | ===== Economic calculation ===== | ||
| + | |||
| + | Economic calculation includes the cost of components and robot production costs. The currency used in following tables is Estonian Kroon (EEK). | ||
| + | |||
| + | Table of components cost | ||
| + | |||
| + | ^Component^Mark^Quantity^Price^Cost^ | ||
| + | |Motor|M LE149.6.43|2|500.-|1000.-| | ||
| + | |Microcontroller|uC ATmega128|1|900.-|900.-| | ||
| + | |Motors actuator board|Actuator Board v1.2|1|700.-|700.-| | ||
| + | |Power plate|TP|1|500.-|500.-| | ||
| + | |Line following sensors|LFS QRD1114|8|30.-|240.-| | ||
| + | |Touch sensors|TS Microswitch|8|25.-|200.-| | ||
| + | |Hull plate|ABS |4|50.-|200.-| | ||
| + | |PCB blank| |2|50.-|100.-| | ||
| + | |Motor mountings profile|Al-L |2|10.-|20.-| | ||
| + | |Wheel|60/ | ||
| + | |Battery|NI-MH 9,6 V|1|350.-|350.-| | ||
| + | |Different cables| |10|20.-|200.-| | ||
| + | |Nuts-bolts| |1|50.-|50.-| | ||
| + | |Other acsessories| |1|100.-|100.-| | ||
| + | ^ Total ^ ^ ^ ^ 4620.- ^ | ||
| + | |||
| + | Estimated labor and production cost for a single copy. | ||
| + | |||
| + | ^Work^Time (h)^Price^Cost ^ | ||
| + | |Milling construction details|1|300.-|300.-| | ||
| + | |Milling PCBs (bumpers)|0, | ||
| + | |Construction of the robot|0, | ||
| + | |Building bumpers (soldering components)|1|300.-|300.-| | ||
| + | |Programming|5|300.-|1500.-| | ||
| + | |Compiling documentation|3|250.-|750.-| | ||
| + | ^Total^ 11 ^ ^ 3225.- ^ | ||
| + | |||
| + | Estimated cost of the robot **7845.-** | ||
| + | |||
| + | The cost calculation of the robot is estimated, since it is an educational project, where most of the work and construction is done in significantly larger volumes, but without direct charge. Therefore, the work and the approximate time spent does not reflect the real situation. | ||
| + | |||
| + | ===== Project management ===== | ||
| + | |||
| + | Mechatronic system (Robot) is created as a team work with a firm timetable and budget, thus having | ||
| + | |||
| + | [{{ : | ||
| + | |||
| + | ===== Summary and conclusions ===== | ||
| + | |||
| + | Economic calculation showed that the production cost of the robot is quite high, especially when dealing with a single original, but remains within a predetermined initial task. Production costs could certainly be substantially reduced through the optimization of materials and components, and producing a larger quantity of robots at the same time. During this project we learned how to project a mechatronic system, how to construct and test it, which gave us the first time experience of this kind. | ||
| + | |||
| + | At the end of the work a fact revealed: in order for the robot to function properly significantly more time should be planned for testing, especially for the software testing. Different modules may not always work properly together, although as a separate experiment it works. This shows that the integration of the modules of the system is a serious challenge, and therefore more time and resources should be planned for this. | ||
| + | |||
| + | In conclusion, we believe that the project was very interesting and instructive, | ||
| + | |||
| + | ===== References and materials used ===== | ||
| + | |||
| + | - HomeLab generic manual http:// | ||
| + | - ATmega2561 datasheet | ||
| + | - Dudziak, R., Köhn, C., Sell, R., Integrated Systems & Design, TUT Press, 2008 | ||
| + | - Friendenthal, | ||
| + | - Perens, A. Project Management, Külim, 1999 | ||
| + | - Bräunl, T. Embedded Robotics, Springer-Verlag, | ||