sbot
- SourceBots Robot API
This is the API for SourceBots, library for writing Robotics APIs. It will first be deployed at Smallpeice 2023.
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]
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()
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
.