summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2012-03-30 00:20:06 +0200
committerNicolas Schodet2012-03-30 00:21:12 +0200
commit3c491b8c4ac9b6a502e510ba9d61cbeda2b4d128 (patch)
treeca29fd16be8306fb53b30137f532edec5e3185da
parentb2eeb382f494eea1c96656cc8a9e6719a6294d8f (diff)
digital/mimot: add guybrush motor
-rw-r--r--digital/ai/tools/guybrush.py4
-rw-r--r--digital/mimot/src/dirty/models.host.c18
-rw-r--r--digital/mimot/src/dirty/simu.host.c6
-rw-r--r--digital/mimot/src/dirty/simu.host.h3
-rw-r--r--digital/mimot/tools/mimot/init.py7
5 files changed, 36 insertions, 2 deletions
diff --git a/digital/ai/tools/guybrush.py b/digital/ai/tools/guybrush.py
index d5124e9b..2f98f556 100644
--- a/digital/ai/tools/guybrush.py
+++ b/digital/ai/tools/guybrush.py
@@ -33,13 +33,13 @@ class Robot:
asserv_cmd = ('../../asserv/src/asserv/asserv.host',
'-i{instance}:asserv0', '-m9', 'robospierre')
mimot_cmd = ('../../mimot/src/dirty/dirty.host',
- '-i{instance}:mimot0', '-m9', 'robospierre')
+ '-i{instance}:mimot0', '-m9', 'guybrush')
io_hub_cmd = ('../../io-hub/src/guybrush/io_hub.host',
'-i{instance}:io0')
self.asserv = proto (asserv.Proto, asserv_cmd,
asserv.init.host['robospierre'])
self.mimot = proto (mimot.Proto, mimot_cmd,
- mimot.init.host['robospierre'])
+ mimot.init.host['guybrush'])
self.io = proto (io_hub.ProtoGuybrush, io_hub_cmd,
io_hub.init.host['guybrush'])
self.protos = (self.asserv, self.mimot, self.io)
diff --git a/digital/mimot/src/dirty/models.host.c b/digital/mimot/src/dirty/models.host.c
index bdd19e62..804edabd 100644
--- a/digital/mimot/src/dirty/models.host.c
+++ b/digital/mimot/src/dirty/models.host.c
@@ -66,6 +66,23 @@ static const struct robot_t robospierre_robot =
NULL,
};
+/* Guybrush, APBTeam 2012. */
+static const struct robot_t guybrush_robot =
+{
+ /** Auxiliary motors, NULL if not present. */
+ { &motor_model_def_amax32ghp_x16, &motor_model_def_amax32ghp_x16 },
+ /** Motors voltage (V). */
+ 24.0,
+ /** Number of steps for each auxiliary motor encoder. */
+ { 250, 250 },
+ /** Load for auxiliary motors (kg.m^2). */
+ { 1.000 * 0.05 * 0.05, 0.200 * 0.010 * 0.010 },
+ /** Sensor update function. */
+ simu_sensor_update_guybrush,
+ /** Initialisation function. */
+ NULL,
+};
+
/* Table of models. */
static const struct
{
@@ -74,6 +91,7 @@ static const struct
} models[] = {
{ "marcel", &marcel_robot },
{ "robospierre", &robospierre_robot },
+ { "guybrush", &guybrush_robot },
{ 0, 0 }
};
diff --git a/digital/mimot/src/dirty/simu.host.c b/digital/mimot/src/dirty/simu.host.c
index 7ee2c544..efb2891a 100644
--- a/digital/mimot/src/dirty/simu.host.c
+++ b/digital/mimot/src/dirty/simu.host.c
@@ -150,6 +150,12 @@ simu_sensor_update_robospierre (void)
PINC |= IO_BV (CONTACT_AUX0_ZERO_IO);
}
+/** Update sensors for Guybrush. */
+void
+simu_sensor_update_guybrush (void)
+{
+}
+
/** Do a simulation step. */
static void
simu_step (void)
diff --git a/digital/mimot/src/dirty/simu.host.h b/digital/mimot/src/dirty/simu.host.h
index 87a728b6..567fa399 100644
--- a/digital/mimot/src/dirty/simu.host.h
+++ b/digital/mimot/src/dirty/simu.host.h
@@ -48,4 +48,7 @@ simu_sensor_update_marcel (void);
void
simu_sensor_update_robospierre (void);
+void
+simu_sensor_update_guybrush (void);
+
#endif /* simu_host_h */
diff --git a/digital/mimot/tools/mimot/init.py b/digital/mimot/tools/mimot/init.py
index 5dbe1a87..7ce31c5a 100644
--- a/digital/mimot/tools/mimot/init.py
+++ b/digital/mimot/tools/mimot/init.py
@@ -17,9 +17,16 @@ target_robospierre = dict (
a1_error_limit = 64, a1_bd_speed_limit = 0x08, a1_bd_counter_limit = 5,
e_sat = 0x3ff, d_sat = 0x1ff,
)
+target_guybrush = dict (
+ a0_kp = 1, a0_kd = 16,
+ a0_acc = 4, a0_speed_max = 0x20, a0_speed_slow = 0x02,
+ a0_error_limit = 32, a0_bd_speed_limit = 0x08, a0_bd_counter_limit = 125,
+ e_sat = 0x3ff, d_sat = 0x1ff,
+ )
target = {
'marcel': target_marcel,
'robospierre': target_robospierre,
+ 'guybrush': target_guybrush,
}
host = target