Esempio n. 1
0
 def __init__(self, loop: asyncio.AbstractEventLoop, datadir = "data"):
     self.datadir = datadir
     self.rvr = SpheroRvrAsync(dal=SerialAsyncDal(loop))
     self.oakD = OakD()
     self.oakD.startDevice()
     self.datadir = f"v2-{int(time.time())}"
     os.mkdir(self.datadir)
Esempio n. 2
0
 def __init__(self, loop: asyncio.AbstractEventLoop, datadir: str = "data"):
     self.datadir = datadir
     self.rvr = SpheroRvrAsync(dal=SerialAsyncDal(loop))
     self.camera = PiCamera(resolution=(320, 240), framerate=30)
     self.gps = gps(mode=WATCH_ENABLE | WATCH_NEWSTYLE)
     self.busy = False
     try:
         self.interp = tf.lite.Interpreter("steer.tflite")
         self.interp.allocate_tensors()
     except Exception:
         pass
Esempio n. 3
0
    async def init_sphero(self):
        # init the rvr
        # TODO fix asyncio problems and use the asyncio version
        logging.info("RVR: connecting")
        self.dal = SerialAsyncDal(asyncio.get_running_loop())
        self.rvr = SpheroRvrAsync(self.dal)

        # fix rvr blocking all default logging after init...
        null_handler = [
            h for h in logging.getLogger().handlers if h.name == "null_handler"
        ][0]
        logging.getLogger().removeHandler(null_handler)

        logging.info("RVR: waking up")
        await self.rvr.wake()
        logging.info("RVR: resetting yaw")
        await self.rvr.reset_yaw()
        logging.info("RVR: init done")
import sys
import os
sys.path.append(
    os.path.abspath(os.path.join(os.path.dirname(__file__), '../../')))

import RPi.GPIO as GPIO
import asyncio

from sphero_sdk import SpheroRvrAsync
from sphero_sdk import SerialAsyncDal
import time

loop = asyncio.get_event_loop()
rvr = SpheroRvrAsync(dal=SerialAsyncDal(loop))
GPIO.setmode(GPIO.BCM)

right_trigger = 20
right_echo = 21
left_trigger = 27
left_echo = 18

right_slesh = 15
left_slesh = 15

GPIO.setup(left_trigger, GPIO.OUT)
GPIO.setup(left_echo, GPIO.IN)
GPIO.setup(right_trigger, GPIO.OUT)
GPIO.setup(right_echo, GPIO.IN)


def distance_left():
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../')))

import asyncio
from sphero_sdk import SpheroRvrAsync
from sphero_sdk import SerialAsyncDal
from sphero_sdk import InfraredCodes
from sphero_sdk import RawMotorModesEnum


loop = asyncio.get_event_loop()

rvr = SpheroRvrAsync(
    dal=SerialAsyncDal(
        loop
    )
)


async def main():
    """ This program sets up RVR to communicate with another robot, e.g. BOLT, capable of infrared communication.
    """

    await rvr.wake()

    # Give RVR time to wake up
    await asyncio.sleep(2)

    await rvr.start_robot_to_robot_infrared_broadcasting(
        far_code=InfraredCodes.one.value,
Esempio n. 6
0
	def __init__( self, loop ):
		self.rvr = SpheroRvrAsync(
			dal=SerialAsyncDal(
				loop
			)
		)
Esempio n. 7
0
        service=RvrStreamingServices.color_detection,
        handler=color_detected_handler)
    if debug: print("Starting accelerometer handler")
    await rvr.sensor_control.add_sensor_data_handler(
        service=RvrStreamingServices.accelerometer,
        handler=accelerometer_handler)
    if debug: print("Starting ambient light handler")
    await rvr.sensor_control.add_sensor_data_handler(
        service=RvrStreamingServices.ambient_light,
        handler=ambient_light_handler)
    if debug: print("Starting encoder handler")
    await rvr.sensor_control.add_sensor_data_handler(
        service=RvrStreamingServices.encoders, handler=encoder_handler)
    if debug: print("Starting sensor control")
    global delay
    await rvr.sensor_control.start(interval=delay)


if __name__ == '__main__':
    try:
        loop = asyncio.get_event_loop()
        args = sys.argv[1:]
        rvr = SpheroRvrAsync(dal=SerialAsyncDal(loop, port_id=args[0]))
        asyncio.ensure_future(main())
        loop.run_forever()

    except KeyboardInterrupt:
        print('\nProgram terminated with keyboard interrupt.')

        loop.run_until_complete(
            asyncio.gather(rvr.sensor_control.clear(), rvr.close()))
Esempio n. 8
0
from geometry_msgs.msg import PoseWithCovariance
from geometry_msgs.msg import Pose
from geometry_msgs.msg import TwistWithCovariance
from geometry_msgs.msg import Twist
from geometry_msgs.msg import Point
from geometry_msgs.msg import Quaternion
from geometry_msgs.msg import Vector3
from nav_msgs.msg import Odometry
from std_msgs.msg import Header

MAX_SENSOR_VALUE = 2**31

loop = asyncio.get_event_loop()

rvr = SpheroRvrAsync(dal=SerialAsyncDal(loop
                                        # device='/dev/ttyTHS1',
                                        ))

logging.basicConfig(level=logging.DEBUG)

num_msgs_received = {}

position = Point()
orientation = Quaternion()
pose = Pose(
    position=position,
    orientation=orientation,
)
pose_with_covariance = PoseWithCovariance(pose=pose, )

linear = Vector3()