Skip to content
eviasPublic

About

A comprehensive communication protocol for connected edge devices.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evias/gobots

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.

License Go version v0.x-dev

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.

What Is Gobots?

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.Robot structure 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 cmd package 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 stop

Connect and execute commands directly with gobots exec:

$ gobots exec move --speed 10 --direction forward -d drivers/ELEGOO/smartcar-v4.yaml

Find 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 0

Execute runnable flows with gobots run:

$ gobots run flows/ELEGOO/smartcar-v4/parking.yaml

License

Copyright 2025-2026 Grégory Saive greg@evi.as for re:Software S.L. (resoftware.es).

Licensed under the 3-Clause BSD License.

About

A comprehensive communication protocol for connected edge devices.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages