Changeset 29b9de0 in robotics


Ignore:
Timestamp:
08/13/13 04:33:12 (8 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master
Children:
044275d
Parents:
799ebc8
Message:
  • Final version for live control at Sudo Room 2013.08.11
Location:
wheelchair/python
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • wheelchair/python/DoraRecieve.py

    r799ebc8 r29b9de0  
    4343# '\n' is equivalent to C++ endl 
    4444DIRECTION_CODES = { 
    45         '0': '', \ 
    46         '1': 'left', \ 
    47         '2': 'right', \ 
    48         '3': 'reverse', \ 
    49         '4': 'forward', \ 
     45        '0': 'repeat', \ 
     46        '1': 'forward', \ 
     47        '2': 'reverse', \ 
     48        '3': 'left', \ 
     49        '4': 'right', \ 
    5050        '5': 'stop', 
    51         '0\n': '', \ 
    52         '1\n': 'left', \ 
    53         '2\n': 'right', \ 
    54         '3\n': 'reverse', \ 
    55         '4\n': 'forward', \ 
     51        '0\n': 'repeat', \ 
     52        '1\n': 'forward', \ 
     53        '2\n': 'reverse', \ 
     54        '3\n': 'left', \ 
     55        '4\n': 'right', \ 
    5656        '5\n': 'stop' 
    5757} 
     
    120120                 
    121121                 
     122                self.last_direction = 'repeat' 
     123                 
     124                 
    122125                self.wheelchair = wheelchair_control.puzzlebox_brainstorms_wheelchair_control( \ 
    123126                        device_address=wheelchair_control.DEFAULT_SERIAL_DEVICE, \ 
     
    128131                self.wheelchair.start() 
    129132                 
     133                 
    130134                if DEBUG: 
    131135                        print "Wheelchair Started" 
     
    137141                 
    138142                while self.udpSocket.hasPendingDatagrams(): 
    139  
    140143 
    141144                        datagram, host, port = self.udpSocket.readDatagram(self.udpSocket.pendingDatagramSize()) 
     
    148151                                # Python v2. 
    149152                                pass 
    150  
    151  
    152                         #if DEBUG: 
    153                                 #print "Datagram: %s" % datagram 
    154                                 #print datagram 
    155                                 #print 
    156                                 #print type(datagram) 
    157                                 #print 
    158  
    159  
     153                         
    160154 
    161155                        try: 
    162156                                 
    163                         #if True: 
    164                                 #self.wheelchair.sendCommand('1','i') 
    165157                                 
    166158                                datagram = str(datagram) 
    167159                                 
    168                                 #if DEBUG: 
    169                                         #print "Datagram str():", 
    170                                         #print datagram 
    171                                         #print 
    172                                         #print type(datagram) 
    173                                         #print 
    174                                  
    175                                 #DIRECTION_CODES = { 
    176                                         #'0': '', \ 
    177                                         #'1': 'left', \ 
    178                                         #'2': 'right', \ 
    179                                         #'3': 'reverse', \ 
    180                                         #'4': 'forward', \ 
    181                                         #'5': 'stop' 
    182                                 #} 
    183                                  
    184                                 #KEY_CODES = { 
    185                                         #'':        '', \ 
    186                                         #'left':    'j', \ 
    187                                         #'right':   'l', \ 
    188                                         #'reverse': 'k', \ 
    189                                         #'forward': 'i', \ 
    190                                         #'stop':    ' ' 
    191                                 #} 
    192                                  
    193160                                 
    194161                                if (datagram in DIRECTION_CODES.keys()): 
     
    196163                                        direction = DIRECTION_CODES[datagram] 
    197164                                         
    198                                         #print direction 
     165                                        print "NEW direction:", 
     166                                        print direction 
     167                                        print "last_direction:", 
     168                                        print self.last_direction 
     169                                         
     170                                         
     171                                        if (direction == 'repeat'): 
     172                                                direction = self.last_direction 
     173                                        else: 
     174                                                print 
     175                                                print "[====================================================]" 
     176                                                print 
    199177                                         
    200178                                        if ((direction in KEY_CODES.keys()) and \ 
     
    210188                                                 
    211189                                                self.wheelchair.sendCommand('%i' % DEFAULT_SPEED, key_code) 
    212                          
     190                                                 
     191                                                 
     192                                        self.last_direction = direction 
     193                                         
     194                                         
     195                                        #print "AFTER" 
     196                                        #print "last_direction:", 
     197                                        #print self.last_direction 
     198                                 
     199                                 
    213200                                else: 
    214201                                         
    215                                         if DEBUG: 
     202                                        if DEBUG > 1: 
    216203                                                print "[Dora] Direction not recognized:", 
    217204                                                print datagram 
     
    224211                         
    225212                         
    226                         self.statusLabel.setText("Received datagram: \"%s\"" % datagram) 
     213                        self.statusLabel.setText("Received datagram: \"%s\"" % datagram.strip()) 
    227214 
    228215 
     
    254241        receiver.show() 
    255242         
    256         if DEBUG: 
     243        if DEBUG > 1: 
    257244                print "Receiver Showing" 
    258245 
  • wheelchair/python/Wheelchair_Control.py

    r799ebc8 r29b9de0  
    6464SAFETY_WHEELCHAIR_SPEED = 0 
    6565 
    66 DEFAULT_WHEELCHAIR_SPEED = 7 
     66DEFAULT_WHEELCHAIR_SPEED = 5 
    6767 
    6868DEFAULT_WHEELCHAIR_COMMAND = 'stop' 
     
    8080GUI_SLEEP_TIMER = 1 * 100 # 100ms 
    8181DEVICE_KEEPALIVE_TIMER = 4 * 1000 # 4s 
    82 COMMAND_KEEPALIVE_TIMER = 4 * 100 # 400 ms 
     82#COMMAND_KEEPALIVE_TIMER = 4 * 100 # 400 ms 
     83COMMAND_KEEPALIVE_TIMER = 5 * 100 # 500 ms 
    8384 
    8485 
     
    142143                self.initializeWheelchair() 
    143144                 
    144                  
    145                 #self.timer = QtCore.QTimer(self) 
    146                 #QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.deviceKeepalive) 
    147                 #self.timer.start(COMMAND_KEEPALIVE_TIMER) 
     145                # Repeat sending device keepalive 
     146                self.timer = QtCore.QTimer(self) 
     147                QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.deviceKeepalive) 
     148                self.timer.start(DEVICE_KEEPALIVE_TIMER) 
     149                 
     150                # Repeat sending current drive command 
     151                #self.repeat_timer = QtCore.QTimer(self) 
     152                #QtCore.QObject.connect(self.repeat_timer, QtCore.SIGNAL("timeout()"), self.commandKeepalive) 
     153                #self.repeat_timer.start(COMMAND_KEEPALIVE_TIMER) 
    148154         
    149155         
     
    266272                self.device.write(DEVICE_KEEPALIVE_CHECKSUM) 
    267273                 
    268                 self.moveBot('fwd') 
     274                #self.moveBot('fwd') 
     275         
     276         
     277        ################################################################## 
     278         
     279        def commandKeepalive(self): 
     280                 
     281                if self.DEBUG: 
     282                        print "commandKeepalive(%s)" % self.wheelchair_command 
     283                         
     284                self.moveBot(self.wheelchair_command) 
    269285         
    270286         
     
    272288         
    273289        def sendCommand(self, speed, command): 
    274                  
    275                 #output = '%s%s' % (COMMAND_CHARACTER, \ 
    276                         #WHEELCHAIR_COMMANDS[speed][command]) 
    277                  
    278290                 
    279291                if speed != self.wheelchair_speed: 
     
    283295                self.moveBot(command) 
    284296                 
    285                 #self.device.write(output) 
    286                  
    287                 #if self.DEBUG: 
    288                         #print "--> Wheelchair Command: %s (Speed %i) [%s]" % \ 
    289                            #(command, speed, output) 
    290                  
    291                 if self.DEBUG: 
    292                         print "--> Wheelchair Command: %s (Speed %i)" % \ 
    293                            (command, self.speed) 
    294                  
    295                 #self.wheelchair_speed = speed 
     297                 
     298                if self.DEBUG: 
     299                        #print "--> Wheelchair Command: %s (Speed %i)" % \ 
     300                           #(command, self.speed) 
     301                        print "--> Wheelchair Command: %s" % command 
     302                 
     303                 
    296304                self.wheelchair_speed = self.speed 
    297                  
    298305                self.wheelchair_command = command 
    299306         
Note: See TracChangeset for help on using the changeset viewer.