From 69305ae1ed6da084b6ee65dba3ce44f0d6cbe2d1 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 30 Apr 2009 09:53:44 +0200 Subject: * host/simu, digital/io/tools: - new simulation infrastructure. --- host/simu/robots/giboulee/model/__init__.py | 0 host/simu/robots/giboulee/model/arm.py | 38 +++++++++++++++++++++++++++++ host/simu/robots/giboulee/model/bag.py | 38 +++++++++++++++++++++++++++++ host/simu/robots/giboulee/model/sorter.py | 32 ++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 host/simu/robots/giboulee/model/__init__.py create mode 100644 host/simu/robots/giboulee/model/arm.py create mode 100644 host/simu/robots/giboulee/model/bag.py create mode 100644 host/simu/robots/giboulee/model/sorter.py (limited to 'host/simu/robots/giboulee/model') diff --git a/host/simu/robots/giboulee/model/__init__.py b/host/simu/robots/giboulee/model/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/host/simu/robots/giboulee/model/arm.py b/host/simu/robots/giboulee/model/arm.py new file mode 100644 index 00000000..cfefd11b --- /dev/null +++ b/host/simu/robots/giboulee/model/arm.py @@ -0,0 +1,38 @@ +# simu - Robot simulation. {{{ +# +# Copyright (C) 2009 Nicolas Schodet +# +# APBTeam: +# Web: http://apbteam.org/ +# Email: team AT apbteam DOT org +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# }}} +"""Giboulee arm.""" +from utils.observable import Observable + +class Arm (Observable): + + def __init__ (self, motor_link): + Observable.__init__ (self) + self.motor_link = motor_link + self.motor_link.register (self.__motor_notified) + self.__motor_notified () + + def __motor_notified (self): + self.angle = self.motor_link.angle + self.notify () + diff --git a/host/simu/robots/giboulee/model/bag.py b/host/simu/robots/giboulee/model/bag.py new file mode 100644 index 00000000..fadccabe --- /dev/null +++ b/host/simu/robots/giboulee/model/bag.py @@ -0,0 +1,38 @@ +# simu - Robot simulation. {{{ +# +# Copyright (C) 2009 Nicolas Schodet +# +# APBTeam: +# Web: http://apbteam.org/ +# Email: team AT apbteam DOT org +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# }}} +"""Giboulee bag of models.""" +from simu.model.switch import Switch +from simu.model.position import Position +from simu.robots.giboulee.model.arm import Arm +from simu.robots.giboulee.model.sorter import Sorter + +class Bag: + + def __init__ (self, link_bag): + self.jack = Switch (link_bag.io.jack) + self.color_switch = Switch (link_bag.io.color_switch) + self.position = Position (link_bag.asserv.position) + self.arm = Arm (link_bag.asserv.aux[0]) + self.sorter = Sorter (link_bag.io.servo[0:5], link_bag.io.servo[5]) + diff --git a/host/simu/robots/giboulee/model/sorter.py b/host/simu/robots/giboulee/model/sorter.py new file mode 100644 index 00000000..042b0717 --- /dev/null +++ b/host/simu/robots/giboulee/model/sorter.py @@ -0,0 +1,32 @@ +# simu - Robot simulation. {{{ +# +# Copyright (C) 2009 Nicolas Schodet +# +# APBTeam: +# Web: http://apbteam.org/ +# Email: team AT apbteam DOT org +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# }}} +"""Giboulee balls sorter.""" +from simu.model.servo import Servo + +class Sorter: + + def __init__ (self, trap_servo_links, door_servo_link): + self.traps = [ Servo (link) for link in trap_servo_links ] + self.door = Servo (door_servo_link) + -- cgit v1.2.3