Test: Difference between revisions

From Distributed Autonomous and Networked Control Lab
Jump to navigation Jump to search
Pfuhing (talk | contribs)
No edit summary
Pfuhing (talk | contribs)
Replacing page with 'test'
 
Line 1: Line 1:
 
test
<span>RADA Reserarch Code Base </span><br />
 
 
<br />
 
 
<br />
 
 
= Class Index =
 
== Class List ==
 
Here are the classes, structs, unions and interfaces with brief descriptions:
 
= File Index =
 
== File List ==
 
Here is a list of all files with brief descriptions:
 
= Class Documentation =
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double STATES_C
 
double STATES_C
 
double STATES_CSTATES_C
 
double STATES_CINPUTS_C
 
double OUTPUTS_CSTATES_C
 
double OUTPUTS_CINPUTS_C
 
double OUTPUTS_C
 
double INPUTS_C
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structCTRLSS_a99323b1af830e7170af3eb72aa41d8b3] [structCTRLSS_a751b08ff03f811cd299a275d64a1776a] [structCTRLSS_a3ea95aceed6524af85a73066285a25bd] [structCTRLSS_a01a7190f80d6033577efa0caf702a9de] [structCTRLSS_a3ddf713d4d6a47c452bb2c4f36601720] [structCTRLSS_acc76fcf689629f6d35cb37ef7274421d] [structCTRLSS_a029e4fe6ce170bcb874a0514af186198] [structCTRLSS_a6ce9144e59b5a087b8014e1f58df8292] [structCTRLSS_aea6bc624a0ebf341819b39020909dd04] [structCTRLSS_aab84633e6cc98bb274a137e0dbe0632e] [structCTRLSS_ad0c4dfb12c67eb1eebbe9ecb33ea81c7] [structCTRLSS_a2d457a9fd6b55eb5a445c2dc98ddd7d4] [structCTRLSS_a014cd2f9819f50a41b6a0e685f99be06] [structCTRLSS_a1dd57a341230062f91ffde1ac18f75d4] [structCTRLSS_ad22a1976dcc9969f365d01e0ef0a617e]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double STATES_C_LOSS
 
double STATES_C_LOSS
 
double OUTPUTS_C_LOSS
 
double INPUT2_C_LOSS
 
double OUT1_C_LOSS
 
double INPUT2_C_LOSS
 
double INPUTS_C_LOSS
 
double OUT1_C_LOSS
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structCTRLSS__loss_a904658b1581cfaf90efcef9cf0f5d48c] [structCTRLSS__loss_ac523ba7a0ee64b1618fdf9346e25bbd0] [structCTRLSS__loss_aad426c6e52a67fc40855671347b0872c] [structCTRLSS__loss_af3504df76d7647c9557e0382cdd5af03] [structCTRLSS__loss_ad9c1f4d4229875c7a8757134e3262f1a] [structCTRLSS__loss_a3306c7c3457a90cfd8913969acd07489] [structCTRLSS__loss_ab6a6d80b9d3bf0609025c2773a03aa6a] [structCTRLSS__loss_a94b30d3d55be796a780f1b7f6ff5d4fd] [structCTRLSS__loss_acfcc19f41c9e4d6ad41763780df431fe] [structCTRLSS__loss_a68ad7dacfd6564154b0ababc73adadb8] [structCTRLSS__loss_a2477cdabb56e7b05643566b0bf54a681] [structCTRLSS__loss_aec54a6d6e7de19b0025d9b5ba71302e8] [structCTRLSS__loss_a2241843bf580dae1221eca4bc7391094] [structCTRLSS__loss_a522a79b355319b1d7f76787ee267d049] [structCTRLSS__loss_a65d0a6c66bb0149fade8a9253cde83af]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
double
 
double
 
double
 
double
 
double
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
float
 
short
 
long
 
float
 
short
 
long
 
float
 
short
 
long
 
float
 
short
 
long
 
float
 
int
 
int
 
struct
 
struct
 
=== Member Data Documentation ===
 
[structERIS_a594f58e4b65b38fdaab0f83bb7bc8293] [structERIS_affb5711d1d76fd40c46d868b5f6927aa] [structERIS_ad945a9871aa3ed47039939d88f9b2299] [structERIS_a4c8be3873d1d6d36d2adebb5583691fb] [structERIS_a112c7b15e1c3b9e357f7efd450311e8c] [structERIS_a85a4abeca56252fabbf184cb3322a7d6] [structERIS_a9928bd6601057058bc98f0f1eb872292] [structERIS_a869ad31293ee6b745995e7ffe1e6a0f3] [structERIS_ad9b624848a4ec324a96976aa405b045b] [structERIS_a7be16859eb75730aaf5ea03730eeff89] [structERIS_a9fb27e63c72b45f039b459c121057750] [structERIS_a9d0eab06fbf935d7ce8a07ec9f6abda8] [structERIS_a455b48179fcb3643a44977f21ef2bf92] [structERIS_a9d884151e04cd0868cb6bb12cec77add] [structERIS_aaefa4f638c81e80f8b0cfb61a9730566] [structERIS_a63236f07dd96e08e0771f229d100eeeb] [structERIS_aef28562d61240755434169358ea97368] [structERIS_afec79f417cb04b2dcfb9c56a63736014] [structERIS_ae418f284e890ee3c7e0c15df949395c2] [structERIS_ab5d12b6188aa05281c30d1c13d618f4b] [structERIS_a92dc86b172980adc160aeb94a7e27f8d] [structERIS_ad87f4be8f56b23c4e94c5d65c5db2384] [structERIS_a28f58b5c3dd3b40b010ac65650e5eeeb] [structERIS_a04871634308c93a163323a16bbb3b874] [structERIS_a2605317a4567b84182bd96e85af624b5] [structERIS_aa4385dd53171d645bc011c84b5087244] [structERIS_ac372ad4cb17b18d0d3e2ce7bfe970fbc] [structERIS_aa2b057d6e96bd5f4ac3761d9e38689e6] [structERIS_af0200895dba3547c9ea882142cde9197] [structERIS_a816bef39acccbe0732a634827f00091d] [structERIS_a5a7dde7e5ee1b5e68dac70b3a09be745] [structERIS_a15b49effc03c39587df29a16b694242d] [structERIS_a781bf4cc6d4a8af62c7a391c16880979] [structERIS_a1e1caaacbead60ba2bdea30dff17e941] [structERIS_a9cbd69c7ad62832ffd8dcbe255f83d1d] [structERIS_ad0b4447c7045d936f229aee0941c359b] [structERIS_a6c5dbc5227880cb78f6e65c16060f4cb] [structERIS_a5e2e564b7b9cedf1072eafb786890a02] [structERIS_a7ec6d729be463c37f202f6e7a432cbac] [structERIS_a92b52d91f51bf4f211261dc41febaa37] [structERIS_aa56379b46025b8686dd12c0bd8b7145e] [structERIS_a33574ef5cfbce10c10eb83989c176e5f] [structERIS_a52a15839c5ff34a1ddb55730850e93e1] [structERIS_a304ff39c8ab4196a475377baf82f932f]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double 7
 
double 7
 
double 6
 
double 3
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structERIS__LQG_a8806d631415884c9d64f2d3e518dddde] [structERIS__LQG_ac21c150b49c2fff2adfb0e5057fcc2ab] [structERIS__LQG_a498c5ca3fc85ce54403bef61cf41c875] [structERIS__LQG_a4d7694c9811f751f00f26e4fe43a9cbe] [structERIS__LQG_af6e2db69256e4c6d1502a14e21cb835e] [structERIS__LQG_ac137a0205e4f5816eb7b03d860199165] [structERIS__LQG_ad13d5c23aeb1a3c23b186db27724ef3c]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
float
 
float
 
float
 
float
 
float
 
=== Member Data Documentation ===
 
[structfilter_a09a899b4383ada744678070d267949fb] [structfilter_a1b76e61c6be0159b055e6e653d12e464] [structfilter_aab2e9732f6e1fd3a570996479328a124] [structfilter_ae0db9676750bedeb2e90d845a6e7ebfe] [structfilter_ae9cc7c8691d84414aaf60252fe5a52ec]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>key_bindings.h<math>></math></span>
 
=== Static Public Attributes ===
 
static const char = ’v’
 
static const char = ’b’
 
static const char = ’n’
 
static const char = ’2’
 
static const char = ’m’
 
static const char = 27
 
static const char = ’w’
 
static const char = ’s’
 
static const char = ’d’
 
static const char = ’a’
 
static const char = ’p’
 
static const char = ’y’
 
static const char = ’t’
 
static const char = ’i’
 
static const char = ’u’
 
static const char = ’e’
 
static const char = ’q’
 
static const char = ’7’
 
static const char = ’4’
 
static const char = ’8’
 
static const char = ’5’
 
static const char = ’7’
 
static const char = ’4’
 
static const char = ’8’
 
static const char = ’5’
 
static const char = ’9’
 
static const char = ’6’
 
static const char = ’i’
 
static const char = ’k’
 
static const char = ’o’
 
static const char = ’l’
 
static const char = ’1’
 
static const char = ’3’
 
=== Member Data Documentation ===
 
[classKeyBindings_aef90171b20d79ebc257f170181eaf890] [classKeyBindings_a58695bbfce90d6ffc0a84196d89b9960] [classKeyBindings_af826ec5e2054b40f1deb054e64ca0529] [classKeyBindings_a47c5ee2c44867d20c24f762d36e97f59] [classKeyBindings_aebaae84b4f4db7abdae29caaea528e8b] [classKeyBindings_a06d10f62d58db35f26c4e29f3465f657] [classKeyBindings_a5fd4a7111057bea6e2aa3514ca7e49d4] [classKeyBindings_aa221252e7c8c7dfbd6bf52cec6ff9efa] [classKeyBindings_a3536a06efd932f9f83c7b1401e62ac74] [classKeyBindings_a528caa743573e714305d2f326cdae482] [classKeyBindings_a0601b0f2f1c994b385ef9ff19b445541] [classKeyBindings_a3c4bb88bba2ea8f911fee2ec3e94b621] [classKeyBindings_a65d61f86eb4cce6c226c3a6d5040a5ce] [classKeyBindings_a94d0f20713e0122528f111ac6384a10a] [classKeyBindings_a6a8577243dd58679a919601817459a3d] [classKeyBindings_ac2ab34fa8f84c3e61dd691c85d4d6a9d] [classKeyBindings_ab5de5431af2bbec9beed76240b8e7210] [classKeyBindings_a2bde3f4c440aed4f1ec8004554c8bb6e] [classKeyBindings_a9406856a5b5bb0e59b65d9389abe1229] [classKeyBindings_a83941cf8641d93aa0792519298ea0119] [classKeyBindings_af5a66599d1eb2a203db566ce95f6d667] [classKeyBindings_a0f328dc9694c01262ca88aeaedcbe365] [classKeyBindings_a068e0ae5f38a66b981aa94f6f36db7b5] [classKeyBindings_a947cefad7da0002ef80f31c1bab4e25e] [classKeyBindings_af237d7d82eacdf495b9b9df6d7d1c19d] [classKeyBindings_aedde92ca55442a92af50c0732697cf8f] [classKeyBindings_adf03756ecc709d0f5b73f3b6e162bbda] [classKeyBindings_a126181719b0381e792f0aa3886654698] [classKeyBindings_ab98a06f6baa445e56e6b662adf2f5e54] [classKeyBindings_a118fbfad6a18c2b32204277077f77f67] [classKeyBindings_acff79176396fc2c9c65713c08d0cb36f] [classKeyBindings_a13ccf108959855740a39ee977984b09c] [classKeyBindings_a2cbbf6deb2943cff3496b6da55752c71]
 
The documentation for this class was generated from the following file:
 
<span>#include <math><</math>logger.h<math>></math></span>
 
=== Public Member Functions ===
 
<span>'''Logger Object Removal'''</span>
 
''[_amgrpef40c65612bb88d1b1d4e0d91e727cc2] Deleets logger object.''
 
Removes the logger object by freeing the resouces used by the object.
 
()
 
<span>'''Initialize Logger'''</span>
 
''[_amgrp3996112c3a768bbd5ae89716a6094e6a] Initialize te logger instance.''
 
Initializes the data logging by creating the log files. This is called during initialization.
 
<span>Returns</span> true if the log file s open false if the log file is closed
 
bool ()
 
=== Static Public Member Functions ===
 
<span>'''Logger Instance'''</span>
 
''[_amgrp90163ef8e72e8956084b6b4bd9b35af6] Gets the logger instance.''
 
Gets the singleton logger obect
 
<span>Returns</span> The logger object
 
static <math>\ast</math> ()
 
=== Private Member Functions ===
 
<span>'''Logger Object'''</span>
 
''[_amgrp79673e6bbe5de34f023f632dc03e3db4] Creates logger object.''
 
Creates a default object. It is private to prevent someone from destroying the current instance.
 
()
 
<span>'''Write Logger Header'''</span>
 
''[_amgrped625226a046a655e3d77605a871ab56] Writes the headder of the log data.''
 
Writes the pid constants to the top of the log file. Writes the column titles and units to the top of the log file.
 
void ()
 
=== Static Private Attributes ===
 
static <math>\ast</math> = 0
 
=== Stop Logging ===
 
Closes the log file.
 
Closes the log file.
 
std::fstream
 
bool
 
bool
 
bool
 
bool
 
bool
 
bool
 
bool
 
bool
 
bool
 
bool
 
<math>\ast</math>
 
<math>\ast</math>
 
<math>\ast</math>
 
void ()
 
void ()
 
=== Constructor &amp; Destructor Documentation ===
 
[classLogger_abc41bfb031d896170c7675fa96a6b30c] [classLogger_acb668a9e186a25fbaad2e4af6d1ed00a]
 
=== Member Function Documentation ===
 
[classLogger_a1287de14553cab2d7fddb74a015cef63] [classLogger_a4a2c28f7530b31a50684bee08c30c30e] [classLogger_a05311a9baf7b23ac45f0fa1a6ce1bea2] Writes a line to the log file. This is called whenever we need to log something into the file [classLogger_a52afa60704b98d0b206fd8bc978d2b0e] [classLogger_a680ecd9a68a45c4203a7b0c03f45e74f]
 
=== Member Data Documentation ===
 
[classLogger_a3477ad7e31f05db92807692445a2670d] [classLogger_a0fbc31b87c926c9ecf885b0f1675b1fe] [classLogger_ab18889d6fdbe2e2df34fc5f1f9c8bb02] [classLogger_a1f27181977abeeaebe319e1b18fe4b6a] [classLogger_acaa5b8f112473512838b557124e199c9] [classLogger_a9cef2ee3fe1f8c107ad07399ab4dff4a] [classLogger_af7d961fb7fb4b33bf589133ce84261f0] [classLogger_af8be280252ca544b1c2456084ce734aa] [classLogger_ad33727570915401a4960afcb4fcc0116] [classLogger_a06cf172509e2448b2a2c03fd9a20cd0d] [classLogger_ae133c211974fcb334209f997e770d56d] [classLogger_a0fcdcc99336a9fd24fc5d24039ef5393] [classLogger_a88d258aef340bd59cc36b66ab392b420] [classLogger_ad61e110daff94c8c3d5d2c94afbc7322] [classLogger_a3537680ba9f19fe19e98193a60014406]
 
The documentation for this class was generated from the following files:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
int
 
int
 
int
 
int
 
=== Member Data Documentation ===
 
[structmotor__control__manual__t_a8597d7c041893e079504242ac0b08c29] [structmotor__control__manual__t_aa7380bb84a6a6fee523aca85b5829c6e] [structmotor__control__manual__t_a72fcf12d4d5eca4ddb5ce536a27d1e18] [structmotor__control__manual__t_ae51a611a6ae54a081226f5960f55881a]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
int
 
int
 
int
 
=== Member Data Documentation ===
 
[structmotor__control__speed__t_ac869c864bab0a829fdb6e4979b5423d4] [structmotor__control__speed__t_abe11c48ec856b2c22d3874040743d1f5] [structmotor__control__speed__t_a17c66d80537c25ba0f0b91ee29aa441d]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
int
 
char
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
int
 
=== Member Data Documentation ===
 
[structmotor__t_a8c4107c79b1e8be0bb867acb43f24dc2] [structmotor__t_ad10cf8ef2464c3948b63692c638220ac] [structmotor__t_a2da217bcba52c9f7730f547ce7b2f954] [structmotor__t_ab04b0231cc3d35441b9a550f6b709f37] [structmotor__t_aabc2e81419bf510dca8acdd9fdfb5fee] [structmotor__t_aa9d803b1dbe3ccc53502f498c67d0efd] [structmotor__t_a0b45561b3bd10d3fa5b967f27cc03b4d] [structmotor__t_a27a28d0b9cfa3d4df077d1b83b1ae50c] [structmotor__t_aa5e61f82d30c5beb67c3e4da63d3f973] [structmotor__t_a508cc8ca9efb12f6b7a2ca90c0145be3] [structmotor__t_ad9e0dad6c84f60b620b5c304f77a754e] [structmotor__t_ae1fd3fa15d93ee7ca77155e5065f19ae] [structmotor__t_a5aa7ba39f596fb84bc48ebe8bdf8742f] [structmotor__t_aa5663d6deb3ba03853ea1db9fee6d77a] [structmotor__t_af7acea56015c47320ad037a6447267a3] [structmotor__t_a01421ca52664b63fe5cf9045b31b5a93] [structmotor__t_af9f663b6c75e472266caa35a7327c7d9] [structmotor__t_a33267a8129db0fa1294a1e8411507b56] [structmotor__t_a228fe22eb14566279ab42ef21c8a056b] [structmotor__t_a7e8adeb92e7b56bec55778e93188b5ac] [structmotor__t_a633626a1a87f7660c37cfee774da143e] [structmotor__t_aef378823f8f766d89f79a12c1fad7298] [structmotor__t_afa5290085f6f4cbb82321b61f0e759e2] [structmotor__t_aa8f2bb71f13d25bd493f086b25d2a793] [structmotor__t_ab2e32b36075436b3d3022c2d08c6c7af]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller.h<math>></math></span>
 
=== Public Member Functions ===
 
<span>'''Initialize all Quad Motors'''</span>
 
''[_amgrpfce05aebd28fd6a36058c581a4d953d3] Initializes all four quad motors''
 
Uses the initQuadMotor to initialize all quad motors.
 
void ()
 
<span>'''Initialize Quad Motor'''</span>
 
''[_amgrp1d644151bbcce9057e75fa35a143c31a] Intializes a specific propeller motor.''
 
The propeller motor is is initialized in open loop tapaziodal profile on the FPGA PWM generator.
 
void (int motorNum)
 
<span>'''Set Qaud Duty Cycle'''</span>
 
''[_amgrpf05c4be638915bb1f32e0410817774b6] Sets the quad motor duty cycle of a single quad motor.''
 
Sets the desired PWM generator block C to the desired duty cycle.
 
<span>Parameters</span>
 
is the desired PWM command
 
is the intiger value for the motor number in the PWM generator C block.
 
void (int pwmgen_value, int motor_num)
 
<span>'''PID Control Calculator'''</span>
 
''[_amgrp9957f7bb2056d8a6c35ddf4083298f7b] Calculates the output of a PID controller.''
 
Runs a PID control algorithm on the struct. Doesn’t saturate the PID correction.
 
<span>Parameters</span>
 
A pointer to a struct
 
<span>Returns</span> the controller output as a double
 
double ( <math>\ast</math>pidptr)
 
<span>'''PID Control Calculator with Filtering'''</span>
 
''[_amgrp14c8571050a8ae6f680e516dc4f4e5ac] Calculates the output of a PID controller with filtering.''
 
Runs a PID control algorithm on the struct. Doesn’t saturate the PID correction. Filtering is used in the derivative calcuation.
 
<span>Parameters</span>
 
A pointer to a struct
 
<span>Returns</span> the controller output as a double
 
double ( <math>\ast</math>pidptr)
 
<span>'''Load Motor Controller Configuration'''</span>
 
''[_amgrp5f023cd0ca8b5dab8a80d84aba4ef6c6] Loads configuration data and initializes some controllers.''
 
Initializes controllers and filters needed for controller calculations. It reads in data from eris.cfg and other hard coded values.
 
<span>Returns</span> 1 if sucessful
 
int ()
 
<span>'''Arm Quad Motors'''</span>
 
''[_amgrp5c2ef70f6e4cadb7e720b01879f688a3] The quad motor ESC require an initialization sequence, this function creats that sequence.''
 
The ESC comands a cycled through a set of values to activate the ESCs.
 
void ()
 
<span>'''Data Filter'''</span>
 
''[_amgrpd7dc50ca0736a594701687e8186067ab] Filter a data set using an FIR digital .''
 
Calcualtes an FIR used to data in the time domain.
 
<span>Parameters</span>
 
The point to the object to use
 
The input data to the
 
The output
 
float (struct <math>\ast</math>, float data)
 
<span>'''State Feedback Controller Calculator for 1D inverted pendulum'''</span>
 
''[_amgrp0537bb25e7f514750bffba69f7f4dba0] Calcuats the pole plavement controller for RADA''
 
Using the a (quad state space) struction it calcuates the controller output. This is for a 1D inverted pendulum.
 
<span>Parameters</span>
 
is a pointer to the structure to be used to calcualte the controller output.
 
the contoller output as a double
 
double ( <math>\ast</math>ssptr)
 
<span>'''State Feedback Integral Controller Calculator for 1D inverted pendulum'''</span>
 
''[_amgrpf03ca3c2efc11db8bbd67d4f5cc8746c] Calcuats the pole plavement controller for RADA''
 
Using the a (quad state space with integration) struction it calcuates the controller output. This is for a 1D inverted pendulum.
 
<span>Parameters</span>
 
is a pointer to the structure to be used to calcualte the controller output.
 
the contoller output as a double
 
double ( <math>\ast</math>ssptr)
 
<span>'''RADA LQI Controller Calcuator'''</span>
 
''[_amgrp078731063da6706b78f325db9a9695df] Calculates the LQI controller output with estimation.''
 
Filter the angular postion, calcuatetheangularrates, and then calcualte the controller outputs for the whole RADA system.
 
<span>Parameters</span>
 
is a pointer to the LQI controller structure
 
<span>Returns</span> 1 as long as the controller is calculated
 
int ( <math>\ast</math>lqiptr)
 
<span>'''State Space Control Calculator'''</span>
 
''[_amgrpf6257f816f8d6d1766ce1561b15f352f] Caculatesthe state space controller (controller and estimator) comands.''
 
Calculate the controller output based off of the previous estimation and then estimate then ext step of the controller.
 
<span>Parameters</span>
 
is the pointer to the state space controller object
 
<span>Returns</span> 1 if the controller calcultes the controller
 
int ( <math>\ast</math>ctrlss)
 
<span>'''State Space Controlelr Configuration'''</span>
 
''[_amgrpd94fd80ab4422727a101b6dc5baeb94a] Initializes a state space controller.''
 
This function initializes as state space controller (H2) that can track references or Dance depending on complier macros.
 
1 when the initialization is complete
 
int ()
 
<span>'''MSP Packet Drop Controller Calculator'''</span>
 
''[_amgrpdef89e6ca047cb84488107cf20260329] Calcultes the MSP controlelr for lossy systems.''
 
Calcutes the value v2 (a set of inputs). Then calculate u2, a set ouf outputs. Next calculatev1_bar a set of inputs. Then calculate u1 a set of outputs. Then calculate Yo the scaled outputs that are sent to the actuators. Next calculate estimation of the next time step’s state. Finally, set these next step etimated states to thecurrent state estimation.
 
<span>Parameters</span>
 
is a pointer to the packet loss controller structure
 
<span>Returns</span> 1 when the calculation completes
 
int ( <math>\ast</math>ctrlss)
 
<span>'''State Space Controller Configure for Packet Loss'''</span>
 
''[_amgrp37c81e75a7a9d084c58c456e7571158e] Configurs the Packet drop controller.''
 
Configures the initial state estimation, inputs, and outputs.
 
<span>Returns</span> 1 when the controller structre is initialized
 
int ()
 
<span>'''PID Control Calculator with Filtering and Variable Time Step'''</span>
 
''[_amgrp063a8faceb5db6e16b76dbd036348387] Calculates the output of a PID controller with filtering and time step calcuation.''
 
Runs a PID control algorithm on the struct. Doesn’t saturate the PID correction. Filtering is used in the derivative calcuation and calculating theactual time between controller calculations.
 
<span>Parameters</span>
 
A pointer to a struct
 
The time between the last sample and now as a double
 
<span>Returns</span> the controller output as a double
 
double ( <math>\ast</math>pidptr, double dt)
 
<span>'''RADA LQI Controller Calcuator with Variable Time'''</span>
 
''[_amgrpbcc1a735d18c2d59c7f5d9a769ad357e] Calculates the LQI controller output with estimation using theactual system dealt T.''
 
Filter the angular postion, calcuatetheangularrates, and then calcualte the controller outputs for the whole RADA system.
 
<span>Parameters</span>
 
is a pointer to the LQI controller structure
 
is a double that is the time between samples
 
<span>Returns</span> 1 as long as the controller is calculated
 
int ( <math>\ast</math>lqiptr, double dt)
 
<span>'''RADA LQI Controlelr with Estimator Calcuator'''</span>
 
''[_amgrp7500c88d96ef8d92553589505462fd1c] Calculates the LQI controller output with normal estimation.''
 
Calcualtes the controller output, estimate the next time step’s states. Set the current states to the next states.
 
<span>Parameters</span>
 
is a pointer to the LQI controller structure
 
<span>Returns</span> 1 as long as the controller is calculated
 
int ( <math>\ast</math>lqiptr)
 
<span>'''LQG Controller Calculator'''</span>
 
''[_amgrp41ce89edf82c1d5162ec0a37eeb4a94a] Calculatesthe LQG controller for the whole RADA system.''
 
Calcultes the controller outputs using the previous time step’s estimation and the current inputs. Then it estimates the statesof the next time step.
 
<span>Parameters</span>
 
is the pointer to the LQG controller structure.
 
<span>Returns</span> 1 once the calcution is complete
 
int ( <math>\ast</math>ctrlss)
 
<span>'''LQG Quad Controller Calculator'''</span>
 
''[_amgrp829e83dc64015e37961d2d115748c72e] Calculatesthe LQG controller for the whole pendulum system.''
 
Calcultes the controller outputs using the previous time step’s estimation and the current inputs. Then it estimates the statesof the next time step.
 
<span>Parameters</span>
 
is the pointer to the quad LQG controller structure.
 
<span>Returns</span> 1 once the calcution is complete
 
int ( <math>\ast</math>ctrlss)
 
<span>'''LQG Eris Controller Calculator'''</span>
 
''[_amgrpc38c2a17da2f8813651939769b09ec53] Calculatesthe LQG controller for the whole Eris system.''
 
Calcultes the controller outputs using the previous time step’s estimation and the current inputs. Then it estimates the statesof the next time step.
 
<span>Parameters</span>
 
is the pointer to the eris LQG controller structure.
 
<span>Returns</span> 1 once the calcution is complete
 
int ( <math>\ast</math>ctrlss)
 
<span>'''Initialize Motor Contorllers'''</span>
 
''[_amgrpd1997c79c23a3862511f6af22c0ec5da] This funtion initializes the motor controller strucures.''
 
Initializes the . If the mode is anything other than free, then the controller will attempt to acquire the motor device descriptors as defined in the Configuration object.
 
<span>Returns</span> 1 on success, 0 otherwise
 
int ()
 
void ()
 
<span>'''Stop Motors'''</span>
 
''[_amgrp3ef1bdab6ae253ecc163a825f4ea9e9f] Stops all motors.''
 
This will stop all quad and ground robot motors
 
void ()
 
<span>'''Stop Ground Robot'''</span>
 
''[_amgrp5ca3b6a80bff934023e8810a002438b4] Stops all wheels.''
 
This will stop all ground robot motors. This is different from because the controller will still maintain the connection to the motor device descriptors, but the motors will be stopped.
 
void ()
 
<span>'''Set Motors'''</span>
 
''[_amgrpdadd3c7c8f5910982d289bd98101684d] Sets the speed of the wheel motors.''
 
This will control the motors in a manual way, such that each motor can be controlled individually.
 
<span>Parameters</span>
 
The parameters for the movement command.
 
void ()
 
void (const struct <math>\ast</math>command)
 
void (const struct <math>\ast</math>command)
 
void (float dt)
 
void (MotorControl <math>\ast</math>packet)
 
void ()
 
void ()
 
int ()
 
int ()
 
void (int useBoundsLimit)
 
void (int useStatusLogging)
 
=== Private Member Functions ===
 
<span>'''Motor Controller default object'''</span>
 
''[_amgrp9e5257757bb47d5223c038f91d3ca39b] Creates a motor contorller object.''
 
Creates the object. Nothing is requested of the motor controller board at this ponint.
 
()
 
<span>'''Free Motor Controller bject'''</span>
 
''[_amgrp407b092ba9c174a55708b5d3e7ba1e6a] Deletes the motor contolelr object.''
 
Frees any resources used by the motor controller.
 
()
 
<span>'''Initialize One Wheel Motor'''</span>
 
''[_amgrpf5dc760419735c025a71fd62d74cb75f] Initializes one of the motot settings on the MESA board.''
 
Initializes one motor
 
<span>Parameters</span>
 
The motor structure to initialize
 
void (struct &amp;motor)
 
<span>'''Initialize All Wheel Motors'''</span>
 
''[_amgrp624dc6c5d4b272edbe3b43cae3f7e0ee] Initializes all wheels.''
 
Initializes all the motors
 
void ()
 
=== Static Private Attributes ===
 
static <math>\ast</math> = NULL
 
=== Motor Controller instance ===
 
Get the instance of the motor controller.
 
Returns a single instance of the .
 
<span>Returns</span> A single instance of the
 
struct
 
struct
 
char
 
char
 
short
 
short
 
short
 
short
 
int
 
int
 
struct
 
struct
 
struct
 
<math>\ast</math>
 
<math>\ast</math>
 
static <math>\ast</math> ()
 
=== Set Motor Speeds ===
 
Passes the motor speed settings to the FPGA.
 
Passes the motor speeds onto the motor board. After this command has been executed, the robot will begin to move.
 
class
 
class
 
void (const char <math>\ast</math>name, const &amp;motor)
 
void ()
 
static int (unsigned int degree)
 
static int (unsigned int degree)
 
=== Constructor &amp; Destructor Documentation ===
 
[classMotorController_a1c32db157ba4b6dba1f2d6bc8891f16d] [classMotorController_ae4a6055b64466936c3576fb52fda9307]
 
=== Member Function Documentation ===
 
[classMotorController_add1bf5dae0eb05623df4b754d1c6fb49] [classMotorController_a93e60b0fa743ec1a6a69957d64689b55] Computes the output of cos(degree)<math>\ast</math>256 using a lookup table
 
<span>Returns</span> (int)(cos(degree)<math>\ast</math>256
 
[classMotorController_a2553c87383d8241316ea2053fb12c7a4] [classMotorController_a48e1b88df6b0d6da8195ba102108d9d9] [classMotorController_a34520b22e1f3e4a6529133fb2481d32e] Gets if the motor controller is using bounds limiting
 
<span>Returns</span> 1, if the korebot stops the motors when it leaves the bounds of the playing field, 0 otherwise
 
[classMotorController_af3bade74d928cdddf29dbcaec33e9dba] Gets if the motor controller is logging status
 
<span>Returns</span> 1, if the motor controller is logging, 0 otherwise
 
[classMotorController_a4fecad722d049d29bc6efc6b4a549048] [classMotorController_a7e93f0790d37d266359cab27eaf19389] [classMotorController_a1772b5eb25ed867b6799c6488a1da283] [classMotorController_a6ea32666e8808436dc6d299a26e96d08] [classMotorController_a41163916eb76f85ea6d5c0bfeb0b0869] [classMotorController_ace062a26702f28230668809781e41039] [classMotorController_a712bfbc418522a2297053b16cd04ba3d] [classMotorController_a953b0bd7cf69a499d444e283cdcf2c6f] [classMotorController_a9b9cf813441e188fec5dde9783e4a56f] [classMotorController_ab64a7f9780e66317a624cdd945070b80] [classMotorController_a69d031076349d49d2a68de9d7a8ca8db] [classMotorController_a0b1e833f2acca5f4ca229edcdb982ba1] Prints the status of the given motor to console
 
<span>Parameters</span>
 
A human-readable description of the motor
 
The motor details
 
Prints the status of the given motor to console
 
<span>Parameters</span>
 
A human-readable description of the motor
 
The motor details
 
[classMotorController_ae350b355b22cd83ad7b735e456b146a9] Prints the status of various modules on the Korebot [classMotorController_a419d79a3fff2307b0ab96418270cbf92] Processes a packet received over the network
 
<span>Parameters</span>
 
The packet received from the network
 
[classMotorController_a0e32982f7d58fc52a0bafe4f50572faa] [classMotorController_ad90235c67d1e809452589cba4b58f806] [classMotorController_a96915dcda6bfca14d18e523542982d49] [classMotorController_a2282991fb80e1689e1e7ffaa104015f2] [classMotorController_a0265a0be71190b23bdb591cde9c68097] Runs one iteration of the motor controller; Sets the speeds of the motors according to how the user / AI wants them to go.
 
<span>Parameters</span>
 
The time difference since the last call to this method
 
[classMotorController_addb10f30dae3f4daeb0074b28f0ee1d1] Sends status information about the sensor manager to the control server.
 
This includes the mode &amp; speeds of the motors. [classMotorController_a2e5e8ac28229cb8f9a0ce5f64a8d5b77] [classMotorController_a5abb6d80f4891452cbb6a3c7a3c32d5c] [classMotorController_a65dfcc468ce3529defe398fe7bf7392d] [classMotorController_ac9bd97a93cbe94bf844e80ef23056ad6] [classMotorController_a25f60534f1ef27d30f6cdf62519c791a] [classMotorController_a4e45155b4d2d208dc76967c304b7ebf3] Sets if the motor controller should stop the motors if the korebot leaves the bounds of the playing field
 
<span>Parameters</span>
 
1, if the korebot should stay in-bounds, 0 otherwise
 
[classMotorController_ab76a224b0d5188d15f33b6b697905933] Sets if the motor controller should log the status information to a file
 
<span>Parameters</span>
 
1, if the motor controller should log, 0 otherwise
 
[classMotorController_a41bec40abfaefa050d98ea4522945bd6] Shuts the motor controller down, destroying any resources &amp; releasing any devices the controller is holding. [classMotorController_a4635621e96ad618a1f33d02165cdfc9e] Computes the output of sin(degree)<math>\ast</math>256 using a lookup table
 
<span>Returns</span> (int)(sin(degree)<math>\ast</math>256
 
[classMotorController_a50e55a6199c3cef74b5e8cd64039f315] [classMotorController_a69733631dbe8550b52933cc03fcb0f54] [classMotorController_aab0247df4f0413a46e68ada1e3b4e991] [classMotorController_a3b1f06b4d39a840887079ce725401162] [classMotorController_a46b269cc3a363a8a621e3f50aef79963] [classMotorController_af0e455864d2af2f4f293961d95b843a1] [classMotorController_a317ce58ea93ea1329de5b87391560082] [classMotorController_a1296842f7e49211c6dd36023967e8ac2]
 
=== Friends And Related Function Documentation ===
 
[classMotorController_a0191eec9042e10ff1da22f98f14498fb] [classMotorController_a56b5005fdfe78e27f0ecd4d7d876b646]
 
=== Member Data Documentation ===
 
[classMotorController_a1d97bedd5ac33c60ecb00442569b0ada] [classMotorController_a746ddd1d96190bbc14669d555ae1ed11] [classMotorController_af9ad9c5897f6fc801694837c2ecce6e5] [classMotorController_ab78c465d4e96d3c8b21b08fa8b2f5589] [classMotorController_a915f7c7db7eafe922c183f0a008ae53a] [classMotorController_a07e3f68c416a983de11e401b5c0f1433] [classMotorController_a77bd609c9cce4b00533f00eb3b4b9197] [classMotorController_ac14cc62eae3a30fc2752a78fbd18a6e8] [classMotorController_ad49cd20423752fe17d45abca19fcd5f8] [classMotorController_aa53faa6f4491dcdc8fbcaa22ca0498d5] [classMotorController_a7dfcbab99afde391b774d444f603fb5b] [classMotorController_a12e46cfc455ac7e814a977d244be5f08] [classMotorController_a824e25371c790d050dc68a8ca861ac17] [classMotorController_ac455cbf551bd87ff0e7b9647d3e29caa] [classMotorController_a1d266c8a0c0bd8d1a123fe92eadac4b4] [classMotorController_a34ba46e538027b3897d8a52c432acea8]
 
The documentation for this class was generated from the following files:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
struct
 
struct
 
struct
 
struct
 
=== Member Data Documentation ===
 
[structmotortrain__t_ac93c32e936810c89d906a780388fa543] [structmotortrain__t_a936dab25cd19cd882c1f4b5547f6854d] [structmotortrain__t_a0975c7dc29c06eb3e41c7b3d2d89f897] [structmotortrain__t_a7374ec1fab1a3b24ab05f4f3f562286a] [structmotortrain__t_a17d91b9941dd97fe08ac5f05d320db77] [structmotortrain__t_a1bf8fd344ea4ab736e8be74807f28ce8] [structmotortrain__t_aa512d3487dad0e44ba34f7bd80644989]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
double
 
double
 
double
 
double
 
double
 
int
 
int
 
int
 
int
 
double
 
double
 
double
 
double
 
struct
 
struct
 
struct
 
int
 
int
 
=== Member Data Documentation ===
 
[structQUAD_a2eed9f1713c43f7c7491813afe60d159] [structQUAD_a00d9ad43243a8079bdafc17bad61e8a8] [structQUAD_a10e64234abe44400db28b86cccf71b9c] [structQUAD_a37a8faccecc87a0a36db7758aebd4cd3] [structQUAD_ab6322c69c61e8c52113215b8782f5640] [structQUAD_a1c0d275153c7e8f6a96cb438c57de6fb] [structQUAD_a8e0ab0fca05fa4368e9c142b879165b8] [structQUAD_aae593162318a8f85cee245d36384e43e] [structQUAD_a8fb550e3a46fca686af955f7070891d5] [structQUAD_aa39e1ed5847afe259a4bed63fdcdcdb2] [structQUAD_af0a105f1ee7eb97eab0db1b5e1996f37] [structQUAD_a1e4d41cb80153a8d7cd81c66c98c8b3a] [structQUAD_adefa68d6df6fb3288bce229cad63eaa3] [structQUAD_a2f1b6a7383290f5c552eef5e51825a35] [structQUAD_ae9bb78262875c8a49b7c1ce6eba1691f] [structQUAD_a5d6a99d953ddbc2f0e0d799459afbe0b] [structQUAD_a893e505f05bad2f5904387c926f12c8c] [structQUAD_a5f2425f4d2370d30a963157527e2bf9c] [structQUAD_ae7f289e91404a2f165d2f7c6a25a8450] [structQUAD_aa8a9da65a487c47e81c77b33323428ef] [structQUAD_ae2c9ab465e6ebfe2a26122cc3caf15d7] [structQUAD_a17071969d4bc2093b3d2fc1ee83af04d] [structQUAD_a5150d2569d431a1380cb7d837e96ebf5] [structQUAD_ace794fbc91c3193f6e5e42d1f8e2cd64] [structQUAD_a754e8f9b57794e2ab9b4c3542e39464d] [structQUAD_a79b59140f8b04dac9218dcc699f5b3f8] [structQUAD_a2449ef626bfeca6b8a7c63fcbc2c6818] [structQUAD_a542aee3387201368593832b4e47ba743] [structQUAD_a883c6b66339a648916033d296368f9dc] [structQUAD_aedc6dc7e5aa35ef51d1ced2dce9513a0] [structQUAD_a2ab750ab10497d939cdddba72cfc4de6]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double 6
 
double 6
 
double 4
 
double 2
 
double
 
double
 
=== Member Data Documentation ===
 
[structQUAD__LQG_a76bbbb078df43082bbd27354d9458b9d] [structQUAD__LQG_ae06b105072a09fdfe8bf26f6db82e1d3] [structQUAD__LQG_a34c2cd67f46354f4dd1390ceb13d8639] [structQUAD__LQG_ab2510335708e94ce453625ec6c88a8f4] [structQUAD__LQG_a45f38782147369b8b6df1999ebdcfa17] [structQUAD__LQG_ac031b1e1bb3c1e293c422eb66f388f39]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structQUADPID_af57693675d3b91e74c7fce833c2d3229] [structQUADPID_a37120d7ed179891e570632dde992a62d] [structQUADPID_aebe069933b736158b6e9c66480b5dd66] [structQUADPID_a9e340ef1ec326c3ea24ab853eaab5356] [structQUADPID_a8c459e89dad8aba573f629a2eee95a2e] [structQUADPID_a53abc22b47daebd646ffa93edeebabf3] [structQUADPID_a15a2c22f71f430b0f3da088fdaf11e8b] [structQUADPID_a35bd258abd8b446cf0fc7192f5444ace] [structQUADPID_aad48c2639f5e7f7a7507a65f2fc9f840] [structQUADPID_af0c37cfc4dd8de23ea8e1f5a9dde49ca] [structQUADPID_ac0ca662a0fd18d9a7ae9be60f16642aa] [structQUADPID_a4e96ee985a438bbac5a5a2e7c20a6ba3] [structQUADPID_ac2322202d22bfef5a2bac06ab69ad04e] [structQUADPID_adffd1a7f278135c8b1dbe8ed3c028d49] [structQUADPID_a641e3400a556ef67ae641bb748f35502] [structQUADPID_a37ec2314c8e6ea28ce2bf9677bac90c3] [structQUADPID_ae2363c0b0775bd8139ba5768470b986d] [structQUADPID_a074e9f874f299cd53447a34638c0daad] [structQUADPID_ad2e9f72912b4f53ec0a6c57652706a9f] [structQUADPID_a5b2c0619378b80766a76fe248d4e82cf] [structQUADPID_a52b5fb6398fecd60c22bedd8b5c88554]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structQUADSS_add3c0c29d0b5a86bc0650e10048da943] [structQUADSS_aea9e3c78961e8d18c5a5b0e7801a3757] [structQUADSS_a429e966bc34c1bdc2277139488b777d6] [structQUADSS_aedab9a84e7fe0fc90e9fb6573f92edc9] [structQUADSS_a82100cd859c1d02e9a0610610f9ce598] [structQUADSS_a848a1f6b9b1386b06cbc1545a8a850bf] [structQUADSS_a5184771429743ed0518c4cb93764bdc1] [structQUADSS_a4586121326628ddd1183bb6bf7bbcf39]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structQUADSSI_a578f581dca979d890f092a5276c1de2e] [structQUADSSI_a4226d40c10573f3f827ae7666ef1fc44] [structQUADSSI_a9abfe43101a30f54fe2d38d60de74b2c] [structQUADSSI_a2c5a14aeaeee20b7f0a28f519bb88ba3] [structQUADSSI_ac85d5d5297bdae061cafd99d3a1735c5] [structQUADSSI_a16756c462227bebb2eada031f7926249] [structQUADSSI_adbc07d19432895cd041db18a418ed9ac] [structQUADSSI_a474e0b411cc0f122694e51d1b0659acf] [structQUADSSI_abece16790d7a4e8a8ca59afb9448c370] [structQUADSSI_a45e12800b609b4a4f8b3bac4566695cc] [structQUADSSI_a4a270033dec1ba6e9339ae6165389c9f]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double 13
 
double 13
 
double 10
 
double 5
 
=== Member Data Documentation ===
 
[structRADALQG_aa940eeca8f5baac2249898725297a0d0] [structRADALQG_af266d468cac40fa2d420f8bfddd7b557] [structRADALQG_ae3d7654593c0ce69332c8a60ea4cb4b7] [structRADALQG_a71dff35bb7444784fa6a4fb0abfd79e6]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>motor_controller_common.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double 8
 
double 8
 
double 5
 
double 513
 
double 5
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
double
 
=== Member Data Documentation ===
 
[structRADALQI_afdcf53ebe9bcecebb6672e3477bf3033] [structRADALQI_a951609272a5a9521d530b01e9ef09595] [structRADALQI_a3db98fefec3bacd77109ed872770ee52] [structRADALQI_a5c8328044c5e72bd14586d7518597d86] [structRADALQI_a03256a0ae4e91b1be17aff1e5fe5d97e] [structRADALQI_a187690a16632205e125a65ad4c446eb0] [structRADALQI_a923333c98a36453319870d2c3c41e664] [structRADALQI_a7553fcb3e6b678243cb011c35b8f7654] [structRADALQI_aa922b81415119cbcc3bc2cda233187aa] [structRADALQI_ac7c14eccdd17f87c18fc0d3c5a9fbeff] [structRADALQI_a6da18a4d7a2ce4036df91f6dadff1046] [structRADALQI_a4a8c3336e535d69214c5b1544cff8a4f] [structRADALQI_a029c912330265d6601207a31b673ac2e] [structRADALQI_ab8db739fd43babe83c86aaccdee03107] [structRADALQI_ac3ba42e78de0c7a9f9bac06ee59d9af7] [structRADALQI_a38be3a08ecdef8905bf026197ec2d001] [structRADALQI_a00e509effa31ce836d84e8ac44691237] [structRADALQI_a5f04861fdd822873fddfbb9b8ed6e1ac] [structRADALQI_a295076da380631add54edc56a0720cf1] [structRADALQI_a2ac030254978e192ed3a511324dd5dc6] [structRADALQI_a9e3250b14c3c011c300dff35b7358558] [structRADALQI_ad58dffb99676bd9adb92bc5af8bb1c70] [structRADALQI_a7b2374ca0e9ccfeb1beb1d272b39b0b4] [structRADALQI_aef3f073773528798287820fd58976d14] [structRADALQI_a97aa272c346c35631ca4564a37124dc5] [structRADALQI_a229c3294975da8be631e9e11107c37af] [structRADALQI_a8d61dd4ba5cd4475c5146bd11b467a9b] [structRADALQI_a15fb171c13f71768f9919b8f1f691dd3] [structRADALQI_a48be324b5e318ac948cc745350b2d234] [structRADALQI_adafde08ed92f42256ca80f4c62d61614] [structRADALQI_a2885d192d345fbc7b2032b3ddaf6adfd] [structRADALQI_a469a7e328410a7a783338c6609d8cc06] [structRADALQI_aa93908270a2fa6ab0e608ce60c68f47f] [structRADALQI_acdc45aaafc81cd9d721e7fcb8eecb746] [structRADALQI_a99de43ecd01f525e3c3e25c61a81d842]
 
The documentation for this struct was generated from the following file:
 
<span>#include <math><</math>vrpn.h<math>></math></span>
 
=== Public Attributes ===
 
double
 
float
 
float
 
float
 
float
 
float
 
float
 
=== Member Data Documentation ===
 
[structvrpn__data__t_a36832473aff982b334e73ef8f2107975] [structvrpn__data__t_a174930b2f9de89327cbd168ecc288da2] [structvrpn__data__t_aef6531470caa7a95e650b19ed0139ae6] [structvrpn__data__t_a5a5a96aa9d0640599eb1d950e8e4c833] [structvrpn__data__t_a5faf10d13f8203d5d34ed0ac580d50ee] [structvrpn__data__t_a643aa072522e303a9d9cd7637d8632a0] [structvrpn__data__t_a9b71e15122a1d3fa495f5e6a797c7084]
 
The documentation for this struct was generated from the following file:
 
= File Documentation =
 
This clss dercribes the key bindings for the UI.
 
=== Classes ===
 
class
 
=== Detailed Description ===
 
This clss dercribes the key bindings for the UI.
 
<span>Author</span> Dylan Gransee, Robert Larsen
 
<span>Date</span> July, 2016 This class holds the key bindings for the command line interface. Changes and additions can easily be made by anyone who does not like the available commands.
 
The different sets may have the same command because you can only use one set of commands at once.
 
Code that logs data from RADA system tests. <span>#include <math><</math>iomanip<math>></math></span>
 
<span>#include ‘&quot;logger.h‘&quot;</span>
 
<span>#include <math><</math>iostream<math>></math></span>
 
<span>#include <math><</math>string<math>></math></span>
 
<span>#include <math><</math>sys/stat.h<math>></math></span>
 
<span>#include ‘&quot;utils.h‘&quot;</span>
 
=== Variables ===
 
struct
 
const string = ‘&quot;<math>\backslash</math>033H<math>\backslash</math>033J‘&quot;
 
=== Detailed Description ===
 
Code that logs data from RADA system tests.
 
<span>Author</span> Paul Uhing, Ian McInerney, Dylan Gransee, Robert Larsen
 
<span>Date</span> July, 2016 This file logs data to a text file in the Eris directory /root/Logs/ErisDate/log(timestamp).txt There are some compiler macros for configuring the logger. They must be set in Logger.cpp because Paul Uhing couldn’t get the macros in to work in . . ssDrop makes the logger log data for the MSP packet drop controller. RADAlqi_est causes the lager to log controller inforamtion about a LQI controller . RADAlqi_est causes the lager to log controller inforamtion about a LQI controller with a traditional estimator. rada_lqg causes the logger to log data about the LQG controller for the whole system. rada_split_lqg causes logger to log data about the seperate LQG controllers. rada_split_lqg_ol causes the logger to log data about a LQG controller and the Eris to control its yaw with a PID and the linear velocities are controlled through open-loop commands. H2ctrl cause the logger to log data about a H2 controller. If ssDrop, H2ctrl, RADAlqi, RADAlqi_est, rada_lqg, rada_split_lqg, or rada_split_lqg_ol are not defined then RADA will default to PID control.
 
=== Variable Documentation ===
 
[logger_8cpp_ae565de10fdcd13a32c3deef98b10b045] [logger_8cpp_a57e5a12456f314ffc728d5d8da312970]
 
<span>#include <math><</math>fstream<math>></math></span>
 
<span>#include ‘&quot;motor_controller.h‘&quot;</span>
 
=== Classes ===
 
class
 
main code that controls the data flow for running RADA <span>#include <math><</math>iomanip<math>></math></span>
 
<span>#include <math><</math>iostream<math>></math></span>
 
<span>#include <math><</math>string<math>></math></span>
 
<span>#include <math><</math>cstdlib<math>></math></span>
 
<span>#include <math><</math>cstdio<math>></math></span>
 
<span>#include <math><</math>pthread.h<math>></math></span>
 
<span>#include <math><</math>quat.h<math>></math></span>
 
<span>#include <math><</math>signal.h<math>></math></span>
 
<span>#include <math><</math>ctime<math>></math></span>
 
<span>#include ‘&quot;configuration.h‘&quot;</span>
 
<span>#include ‘&quot;korebot.h‘&quot;</span>
 
<span>#include ‘&quot;logger.h‘&quot;</span>
 
<span>#include ‘&quot;motor_controller.h‘&quot;</span>
 
<span>#include ‘&quot;utils.h‘&quot;</span>
 
<span>#include ‘&quot;vrpn.h‘&quot;</span>
 
<span>#include ‘&quot;key_bindings.h‘&quot;</span>
 
<span>#include ‘&quot;sensor_manager.h‘&quot;</span>
 
<span>#include ‘&quot;sensor_manager_common.h‘&quot;</span>
 
<span>#include <math><</math>math.h<math>></math></span>
 
=== Defines ===
 
#define
 
#define  26000
 
#define  56000
 
#define  65535
 
#define  ((DUTY_CYCLE_MAX - DUTY_CYCLE_MIN) / 2) + DUTY_CYCLE_MIN
 
#define  (DUTY_CYCLE_MAX - DUTY_CYCLE_MIN) / 2
 
#define  6656
 
#define  26880
 
=== Enumerations ===
 
enum { , }
 
enum { , , , }
 
=== Functions ===
 
<span>'''Handle pendulum postion VRPN callback'''</span>
 
''[_amgrp37d875ee3807f019e19d2d6dee41a566] Preocesses the pendulum VRPN data.''
 
vrpn callback function that is called everytime vrpn data of the pendulum is received. The callback gets the data and calls the pid controller by passing that data in.
 
<span>Parameters</span>
 
no clue what this is
 
the vrpn data that was received
 
void VRPN_CALLBACK (void <math>\ast</math>, const vrpn_TRACKERCB t)
 
<span>'''Handle Eris VRPN callback'''</span>
 
''[_amgrpe6e20aba9f601fcbc946d140a2025da7] Processes the camera system data for Eris from VRPN.''
 
vrpn callback function that is called everytime vrpn data of Eris is received. The callback gets the data and calls the pid controller by passing that data in.
 
<span>Parameters</span>
 
no clue what this is
 
the vrpn data that was received
 
void VRPN_CALLBACK (void <math>\ast</math>, const vrpn_TRACKERCB t)
 
<span>'''Main thread UI control'''</span>
 
''[_amgrpf3df38af8777b52967885581a6bf5072] Handels the user input and data printed for the user.''
 
This thread prints of data to the user and checks for user input the changes control modes and references. In the Stopped mode the thread is looking for the user to request entry in to the other modes or exit the program. It also stops the VRPN thread from executing. In tuning mode the user will be allowed to tune the pendulum PIDs. In Robot control mode the user can give commands to manuver Eris. In Box step mode the pendulum goes through a series of setpoint steps. The escape key will cause the program to stop.
 
<span>Parameters</span>
 
is a pointer to the thread ID of theis thread.
 
void <math>\ast</math> (void <math>\ast</math>threadID)
 
<span>'''Control Loop Thread'''</span>
 
''[_amgrp4e6e712710141b9bb1acc2a64aef0639] The main function for the control loop thread.''
 
This thread should be used if the packet drop code is ever edited to work with a real fading network. It should be implimented such that the controller will run every 10ms and determine if there has been packet loss
 
<span>Parameters</span>
 
is the thread ID
 
void <math>\ast</math> (void <math>\ast</math>threadID)
 
<span>'''Pendulum PID controller calcualtion'''</span>
 
''[_amgrp9fc67c72cd599f172740e6b41f919d72] Calculates PID controller for the Pendulum commands.''
 
This function sets up the calculation of the desired PID controller for the pendulum commands then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnData)
 
<span>'''Eris PID controller calcualtion'''</span>
 
''[_amgrp966797ce8643a3dd9f9c9be64292a6f5] Calculates a PID controller for the Eris system.''
 
This function sets up the calculation of the desired PID controllers for Eris then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the ponter to the vrpn data of Eris
 
void ( <math>\ast</math>vrpnData)
 
<span>'''User PID Tuner'''</span>
 
''[_amgrp19c4ee08c9dbcdaf609dc0a72c72d089] Used to tune the pendulum PIDs''
 
This UI is used to tune the pendulum PIDs. It doesn’t perminatly change the PID values in eris.cfg. You can also swithc control mode
 
<span>Parameters</span>
 
pionter to the pendulum vrpn data
 
void ( <math>\ast</math>vrpnData)
 
<span>'''Robot Control User Interface'''</span>
 
''[_amgrp1252ccc3177db21404c6dc4ed6a4eaa4] Lets users command Eris to move and change headding.''
 
The user can command Eris to move in x/y and rotate. The user can also change the command mode.
 
<span>Parameters</span>
 
The pointer to the pendulum VRPN data
 
void ( <math>\ast</math>vrpnData)
 
<span>'''Robot Control Mode'''</span>
 
''[_amgrp74ce911b6d1d37b44c2b8ce61152513b] Handles user inputs in robot control mode''
 
This function processes the user input from the UI when in rop=bot control mode.
 
void ()
 
<span>'''Tuning Mode'''</span>
 
''[_amgrpb934e8737cc509085ebb5f73b19acb1c] Hadles the user inputs when in tuning mode''
 
This function handers the user input when in tuning mode.
 
void ()
 
<span>'''Pendulum Box Step Mode'''</span>
 
''[_amgrp0dd1499b5cddba7f94d7e8d3984cd1c7] Causes the pendulum to move in a box when in PID mode.''
 
This function performs a demo by moving in a box formation (first moves to a corner from center, then steps around in a square). It takes 9 steps to be centered again.
 
This function uses the following global variables nextChange - Time in seconds of the next state change state - The current state - the position in the box boxSize - Angle size in radians of the box changeRate - Time in seconds between each state change
 
<span>Parameters</span>
 
is the current vrpn time
 
void (double curTime)
 
<span>'''Load Configuation Files'''</span>
 
''[_amgrped311958465031c00fa547e89c46a708] Loads eris.cfg from the NFS''
 
Lods the configuration file in the Configuration class
 
<span>Returns</span> bool value that for success or failure
 
bool ()
 
<span>'''UI Thread'''</span>
 
''[_amgrp62c5d6af5e738187ff22ed2cdba8093e] This is the main function for hte UI thread''
 
This thread just waits for user input (in the form of a single keypress). Once input is received, a global variable for the key is set so that the main thread can access the key that was pressed.
 
<span>Parameters</span>
 
is the thread ID
 
<span>Returns</span> NULL since it shouldn’t end in our case
 
void <math>\ast</math> (void <math>\ast</math>threadID)
 
<span>'''ctrl+c handler'''</span>
 
''[_amgrp99eb6333e039b04cc2ae3b28102e0bfa] this function exits the program correctly even when exiting via ctrl+c.''
 
This is a ctrl+c handler. It sets app_shutdown to 1, which should shut down the program. I am not sure of the specifics because this was written before the May15-27 team
 
<span>Parameters</span>
 
the signal that it receives when the key is pressed
 
static void (int sig)
 
<span>'''RADA LQI controller calcualtion'''</span>
 
''[_amgrpe30a3a342484e25b238d7c5cd8c27cbb] Calculates a LQI controller for the entier RADA system.''
 
This function sets up the calculation of the desired LQI controller then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of the pendulum
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnDataPen, <math>\ast</math>vrpnDataEris)
 
<span>'''RADA State-space controller calcualtion'''</span>
 
''[_amgrp23542f9ec756f55caa3591c437bfac56] Calculates a state-space controller for the entier RADA system.''
 
This function sets up the calculation of the desired state space controller then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of the pendulum
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnDataPen, <math>\ast</math>vrpnDataEris)
 
<span>'''RADA State-space controller calcualtion with packet loss'''</span>
 
''[_amgrpf56561d2b664983cbfcb2c50e691a9d8] Calculates a state-space controller for the entier RADA system under lossy conditions.''
 
This function sets up the calculation of the desired state space controller then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of the pendulum
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnDataPen, <math>\ast</math>vrpnDataEris)
 
<span>'''Test propellers at 50% commands'''</span>
 
''[_amgrp467ef14d3f83635ee95aefccc1c11b89] Runs the propeller motors at 50% of maximum command.''
 
The motors are tested at 50% of maximum command to determine what the effective batter voltage the ESCs see. This sould only be used to with the battery voltage measuing setup for te quadrotor in Chapter 5 of Paul hing’s thesis.
 
void ()
 
<span>'''RADA LQI controller with esitmation calcualtion'''</span>
 
''[_amgrp44e159876fd6aed6675462ea834d4ada] Calculates a LQI controller for the entier RADA system with esitmation.''
 
This function sets up the calculation of the desired LQI controller with esitmator, then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of the pendulum
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnDataPen, <math>\ast</math>vrpnDataEris)
 
<span>'''RADA LQG controller calcualtion'''</span>
 
''[_amgrpa91cac312d6bef2eb5e7e736994f4383] Calculates a LQG controller for the entier RADA system.''
 
This function sets up the calculation of the desired LQG controller then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of the pendulum
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnDataPen, <math>\ast</math>vrpnDataEris)
 
<span>'''Quadror LQG controller calcualtion'''</span>
 
''[_amgrp45f126903f6b8cbbb39832621800abd6] Calculates a LQG controller for the pendulum system.''
 
This function sets up the calculation of the desired LQG controller for the penduum then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of the pendulums
 
void ( <math>\ast</math>vrpnDataPen)
 
<span>'''LQG controller calcualtion for Eris only'''</span>
 
''[_amgrp2fcbbf0d43176e1469cdb7ef2c01215d] Calculates a LQG controller for the Eris system.''
 
This function sets up the calculation of the desired LQG controller for Eris then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnDataEris)
 
<span>'''Eris PID controller with open-loop calcualtion'''</span>
 
''[_amgrp5d5162a153e3702020f806e0b98a335a] Calculates PID controller for Eris with open-loop commands.''
 
This function sets up the calculation of the desired PID controller for Eris with open-loop commands then calls the controller function. Finaly it converts the controller output to valid actuator commands and sens these commands to the actuators.
 
<span>Parameters</span>
 
the vrpn data of Eris
 
void ( <math>\ast</math>vrpnData)
 
<span>'''Tic stopwatch starts'''</span>
 
''[_amgrpbe5fa55475c3c5cd3d3dde119cd0c839] Starts a stopwatch timer.''
 
This function will get the current time to start timing something.
 
Example Usage:
 
tic(); do_things; toc(); deltT():
 
void ()
 
<span>'''Toc stopwatch stops'''</span>
 
''[_amgrp7282852836645082f4d2dc3a1ee2f48f] Stops a stopwatch timer.''
 
This function will get the current time to stop timing something.
 
Example Usage:
 
tic(); do_things; toc(); deltT():
 
void ()
 
<span>'''Delta T stopwatch output'''</span>
 
''[_amgrp6c89f10ad681f33bea46252ec9ef66c1] Prints the length of execution of the last set of timed code.''
 
This function take the diefference between the start time and stop time and convert that to time in milliseconds. Then the function prints the time to the STD Out.
 
Example Usage:
 
tic(); do_things; toc(); deltT():
 
void ()
 
<span>'''Main function of RADA'''</span>
 
''[_amgrp9789cfd4cd4c15da3d3fa22ebb5abadd] This function intitializes the RADA test and hands execution to the threads.''
 
This function intializes the code execution by loading the configuration, intializing the motor controller settings, the , VRPN, and then hands the execution for the code to the VRPN thread and the main thread. The main tread is in charge of text based UI the user interacts with over SSH. The vrpn thread handles processing the VRPN data including controller calcualtions. There could be a thrid thread added to garentee that the packet drop controller runs every 10ms when packet drop controllers are run in a real enviorment (not simulating drops).
 
int (int argc, char <math>\ast</math><math>\ast</math>argv)
 
=== Variables ===
 
int
 
pthread_mutex_t
 
pthread_mutex_t
 
static char
 
const string = ‘&quot;<math>\backslash</math>033H<math>\backslash</math>033J‘&quot;
 
static double = 0
 
static = STOPPED
 
static = STOPPED
 
static FILE <math>\ast</math>
 
static unsigned char 2
 
static size_t
 
static ssize_t
 
static unsigned char = 0
 
static unsigned char = 0
 
= PITCH
 
static double = 0
 
static double = 20
 
static int = 0
 
static float = 0.0872664626
 
struct
 
static int = 35
 
static int = 0
 
static float = 9<math>\ast</math>0.0872664626
 
struct timeval startt
 
long
 
long
 
double
 
=== Detailed Description ===
 
main code that controls the data flow for running RADA
 
<span>Author</span> Paul Uhing, Ian McInerney, Dylan Gransee, Robert Larsen
 
<span>Date</span> July, 2016 This file setsup and controls the execution of the RADA system on Eris. ssTracking setsup reference tracking of inputs to control RADA when under H2 control. ssDrop puts the code in to packed drop mode and then RADA is controlled by a packed drop MSP controller. drop10 has the packet drop controller use a 10% drop controller design and forces the loss of 10% of packests. drop30 has the packet drop controller use a 30% drop controller design and forces the loss of 30% of packests. drop50 has the packet drop controller use a 50% drop controller design and forces the loss of 50% of packests. mot50 is used to test the actual propeller battery voltage at the ESCs after a test. The propellers are run at 50% command and the wheels are not commanded. RADAlqi causes RADA to be controlled by an LQI controller. FIR filters ae used to estimate velocities. RADAlqi_est causes RADA to be controlled by an LQI controller with a traditional estimator. rada_lqg causes RADA to be controlled by an LQG controller for the whole system. rada_split_lqg causes the pendulum and eris to be controlled by seperate LQG controllers. rada_split_lqg_ol causes the pendulum to be controlled by a LQG controller and the Eris to control its yaw with a PID and the linear velocities are controlled through open-loop commands. yaw_off turns off yaw control of Eris. H2ctrl puts RADA into a mode that uses an H2 controller to control RADA. ssMotors has RADA use an H2 controller that has propeller motor states in the controller design and will cause the system to ‘&quot;dance.‘&quot; accR sets up an acceration ramp for eris velocity control. posRamp causes Eris to control velocity as a postion ramp. If ssDrop, H2ctrl, RADAlqi, RADAlqi_est, rada_lqg, rada_split_lqg, or rada_split_lqg_ol are not defined then RADA will default to PID control. Make sure to edit the defines in to match the controllers used here.
 
=== Define Documentation ===
 
[main_8cpp_a4e084139c6a2952b2d8e3926f7a5d4dd] [main_8cpp_a994d9f112b804790cb294940eb9d323b] [main_8cpp_adea6f9fd5cbfe15ba103162c938c82c1] [main_8cpp_ad6c255586afaadad77cc9ead98c4c3ef] [main_8cpp_ad83c5423508a0de5baa15de51dda7dc5] [main_8cpp_a89551354e91f5016b1abcfaf16e940a3] [main_8cpp_a1ec7940bd8e2d994ebe311607d8300c9] [main_8cpp_a2a7307f445fd64358b32c0e3b7c1d97b]
 
=== Enumeration Type Documentation ===
 
[main_8cpp_ae3996976d8ffb3e58d88f58227473f8e]
 
; <span> ''[main_8cpp_ae3996976d8ffb3e58d88f58227473f8ea2eeb9fef8a6a516fa6437a44a6efbd52]'' </span>
:
; <span> ''[main_8cpp_ae3996976d8ffb3e58d88f58227473f8eaa4ed247aa19723caf868d2b2dd5cf4ff]'' </span>
:
 
[main_8cpp_a46c8a310cf4c094f8c80e1cb8dc1f911]
 
; <span> ''[main_8cpp_a46c8a310cf4c094f8c80e1cb8dc1f911a948b2aee15f52b421fa4770c47bcfe8c]'' </span>
:
; <span> ''[main_8cpp_a46c8a310cf4c094f8c80e1cb8dc1f911a5b098db3405ab997f1df697c8a25af60]'' </span>
:
; <span> ''[main_8cpp_a46c8a310cf4c094f8c80e1cb8dc1f911a8a1be19211abeacf191fa94e53a88df7]'' </span>
:
; <span> ''[main_8cpp_a46c8a310cf4c094f8c80e1cb8dc1f911a3f7641d93f9edd6dcef0ecbc9e5bcac2]'' </span>
:
 
=== Function Documentation ===
 
[main_8cpp_a21bf4fc6c3a34c923d42af1dd5980075] [main_8cpp_ace0ab8e44bfaa97bfcd82adb89d74854] [main_8cpp_ac9f02fb0114292a308e093f0d9f8aa30] [main_8cpp_adb0f7bc1fa10ac859582e433e7acc7dc] [main_8cpp_a1dbdf224e16e0509ac19e34c27bc37e7] [main_8cpp_aa19799b0e80b4e69de6b6cc3ade092c1] [main_8cpp_aac75d50db164b40415d3d80142fc4d2c] [main_8cpp_a4a20cd0821f9530e40398374ca1a4311] [main_8cpp_a3c04138a5bfe5d72780bb7e82a18e627] [main_8cpp_a568000bf542342c7b00ddb00afb93fd9] [main_8cpp_aa8c69f9e4a04bdaa5ce904551cae390d] [main_8cpp_ac94b9d8c47c3b310cd58bd94b0133783]
 
<math>\ast</math> [main_8cpp_a5669af9fd1cb16cbafe7bba476401d1e] [main_8cpp_aa48cf9381fdd01af90024b19545df7d4] [main_8cpp_aa8d50bf6758495a8070ea25c1e37e7f9] [main_8cpp_a728c70f1946e291f107c8c6e7a2ea65e] [main_8cpp_a1075d00c4632a01409111682ed506a4b] [main_8cpp_a16b090c977019835b449e0113e61a29b] [main_8cpp_a23c4b3cc92e1574ab3fd5522a51f274f] [main_8cpp_a898ef4198c44ab81d796a247d6a61458] [main_8cpp_ab5a1f466bba3d4b5cffc3697c11d218f] [main_8cpp_a7424442480a606c0febd38ec999c6af8] [main_8cpp_a5ba73899fe15846cc99820005d978e24] [main_8cpp_a3f604b0d492a343dd2c72ca7469b3cf7] [main_8cpp_a8f66738d39f61b6992e622acb683de6a] [main_8cpp_a6a64e00f10edf7b5f98ecae52de3427e] [main_8cpp_a40769a58f3fc191e9913aa92d53f527d]
 
=== Variable Documentation ===
 
[main_8cpp_ac32d6ad6c0714685f04b0130c7f77553] [main_8cpp_ad51e2c30d9b96de16e744f7ca54f3413] [main_8cpp_a4189bb97da233315f5721d38f82f10fe] [main_8cpp_ae565de10fdcd13a32c3deef98b10b045] [main_8cpp_a5d055a05b7de1e0898d6da92e2725e5e] [main_8cpp_a4565889a5449584de4acd8be53fefaf2] [main_8cpp_af29ec1ae9c2baac59d467be4d379f21e] [main_8cpp_abd94ded7cb6d0d29c553f52d2d926623] [main_8cpp_a1694170037849281e4db8c84dacc83ce] [main_8cpp_a2a9f405177eabe05143b129a3382e406] [main_8cpp_a57e5a12456f314ffc728d5d8da312970] [main_8cpp_a92459f6ff687f04fceaed1971c63fe89] [main_8cpp_af9b56b61a692a17c47d1e55b43b28320] [main_8cpp_a05067f85fb2548dbd7f1ba726256d60d] [main_8cpp_a4acff8232e4aec9cd5c6dc200ac55ef3] [main_8cpp_a6592d52d34d039c367f711900f17fdf7] [main_8cpp_acbd9a866ed8a9b963fee4f52d8fc9d48] [main_8cpp_a1e3954fef6954d324a4cea5118be77e9] [main_8cpp_a7dba94b79a26ddcc7a47f1b1fd880353] [main_8cpp_a28071e06a55fb35b53807b2292d77dac] [main_8cpp_a7bc6234247b5d8ec59319cb33b47b719] [main_8cpp_af6a35d8bda2bbb2656b29287230d8c81] [main_8cpp_ae7734f26f6b6e0008fe2b7884b2d4ac4] [main_8cpp_a0a07a521d3525b9b7dc70c0a625adea0] [main_8cpp_a89f234133d3efe315836311cbf21c64b] [main_8cpp_a4599153a1fb61e7bcdca1b8ea7aac88a] [main_8cpp_a3caf00a2855215688b02988d68d8b710]
 
These funtions initiaize controllers and do the actual controller calculation. <span>#include ‘&quot;motor_controller.h‘&quot;</span>
 
<span>#include <math><</math>iostream<math>></math></span>
 
<span>#include <math><</math>cstring<math>></math></span>
 
<span>#include ‘&quot;ai.h‘&quot;</span>
 
<span>#include ‘&quot;configuration.h‘&quot;</span>
 
<span>#include ‘&quot;korebot.h‘&quot;</span>
 
<span>#include ‘&quot;localization_system.h‘&quot;</span>
 
<span>#include ‘&quot;Network/tcp_connection.h‘&quot;</span>
 
<span>#include ‘&quot;Network/network_bitstream.h‘&quot;</span>
 
<span>#include ‘&quot;Network/packets/motor_control_speed.h‘&quot;</span>
 
<span>#include ‘&quot;Network/packets/motor_control_manual.h‘&quot;</span>
 
<span>#include ‘&quot;Network/packets/configuration_packet.h‘&quot;</span>
 
<span>#include ‘&quot;DMCCom.h‘&quot;</span>
 
<span>#include ‘&quot;INCLUDE5.H‘&quot;</span>
 
<span>#include ‘&quot;IO5.H‘&quot;</span>
 
=== Functions ===
 
<span>'''State Model'''</span>
 
''[_amgrpc4df07eb6e37e6b16df68627217435d1] Calculate a state controller.''
 
Calculates a controller using code autogenerate from a MATLAB conroller.
 
<span>Parameters</span>
 
The vector input to the controller asa double
 
is the location where the output is stored
 
void (const double u13, double y13)
 
<span>'''State Model Full Initialization'''</span>
 
''[_amgrp90df6d656fcc497e551f2b80226e3ae7] Initialize the state controller.''
 
Initializes a controller using code autogenerate from a MATLAB conroller.
 
void (void)
 
<span>'''State Model Terminalte'''</span>
 
''[_amgrpb57c89198c125d8a20eaf14eda168e0d] Terminalte the state controller.''
 
Terminates a controller using code autogenerate from a MATLAB conroller.
 
void (void)
 
=== State Space Controlelr Configuration ‘&quot;Dance‘&quot; ===
 
Initializes a state space controller.
 
This function initializes as state space controller (H2) that has states for the quadrotor motors and causes the system to ‘&quot;Dance‘&quot;.
 
1 when the initialization is complete
 
static double 13
 
static void (void)
 
=== Detailed Description ===
 
These funtions initiaize controllers and do the actual controller calculation.
 
<span>Author</span> Dylan Gransee, Robert Larsen, Paul Uhing, Ian McInerney
 
<span>Date</span> July, 2016 These functions interact with actuators. This includes the actual controller calcuations, controller initialization, and sending the actuator commands to the FPGA. The namespace contains the data structures thqat store mast of the system’s data. Compiler macros are used to define a few modified calcuations. ssDrop defines a version the packet drop controller. posRamp defines the PIDs for the wheel velocity controllers so they are really postion controllers. LQI_strong defines a different LQI controller. ssMotors defines the H2 controller that makes the system ‘&quot;dance.‘&quot; ssTracking deines the H2 controlelr that will track reference inputs.
 
=== Function Documentation ===
 
[motor__controller_8cpp_a9ece9d0ee8318af42d3ea6a39c04438f] [motor__controller_8cpp_a50f56ed304c94c72900834bfee6880fb] [motor__controller_8cpp_ae0feaa1d69224c3c692ea4d015bf6772] [motor__controller_8cpp_aff2689042e650760bf8c24c25f98b459]
 
=== Variable Documentation ===
 
[motor__controller_8cpp_ad79f130e5c463fb8299547a7e40d3273]
 
<span>#include <math><</math>sstream<math>></math></span>
 
<span>#include ‘&quot;motor_controller_common.h‘&quot;</span>
 
<span>#include ‘&quot;Network/packets/motor_control.h‘&quot;</span>
 
<span>#include <math><</math>stddef.h<math>></math></span>
 
<span>#include <math><</math>stdlib.h<math>></math></span>
 
<span>#include <math><</math>string.h<math>></math></span>
 
=== Classes ===
 
class
 
=== Defines ===
 
#define  0.01
 
#define  -500
 
#define  500
 
=== Functions ===
 
void (const double u13, double y13)
 
void (void)
 
void (void)
 
=== Define Documentation ===
 
[motor__controller_8h_a6f7e745f759b3e4035d8465798a4e075] [motor__controller_8h_a4d585ad2fa2a686567fe72cd14428dde] [motor__controller_8h_ac32e7bee9d8c1ee37bfae3e48852535d]
 
=== Function Documentation ===
 
[motor__controller_8h_a9ece9d0ee8318af42d3ea6a39c04438f] [motor__controller_8h_ae0feaa1d69224c3c692ea4d015bf6772] [motor__controller_8h_aff2689042e650760bf8c24c25f98b459]
 
<span>#include ‘&quot;RADA_est.h‘&quot;</span>
 
<span>#include ‘&quot;RADA_split_LQG1.h‘&quot;</span>
 
<span>#include ‘&quot;RADA_LQG_s2.h‘&quot;</span>
 
<span>#include ‘&quot;packLoss0.h‘&quot;</span>
 
=== Classes ===
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
struct
 
=== Defines ===
 
#define  10
 
#define  5
 
#define  5
 
#define  13
 
#define  13
 
#define  13
 
#define  5
 
#define  8
 
#define  5
 
#define  8
 
=== Variables ===
 
const int = 40
 
static const double 513
 
=== Define Documentation ===
 
[motor__controller__common_8h_a955a986a03f5aeb6bf10e71895a3fdc3] [motor__controller__common_8h_a01d92c67268fde027859c170514a4302] [motor__controller__common_8h_a26fc6745fdc4de3ad2ee421fc25aad41] [motor__controller__common_8h_a517216260e9c5807ff1d17e6b6ccfeff] [motor__controller__common_8h_acab00577a38703b3785f3d2310227a83] [motor__controller__common_8h_aa5b8ec5acecfe7e95912d6b3d6f64bcd] [motor__controller__common_8h_a65bdc185b18744aeb24c1ed6b3f070ea] [motor__controller__common_8h_a145ce8a02c1957fca71b9e2e241b15b4] [motor__controller__common_8h_a16dd14f45595e42913f1ef8e51127484] [motor__controller__common_8h_af1ee1bb5f099e72114ef336dae59ef7c]
 
=== Variable Documentation ===
 
[motor__controller__common_8h_af72d10797fe016402e0f6b4784fb5f72] <span>'''Initial value:'''</span>
 
<span><span>89246, -1435, 0, 33, 2065, 26120, -420, 0, -78669, 1265, 0, 532, 33092</span>, <span>1435, 89246, 0, -2065, 33, 420, 26120, 0, -1265, -78669, 0, -33092, 53 2</span>, <span>0, 0, 34251, 0, 0, 0, 0, 1848, 0, 0, -43274, 0, 0</span>, <span>0, 10700, 0, 133545, 0, 0, -1685, 0, 0, 4740, 0, -802320, 0</span>, <span>-10700, 0, 0, 0, 133545, 1685, 0, 0, -4740, 0, 0, 0, -802320</span></span>
 
[motor__controller__common_8h_a3bf73988242d507676faf5e730c51951]
 
These are utility funtions. <span>#include ‘&quot;utils.h‘&quot;</span>
 
<span>#include <math><</math>cmath<math>></math></span>
 
<span>#include <math><</math>cstdio<math>></math></span>
 
<span>#include <math><</math>iostream<math>></math></span>
 
<span>#include <math><</math>termios.h<math>></math></span>
 
=== Functions ===
 
<span>'''Normalize Number'''</span>
 
''[_amgrp7182c311916e84625d4f869ea77768f4] Normalizes number from one range to another''
 
Normalizes a number within range A and B to be equivalent in range C to D
 
<span>Parameters</span>
 
is the number to be normaized
 
is the minimum value of the range of the input
 
is the maximum value of the range of the input
 
is the minimum value of the range of the output
 
is the maximum value of th erange of the output
 
<span>Returns</span> the new value normaized in in the new range as a double
 
double (double num, int A, int B, int C, int D)
 
<span>'''Radians to Dergrees'''</span>
 
''[_amgrpb9794915799365dc1c3fa4144041f823] Converts a radians to degrees.''
 
Radians to degrees convertion utility function
 
<span>Parameters</span>
 
is the angle in radians to be converted as a double
 
<span>Returns</span> the inital angle converted to degrees as a double
 
double (double angle)
 
<span>'''Get character'''</span>
 
''[_amgrp330971785c699ebf40c4e9e8bcc083e9] Gets the keyboard comands from the user.''
 
Gets the key board commands from the user. This works with the user interface and must be blocking as it has its own thread.
 
the charater pressed on the user’s keyboard
 
char ()
 
=== Detailed Description ===
 
These are utility funtions.
 
<span>Author</span> Dylan Gransee, Robert Larsen
 
<span>Date</span> July, 2016 These utility functions can be used to normalize data, convert angle units and get input from a keyboard.
 
=== Function Documentation ===
 
[utils_8cpp_af3facad10e05defa48d45b46eb9ebe7e] [utils_8cpp_a3c082bb8a8bc92f9531055f7dd87f29e] [utils_8cpp_a45cf2c44832d15363ce9ea6ecb67a6ba]
 
=== Functions ===
 
double (double num, int A, int B, int C, int D)
 
double (double angle)
 
char ()
 
=== Function Documentation ===
 
[utils_8h_af3facad10e05defa48d45b46eb9ebe7e] [utils_8h_a3c082bb8a8bc92f9531055f7dd87f29e] [utils_8h_a45cf2c44832d15363ce9ea6ecb67a6ba]
 
These funtions interact with the VRPN library. <span>#include ‘&quot;vrpn.h‘&quot;</span>
 
<span>#include <math><</math>unistd.h<math>></math></span>
 
=== Functions ===
 
<span>'''Initialize VRPN'''</span>
 
''[_amgrp20a78012704698ef784ff27869f78644] This funtion initializes the VRPN client that receives information about the UAV (pendulum) and trackables.''
 
This funtion intilialises the VRPN link with the camera system using the defined IP address to listen for data from and what port to listen at. This initializes the trackable C++ object for the two camrea system constenlation this system needs to look for.
 
void (std::string connectionName, void(<math>\ast</math>callback)(void <math>\ast</math>, const vrpn_TRACKERCB), void(<math>\ast</math>callback1)(void <math>\ast</math>, const vrpn_TRACKERCB))
 
<span>'''VRPN Go Process Trackables'''</span>
 
''[_amgrpecbaa586fe612dd88809d85ebee6a568] This loop continously checks for new trackable data then processes it using the VRPN library.''
 
This function loops forever chencking the VRPN connection for new data then processing the trackable data when it recives new trackable data for constellations it is listening for.
 
void ()
 
=== Variables ===
 
vrpn_Connection <math>\ast</math>
 
vrpn_Tracker_Remote <math>\ast</math>
 
vrpn_Tracker_Remote <math>\ast</math>
 
=== Detailed Description ===
 
These funtions interact with the VRPN library.
 
<span>Author</span> Dylan Gransee, Robert Larsen, Paul Uhing
 
<span>Date</span> July, 2016 These funtions are used to interact with the VRPN data being broadcast by the camera system.
 
=== Function Documentation ===
 
[vrpn_8cpp_aad572d3b2e50ca74bc1cbb7095bb10e6] [vrpn_8cpp_aa23c89cec3a84dfd2217574495042ed1]
 
=== Variable Documentation ===
 
[vrpn_8cpp_a82358f6a74652dcb4c021fcaf08132b0] [vrpn_8cpp_aafcf6a4836ee8542ec8b2e8bcecebd2e] [vrpn_8cpp_a1808fc275087d0affb46825e96f5f7ed]
 
<span>#include ‘&quot;vrpn_Connection.h‘&quot;</span>
 
<span>#include ‘&quot;vrpn_Tracker.h‘&quot;</span>
 
=== Classes ===
 
struct
 
=== Functions ===
 
void (std::string connectionName, void(<math>\ast</math>)(void <math>\ast</math>, const vrpn_TRACKERCB), void(<math>\ast</math>callback1)(void <math>\ast</math>, const vrpn_TRACKERCB))
 
void ()
 
=== Variables ===
 
static const std::string = ‘&quot;192.168.0.196‘&quot;
 
static const int = 60560
 
static const int = 8
 
=== Function Documentation ===
 
[vrpn_8h_aad572d3b2e50ca74bc1cbb7095bb10e6] [vrpn_8h_ac6e5e1f9755d0d510c997af6ee86c2c9]
 
=== Variable Documentation ===
 
[vrpn_8h_a352f55c57b6223930012cfd93bc03485] [vrpn_8h_a2cbd02aedf20e63c4a0be4c28afc976d] [vrpn_8h_a24ee7d8017cbda77544b28c99880eca1]

Latest revision as of 19:35, 4 August 2016

test