Beispiel #1
0
def subscriber(**kwargs):
    geckopy.init_node(**kwargs)

    MAP_SIZE_PIXELS = 500
    MAP_SIZE_METERS = 10
    slam = RMHC_SLAM(LDS01_Model(), MAP_SIZE_PIXELS, MAP_SIZE_METERS)
    display = SlamShow(MAP_SIZE_PIXELS,
                       MAP_SIZE_METERS * 1000 / MAP_SIZE_PIXELS, 'SLAM')
    mapbytes = bytearray(MAP_SIZE_PIXELS * MAP_SIZE_PIXELS)

    # callback function
    def f(topic, msg):
        # print("recv[{}]: {}".format(topic, msg))
        geckopy.loginfo(msg.timestamp)
        pts = msg.scan
        slam.update(pts)

        # Get current robot position
        x, y, theta = slam.getpos()

        # Get current map bytes as grayscale
        slam.getmap(mapbytes)

        display.displayMap(mapbytes)
        display.setPose(x, y, theta)
        display.refresh()

    geckopy.Subscriber(['scan'], f)

    geckopy.spin(20)  # it defaults to 100hz, this is just to slow it down
    print('sub bye ...')
Beispiel #2
0
def subscriber(**kwargs):
    geckopy.init_node(**kwargs)
    c = Callback()
    geckopy.Subscriber(['camera'], c.callback)

    geckopy.spin(2) # it defaults to 100hz, this is just to slow it down
    print('sub bye ...')
Beispiel #3
0
def go(**kwargs):
    geckopy.init_node(**kwargs)
    # global_logger = geckopy.log

    test = kwargs.get('test', True)
    robot = RobotTest(test)

    # s = geckopy.Subscriber(['cmd'], robot.handle_msg)
    geckopy.spin(5)
Beispiel #4
0
def subscriber(**kwargs):
    geckopy.init_node(**kwargs)

    topic = kwargs.get('topic')
    c = Callback(topic)
    geckopy.Subscriber([topic], c.callback)
    # geckopy.on_shutdown(c.bye)

    geckopy.spin(20)  # it defaults to 100hz, this is just to slow it down
    print('sub bye ...')
Beispiel #5
0
def subscriber(**kwargs):
    # geckopy = GeckoPy()
    geckopy.init_node(**kwargs)

    def f(topic, msg):
        print(">> {}: {}".format(topic, msg))

    topic = kwargs.get('topic')
    geckopy.Subscriber([topic], f)

    geckopy.spin()
Beispiel #6
0
def subscriber(**kwargs):
    geckopy.init_node(**kwargs)

    def callback(topic, msg):
        img = msg2image(msg)
        geckopy.logdebug('image timestamp: {:.3f}'.format(msg.timestamp))
        cv2.imshow('image', img)
        cv2.waitKey(10)

    geckopy.Subscriber(['camera'], callback)

    geckopy.spin(20)  # it defaults to 100hz, this is just to slow it down
    print('sub bye ...')
                        '--topic',
                        help='log topic name, default is "log"',
                        default='log')
    args = vars(parser.parse_args())
    return args


def format_print(topic, msg):
    # print(msg.level)
    # msg format: {proc_name, level, text}
    if msg.level == 'DEBUG': color = Fore.CYAN
    elif msg.level == 'WARN': color = Fore.YELLOW
    elif msg.level == 'ERROR': color = Fore.RED
    else: color = Fore.GREEN

    # shorten proc names??
    print(Style.BRIGHT + color + '>> {}:'.format(msg.name[:8]) +
          Style.RESET_ALL + msg.text)
    # print(">> {}: {}".format(topic, msg))


if __name__ == "__main__":
    args = handleArgs()
    topic = args['topic']

    kwargs = {'host': args['host']}

    geckopy.init_node(**kwargs)
    geckopy.Subscriber([topic], format_print)
    geckopy.spin()