Ejemplo n.º 1
0
async def calibrate_misty():
    """move misty's actuators to extreme positions and record the values"""
    from misty_py.api import MistyAPI
    api = MistyAPI()
    res = {}
    await api.movement.move_head(0, 0, 0, 50)
    await api.movement.move_arms(-50, -50, 50, 50)
    await asyncio.sleep(2)

    async def _head(*_args, **_kwargs):
        await api.movement.move_head(*_args, **_kwargs)
        await asyncio.sleep(3)
        return (await api.movement.get_actuator_values(normalize=False))[a]

    for a in Actuator.pitch, Actuator.roll, Actuator.yaw:
        kwargs = {a.name: 110, 'velocity': 60}
        pos = await _head(**kwargs)

        kwargs = {a.name: -110, 'velocity': 60}
        neg = await _head(**kwargs)

        zero = await _head(0, 0, 0, 50)
        res[a] = PosZeroNeg(pos, zero, neg)

    async def _arms(**_kwargs):
        await api.movement.move_arms(**_kwargs)
        await asyncio.sleep(2)
        positions = await api.movement.get_actuator_values(normalize=False)
        return positions[Actuator.left_arm], positions[Actuator.right_arm]

    l_pos, r_pos = await _arms(l_position=110,
                               r_position=110,
                               l_velocity=80,
                               r_velocity=80)
    l_neg, r_neg = await _arms(l_position=-110,
                               r_position=-110,
                               l_velocity=80,
                               r_velocity=80)
    l_0, r_0 = await _arms(l_position=0,
                           r_position=0,
                           l_velocity=50,
                           r_velocity=50)

    res[Actuator.left_arm] = PosZeroNeg(l_pos, l_0, l_neg)
    res[Actuator.right_arm] = PosZeroNeg(r_pos, r_0, r_neg)

    print()
    print({k.name: list(v) for k, v in res.items()})
    return res
Ejemplo n.º 2
0
Archivo: fun.py Proyecto: ianb/misty_py
import random

from misty_py.api import MistyAPI
from misty_py.utils import MISTY_URL

__author__ = 'acushner'

api = MistyAPI(MISTY_URL)


async def random_simpsons_quote():
    await api.audio.play(f'simpsons_{random.choice(range(1, 101))}.mp3')
Ejemplo n.º 3
0
import os
from random import choice, random
from contextlib import suppress
from typing import Callable, Awaitable, NamedTuple

import arrow

from misty_py.api import MistyAPI
from misty_py.subscriptions import Actuator, Touch, SubType, SubPayload, LLSubType
from misty_py.misty_ws import EventCallback, UnchangedValue
from misty_py.utils import wait_first, asyncpartial, wait_in_order, wait_for_group
from misty_py.utils.core import async_run

__author__ = 'acushner'

api = MistyAPI()


def search():
    """have misty look around and scan her environment"""


async def play():
    # print(await api.movement.get_actuator_values())
    # return
    async def _handler(sp: SubPayload):
        t = LLSubType.from_sub_payload(sp)
        print(type(t), t)

    async with api.ws.sub_unsub(SubType.touch_sensor, _handler):
        await asyncio.sleep(20)
Ejemplo n.º 4
0
     dict(b=5, c=67, e=dict(a=5))])
t = json_obj()

x = t.tuse = 4
print(x)
# t = json_obj(dict(a=dict(b=4)))
t = t
print(t)
# print(json_obj())
# print(json_obj(dict(a=5), b=6))
# print(json_obj([4, 5]))

print(HeadSettings(yaw=40).json)
sys.exit

api = MistyAPI('localhost:9999')

uvloop.install()
mws = MistyWS(api)
mws2 = MistyWS(api)
print(mws is mws2)

print(RGB.from_hex(0xFFFFFF).hex)


class C:
    def __init__(self):
        self.t = asyncio.run(self.atest())
        print(self.t)

    async def atest(self):