furo_programming
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
furo_programming [2017/06/11 22:19] – acater | furo_programming [2017/07/15 12:53] (current) – acater | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Programming Structure for Furo Using Qt Creator ====== | ====== Programming Structure for Furo Using Qt Creator ====== | ||
\\ | \\ | ||
- | **Author: | + | **Author: |
+ | \\ | ||
**Keywords: | **Keywords: | ||
\\ | \\ | ||
\\ | \\ | ||
+ | The project files are zipped here: | ||
+ | {{:: | ||
+ | \\ | ||
+ | **Note:** These files may be updated and changed in the future. | ||
+ | \\ | ||
+ | |||
+ | ====== Motivation and Audience ====== | ||
+ | \\ | ||
+ | This tutorial' | ||
+ | |||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
====== Requirements ====== | ====== Requirements ====== | ||
\\ | \\ | ||
- | 1) Experience or familiarity of the C++ programming language\\ | + | 1) Qt creator version 5.4 or higher - [[https:// |
- | 2) Experience within a Qt environment is not required but is recommended.\\ | + | 2) Experience or familiarity of the C++ programming language\\ |
- | 3) The Furo service robot.\\ | + | 3) Experience within a Qt environment is not required but is recommended.\\ |
+ | 4) The Furo service robot. | ||
+ | \\ | ||
+ | \\ | ||
+ | ====== Programming Structure ====== | ||
+ | **Note:** This is a general structure for Furo's programming. The project files may be updated in the future to include different header and .cpp files or have some removed. This version was ran on Qt 5.4 on Furo's Windows 7 32-bit Embedded boot (Furo is dual booted with Windows 32-bit Embedded and Ubuntu 32-bit). | ||
+ | {{ : | ||
+ | Open the Qt project for Furo and on the left hand side you will have a menu like the one above which has all the files that are included in the project. | ||
+ | \\ | ||
+ | \\ | ||
+ | Below is a structural flow diagram that shows how the entire project works together. | ||
+ | {{ :: | ||
+ | First, let's take a look at the outer box which is our .pro file. This file ties all of our other files together and includes all the external libraries used (OpenCV for example). | ||
+ | \\ | ||
+ | \\ | ||
+ | Next, the main file. This file is rather simple since all it does is call upon the QApplication function and display our mainwindow (GUI). | ||
+ | \\ | ||
+ | \\ | ||
+ | Moving forward brings us to the mainwindow file. Notice it works hand in hand with the our form file (mainwindow.ui) which defines all of our push buttons in the GUI. Clicking on the mainwindow.ui file will allow us to graphically edit our GUI. We can drag and drop pushbottons, | ||
+ | \\ | ||
+ | \\ | ||
+ | Next, the FuroRobot source file. If at any point the mainwindow functions need to directly interact with Furo they will need to be passed through to functions in the FuroRobot source file. These interactions are generally communications with the motors to make Furo move. The functions from mainwindow will call on the Furo object and pass parameters to it's functions to make it do what we need to do. The most common function in the FuroRobot file is the update() function which has a velocity (float value) for each wheel passed. | ||
+ | \\ | ||
+ | \\ | ||
+ | Finally, the FuroMotorController. | ||
+ | \\ | ||
\\ | \\ | ||
- | | + | ====== Conclusions ====== |
+ | This tutorial discussed the overall structure of Furo's project files using the Qt creator IDE. It showed which source files interact with other source files and what type of functions they contain as well. Future tutorials will go over the coding functions in greater detail (such as line following and object tracking) and will discuss the algorithms, functions, libraries, capabilities and improvements needed for each. | ||
furo_programming.1497244797.txt.gz · Last modified: 2017/06/11 22:19 by acater