Mission template software: Difference between revisions
Line 54: | Line 54: | ||
====Software documentation (doxygen)==== | ====Software documentation (doxygen)==== | ||
[[File: | [[File:inherit_graph_2.png | 100px]] | ||
generated with doxygen http://aut.elektro.dtu.dk/robobot/doc/html/classes.html | generated with doxygen http://aut.elektro.dtu.dk/robobot/doc/html/classes.html |
Revision as of 12:59, 10 March 2019
ROBOBOT mission demo C++
This is an example software in C++ to access both raspberry camera and REGBOT, and with an example mission controlled from the raspberry.
Get the ROBOBOT software from the svn repository:
svn checkout svn://repos.gbar.dtu.dk/jcan/regbot/mission mission
or just update if there already
svn up
To be able to compile the demo software CMAKE needs also to use the user installed library (raspicam installed above), so add the following line to ~/.bashrc:
export CMAKE_PREFIX_PATH=/usr/local/lib
Then build Makefiles and compile:
cd ~/mission mkdir -p build cd build cmake .. make
Then test-run the application:
./mission
It should print that the camera is open and connected to the robot (bidge).
Software structure
The software is structures as shown in figure 1 below.
Figure 1. The example mission software intended as basis for full mission control. In the main.cpp file, three objects are created: bridge (UBridge reg(127.0.0.1)), camera (UCamera cam()) and mission (UMission mission(®, &cam)). The bridge handles communication and stores all data from the robot and the gamepad. The camera can capture images and image processing is intended here. The mission object is intended for splitting long missions into mission snippets that the REGBOT can execute.
The mission class has access to robot data and the camera at all times using the pointers "bot->" and "cam->". e.g. the heading (relative to the start position) and if the yellow gamepad button is pressed, can be fetched as:
float heading = bot->pose->h; bool yellowButton = bot->joy->button[3];
Details about the data code may be found in the upose.cpp, uinfo.cpp, ujoy.cpp, umotor.cpp ... files.
The sound system can be used for debugging, e.g. add a C++ line like:
system("espeak \"bettina reached point 3\" -ven+f4 -a30 -s130");
This line makes the robot say "bettina reached point 3" the parameters "-a30" turns amplitude down to 30%, "-ven+f4" sets language to english with female voice 4 and "-s130" makes the speech a little slower and easier to understand. It requires that espeak is installed (sudo apt install espeak).
Software documentation (doxygen)
generated with doxygen http://aut.elektro.dtu.dk/robobot/doc/html/classes.html