summaryrefslogtreecommitdiffhomepage
path: root/digital/asserv/src/asserv/models.host.h
diff options
context:
space:
mode:
Diffstat (limited to 'digital/asserv/src/asserv/models.host.h')
-rw-r--r--digital/asserv/src/asserv/models.host.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/digital/asserv/src/asserv/models.host.h b/digital/asserv/src/asserv/models.host.h
index d8f1dcb8..d865aa6b 100644
--- a/digital/asserv/src/asserv/models.host.h
+++ b/digital/asserv/src/asserv/models.host.h
@@ -24,6 +24,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* }}} */
+#include "modules/motor/motor_model/motor_model_defs.host.h"
#define ECHANT_PERIOD (1.0 / (14745600.0 / 256 / 256))
@@ -34,7 +35,9 @@
struct robot_t
{
/** Main motors. */
- const struct motor_def_t *main_motor;
+ const motor_model_def_t *main_motor;
+ /** Motors voltage (V). */
+ double u_max;
/** Number of steps on the main motors encoders. */
int main_encoder_steps;
/** Wheel radius (m). */
@@ -52,9 +55,11 @@ struct robot_t
/** Distance between the encoders wheels (m). */
double encoder_footing;
/** Auxiliary motors, NULL if not present. */
- const struct motor_def_t *aux_motor[AC_ASSERV_AUX_NB];
+ const motor_model_def_t *aux_motor[AC_ASSERV_AUX_NB];
/** Number of steps for each auxiliary motor encoder. */
int aux_encoder_steps[AC_ASSERV_AUX_NB];
+ /** Load for auxiliary motors (kg.m^2). */
+ double aux_load[AC_ASSERV_AUX_NB];
/** Sensor update function. */
void (*sensor_update) (void);
/** Table test function, return false if given robot point is not in
@@ -62,6 +67,9 @@ struct robot_t
int (*table_test) (double p_x, double p_y);
/** Robot corners, from front left, then clockwise. */
double corners[CORNERS_NB][2];
+ /** Initialisation function. */
+ void (*init) (const struct robot_t *robot, motor_model_t *main_motor_left,
+ motor_model_t *main_motor_right, motor_model_t aux_motor[]);
};
/** Get a pointer to a model by name, or return 0. */
@@ -70,7 +78,7 @@ models_get (const char *name);
/** Initialise simulation models. */
void
-models_init (const struct robot_t *robot, struct motor_t *main_motor_left,
- struct motor_t *main_motor_right, struct motor_t aux_motor[]);
+models_init (const struct robot_t *robot, motor_model_t *main_motor_left,
+ motor_model_t *main_motor_right, motor_model_t aux_motor[]);
#endif /* models_host_h */