The robot API for the Smallpeice summer school
Project description
sbot
sbot
- SourceBots Robot API
This is the API for SourceBots, library for writing Robotics APIs. It will first be deployed at Smallpeice 2023.
Installation
If you wish to install openCV from your package manager, you can install the base package with:
pip install sbot
To install the full package, including openCV, you can install with:
pip install sbot[vision]
Usage
The main entry point for the API is the Robot
class.
Intantiating this class will automatically detect and connect to any SR v4 boards connected to the device.
By default, the Robot
class will wait for the start button on the power board to be pressed before continuing.
from sbot import Robot
r = Robot()
To disable the waiting for the start button, you can pass wait_for_start=False
to the constructor.
The wait_for_start
method needs to be called before the metadata is available.
from sbot import Robot
r = Robot(wait_for_start=False)
# Setup in here
r.wait_start()
Developer Notes
There are a number of considerations that have been made in the design of this API. Some of these may not be immediately obvious, so they are documented below.
- The API is designed to raise exceptions for incorrect actions, such as trying to modify the output dictionary or assign a value directly to the motor object.
MappingProxyType
is used to prevent the user from adding, removing or overwriting keys in any parts of the API that return a dictionary.tuple
is used to prevent the user from adding, removing or overwriting items in any parts of the API that would return a list.__slots__
is used to prevent the user from adding, removing or overwriting attributes in any parts of the API.sbot.serial_wrapper.SerialWrapper
handles automatic reconnection to the serial port if the connection is lost and impleents 3 retries on any serial operation before raising aBoardDisconnectionError
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.