gobots is a software package that introduces the concept of botfiles
which describe commands, tasks and workflows executed by robots,
or any type of edge devices.
Admittedly, the term robots may be somewhat "broad". This project is a direct
result of countless nights spent trying to talk with specific Arduino boards.
In short: Sick of reverse-engineering communication protocols for your devices?
Now is the time to switch to gobots, probability has it that at least someone
on the Internet has already described/mapped your edge device into a botfile.
Package gobots defines structures and interfaces to connect and communicate with robot devices and/or any connected edge devices.
The gobots software introduces botfiles and the Wire protocol to
facilitate inter-devices communication over network or serial connections.
- The
robot.Robotstructure provides a connection wrapper and communication channel for connected edge devices. This implementation is agnostic to the actual edge devices' hardware and installed firmware. - A
cmdpackage is provided which serves as a first draft interface for connection and communication with supported edge devices through YAML driver files and the Wire messaging format.
## Usage
A terminal user interface is provided with an interactive console to connect directly with edge devices and execute commands:
# Open an interactive console to a device using a driver file
$ gobots console drivers/ELEGOO/smartcar-v4.yaml
# Open an interactive console to a device using a custom host and port
$ gobots console 192.168.4.1:100 -d drivers/ELEGOO/smartcar-v4.yaml
# Execute commands with parameters from the console directly
bot> exec move --speed 10 --direction forward
bot> exec stopConnect and execute commands directly with gobots exec:
$ gobots exec move --speed 10 --direction forward -d drivers/ELEGOO/smartcar-v4.yamlFind out information about specific edge device drivers with gobots driver:
# Accepts multiple --driver options
$ gobots driver info -d drivers/robot.yaml
$ gobots driver info -d drivers/ELEGOO/smartcar-v4.yaml -d drivers/robot.yaml
# Enumerate all drivers found in a directory
$ gobots driver list --include drivers/ --include /home/user/downloaded_drivers/Test your driver commands using the robot.Simulator with gobots driver test:
# Accepts any driver command.
$ gobots driver test heartbeat -d drivers/ELEGOO/smartcar-v4.yaml --count 25 --interval 10ms
# Parses the command for sanity but doesn't transmit it (dry run).
$ gobots driver test move --speed 70 --direction forward --count 1000 --interval 0Execute runnable flows with gobots run:
$ gobots run flows/ELEGOO/smartcar-v4/parking.yamlCopyright 2025-2026 Grégory Saive greg@evi.as for re:Software S.L. (resoftware.es).
Licensed under the 3-Clause BSD License.