From 3c491b8c4ac9b6a502e510ba9d61cbeda2b4d128 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 30 Mar 2012 00:20:06 +0200 Subject: digital/mimot: add guybrush motor --- digital/ai/tools/guybrush.py | 4 ++-- digital/mimot/src/dirty/models.host.c | 18 ++++++++++++++++++ digital/mimot/src/dirty/simu.host.c | 6 ++++++ digital/mimot/src/dirty/simu.host.h | 3 +++ digital/mimot/tools/mimot/init.py | 7 +++++++ 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 -- cgit v1.2.3