def __init__(self): """ For simplicity, we use destination in local coordinate system for calculating. """ self.nearDistance = NEARBY_SWITCHING_DISTANCE self.vx = 0 self.bb = getbb()
def getSkill(): bb = getbb() skill = bb.parameters.skill behaivorPackages = ["roles", "skills", "demo", "headskills", "states"] foundSkill = False skillDir = os.getcwd() skillClass = None for package in behaivorPackages: modules = ['{}/{}'.format(skillDir, package)] allName = [name for _, name, _ in pkgutil.iter_modules(modules)] if skill not in allName: continue skillModule = __import__('{}.{}'.format(package, skill), fromlist=[skill]) skillClass = getattr(skillModule, skill) foundSkill = True print '\n[python] Module --- {} --- imported\n'.format(skill) if not foundSkill: raise ImportError('Can not find skill: {}'.format(skill)) elif not issubclass(skillClass, Task): raise TypeError('Found skill is not a Task') return skillClass()
def main(): skillInstance = getSkill() rate = rospy.Rate(60) bb = getbb() brain = Brain() while not rospy.is_shutdown(): bb.resetCmd() bb.checkMotionConnection() # brain brain.tick() skillInstance.tick() bb.publish() rate.sleep()
import logging from Blackboard import getbb logger = logging.getLogger('behavior') logger.setLevel(logging.DEBUG) logFolder = './log' fileHandler = logging.FileHandler(logFolder) logger.addHandler(fileHandler) consoleHandler = logging.StreamHandler() logger.addHandler(consoleHandler) bb = getbb() ENABLE_LOG = bb.parameters.enableLog if ENABLE_LOG: def debug(*args, **kwargs): logger.debug(*args, **kwargs) def info(*args, **kwargs): logger.info(*args, **kwargs) def warning(*args, **kwargs): logger.warning(*args, **kwargs) def error(*args, **kwargs): logger.error(*args, **kwargs)
def __init__(self): # Status Code self.status = Status.FRESH self._children = [] self.bb = getbb() self.init()