Telemetry monitor, and mission scripting suite for tracked robotic platforms

botracked is a modular Python desktop application, telemetry monitor, and mission scripting suite for tracked robotic platforms.
Developed in python code.
The README is used to introduce the modules and provide instructions on how to install the modules, any machine dependencies it may have and any other information that should be provided before the modules are installed.
Table of Contents
Used next development environment

Currently there are three ways to install package
botracked is located at pypi.org.
You can install by using pip
# python3
pip3 install botracked
Navigate to release page download and extract release archive.
To install botracked type the following
tar xvzf botracked-x.y.z.tar.gz
cd botracked-x.y.z/
# python3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
python3 -m pip install --upgrade setuptools
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade build
pip3 install -r requirements.txt
python3 -m build --no-isolation --wheel
pip3 install ./dist/botracked-*-py3-none-any.whl
rm -f get-pip.py
chmod 755 /usr/local/lib/python3.10/dist-packages/usr/local/bin/botracked_run.py
ln -s /usr/local/lib/python3.10/dist-packages/usr/local/bin/botracked_run.py /usr/local/bin/botracked_run.py
Navigate to release page download and extract release archive.
To install botracked locate and run setup.py with arguments
tar xvzf botracked-x.y.z.tar.gz
cd botracked-x.y.z
# python3
pip3 install -r requirements.txt
python3 setup.py install_lib
python3 setup.py install_egg_info
You can use Dockerfile to create image/container.
botracked requires next modules and libraries
botracked is based on OOP and Clean Architecture.
Tool structure
Click to expand framework structure</summary>
botracked/
βββ core/
βΒ Β βββ __init__.py
βΒ Β βββ model/
βΒ Β βΒ Β βββ connection_params.py
βΒ Β βΒ Β βββ dsl/
βΒ Β βΒ Β βΒ Β βββ ast_instruction.py
βΒ Β βΒ Β βΒ Β βββ compiled_step.py
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βΒ Β βββ token.py
βΒ Β βΒ Β βΒ Β βββ token_type.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ motion_command.py
βΒ Β βΒ Β βββ protocol_opcode.py
βΒ Β βΒ Β βββ telemetry_data.py
βΒ Β βββ service/
βΒ Β βββ bot_motion_service.py
βΒ Β βββ bot_service.py
βΒ Β βββ bot_telemetry_service.py
βΒ Β βββ communication/
βΒ Β βΒ Β βββ ibinary_codec.py
βΒ Β βΒ Β βββ ibot_transport.py
βΒ Β βΒ Β βββ icrc8_calculator.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ itelemetry_observer.py
βΒ Β βββ dsl/
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ itbot_compiler.py
βΒ Β βΒ Β βββ itbot_dsl_service.py
βΒ Β βΒ Β βββ itbot_lexer.py
βΒ Β βΒ Β βββ itbot_parser.py
βΒ Β βΒ Β βββ tbot_compiler.py
βΒ Β βΒ Β βββ tbot_dsl_service.py
βΒ Β βΒ Β βββ tbot_lexer.py
βΒ Β βΒ Β βββ tbot_parser.py
βΒ Β βββ ibot_connection_service.py
βΒ Β βββ ibot_mission_service.py
βΒ Β βββ ibot_motion_service.py
βΒ Β βββ ibot_service.py
βΒ Β βββ ibot_telemetry_service.py
βΒ Β βββ __init__.py
βΒ Β βββ mission_runner.py
βΒ Β βββ telemetry_poller.py
βββ engine.py
βββ infrastructure/
βΒ Β βββ cli/
βΒ Β βΒ Β βββ engine.py
βΒ Β βΒ Β βββ icli.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ setup/
βΒ Β βΒ Β βββ bundle.py
βΒ Β βΒ Β βββ dep_validator.py
βΒ Β βΒ Β βββ dependencies.py
βΒ Β βΒ Β βββ factory.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ keys.py
βΒ Β βΒ Β βββ opt_validator.py
βΒ Β βΒ Β βββ options.py
βΒ Β βΒ Β βββ registry.py
βΒ Β βΒ Β βββ validator.py
βΒ Β βββ command/
βΒ Β βΒ Β βββ command.py
βΒ Β βΒ Β βββ icommand_definition.py
βΒ Β βΒ Β βββ icommand_executor.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ studio_command_definition.py
βΒ Β βΒ Β βββ studio_command_executor.py
βΒ Β βββ communication/
βΒ Β βΒ Β βββ binary_codec.py
βΒ Β βΒ Β βββ crc8_calculator.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ preferences/
βΒ Β βΒ Β βΒ Β βββ connection_preferences_repository.py
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ serial_transport.py
βΒ Β βΒ Β βββ tcp_transport.py
βΒ Β βββ config/
βΒ Β βΒ Β βββ botracked.cfg
βΒ Β βΒ Β βββ botracked.logo
βΒ Β βΒ Β βββ scheme.json
βΒ Β βββ gui/
βΒ Β βΒ Β βββ connection/
βΒ Β βΒ Β βΒ Β βββ connection_callbacks.py
βΒ Β βΒ Β βΒ Β βββ connection_panel.py
βΒ Β βΒ Β βΒ Β βββ connection_panel_config.py
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ controls/
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βΒ Β βββ jog_panel.py
βΒ Β βΒ Β βΒ Β βββ jog_panel_callbacks.py
βΒ Β βΒ Β βΒ Β βββ jog_panel_config.py
βΒ Β βΒ Β βββ editor/
βΒ Β βΒ Β βΒ Β βββ dsl_editor_panel.py
βΒ Β βΒ Β βΒ Β βββ dsl_editor_panel_config.py
βΒ Β βΒ Β βΒ Β βββ dsl_preset_loader.py
βΒ Β βΒ Β βΒ Β βββ dsl_syntax_highlighter.py
βΒ Β βΒ Β βΒ Β βββ dsl_syntax_highlighter_config.py
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βΒ Β βββ mission_callbacks.py
βΒ Β βΒ Β βββ engine.py
βΒ Β βΒ Β βββ gui_config.py
βΒ Β βΒ Β βββ gui_event_mediator.py
βΒ Β βΒ Β βββ igui.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ stream/
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βΒ Β βββ log_panel.py
βΒ Β βΒ Β βΒ Β βββ log_panel_config.py
βΒ Β βΒ Β βββ telemetry/
βΒ Β βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βΒ Β βββ telemetry_panel.py
βΒ Β βΒ Β βΒ Β βββ telemetry_panel_config.py
βΒ Β βΒ Β βββ theme/
βΒ Β βΒ Β βββ colors.py
βΒ Β βΒ Β βββ __init__.py
βΒ Β βΒ Β βββ style.py
βΒ Β βββ __init__.py
βββ __init__.py
βββ setup/
βββ bundle.py
βββ dep_validator.py
βββ dependencies.py
βββ factory.py
βββ __init__.py
βββ keys.py
βββ opt_validator.py
βββ options.py
βββ registry.py
βββ validator.py
22 directories, 107 files
</details>
botracked is built on a strictly decoupled, Layered Clean Architecture where presentation, domain logic, AST compilation, and hardware communication are segregated through pure Python protocols:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BotrackedGUI β (Presenter / Main Window)
ββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β Mediates UI Events via GUIEventMediator
βββββββββββββββββββββββββββ¬ββββββββββββ΄ββββββββββββββ¬βββββββββββββββββββββββββββ
βΌ βΌ βΌ βΌ
ββββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββββ ββββββββββββββββββββ
β ConnectionPanel β β JogPanel β β DSLEditorPanel β β TelemetryPanel β
β(Serial / TCP/IP) β β(D-Pad Controls) β β (Script & Runner) β β (Gauges & Faults)β
ββββββββββ¬ββββββββββ ββββββββββ¬βββββββββ βββββββββββ¬ββββββββββ ββββββββββ¬ββββββββββ
β β β β
ββββββββββββββ¬βββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ
β Observes / Commands IBotService
βΌ
ββββββββββββββββββββββββββββ
β BotService β (Application Facade / Coordinator)
ββββββββββββββ¬ββββββββββββββ
β
ββββββββββββββ΄βββββββββββββ¬βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββ
βΌ βΌ βΌ βΌ
ββββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ
β BotMotionService β βBotTelemetryServ. β β MissionRunner β β TBotDslService β
β(Kinematic Drive) β β (State & Poller) β β (Step Execution)β β (Lexer & Parser) β
ββββββββββ¬ββββββββββ ββββββββββ¬ββββββββββ ββββββββββ¬βββββββββ ββββββββββ¬ββββββββββ
β β β β
ββββββββββββββ¬βββββββββββββ΄βββββββββββββββββββββββββ βΌ
β Dispatches Packets via IBotTransport ββββββββββββββββββββ
βΌ β TBotCompiler β
ββββββββββββββββββββββββββββ ββββββββββββββββββββ
β Serial / TCP Transport β
ββββββββββββββ¬ββββββββββββββ
β Frames Packets via IBinaryCodec & ICrc8Calculator
βΌ
ββββββββββββββββββββββββββββ
β BinaryCodec & CRC8 Calc β
ββββββββββββββββββββββββββββ
TBotLexer, TBotParser, TBotCompiler, TBotDslService) rather than a monolithic interpreter.@runtime_checkable Protocol definitions. Concrete classes never inherit concrete logic, ensuring complete interchangeability.IBotService, IBotMotionService, IBotTelemetryService, IBotTransport, IBinaryCodec, ICrc8Calculator).run_quality_gates.sh)Every build is validated against 4 strict automated quality gates:
@runtime_checkable Protocol structural typing./dev/ttyUSB0 @ 115200 baud) and low-latency TCP Socket (127.0.0.1:8888 or WiFi IP) streaming.W, A, S, D, Q, E, Space)..track): Full declarative scripting pipeline featuring lexical tokenizer, syntax parser, AST builder, and binary opcode compiler with Step, Run, Pause, and Resume execution controls.NORMAL, DEGRADED, PANIC), kinematic track speeds, hardware fault counters, motor lock status, and round-trip ping latency..track Programsbotracked includes a dedicated Domain-Specific Language designed specifically for tracked mobile robots. Programs are written in plain text files with the .track extension:
βββββββββββββββββββββββββββ
β .track Source β
ββββββββββββββ¬βββββββββββββ
β TBotLexer
βΌ
βββββββββββββββββββββββββββ
β Token Stream β
ββββββββββββββ¬βββββββββββββ
β TBotParser
βΌ
βββββββββββββββββββββββββββ
β Abstract AST β
ββββββββββββββ¬βββββββββββββ
β TBotCompiler
βΌ
βββββββββββββββββββββββββββ
β Compiled Steps β (Binary Packets & Delays)
βββββββββββββββββββββββββββ
| Category | Instruction & Syntax | Parameters | Description |
|---|---|---|---|
| Motion | FORWARD [duration] |
Optional duration (e.g. 2.0s, 500ms) |
Drives both tracks forward at active speed. |
| Β | BACKWARD [duration] |
Optional duration | Drives both tracks in reverse at active speed. |
| Β | TURN_LEFT [duration] |
Optional duration | Differential left skid-turn (left stopped, right forward). |
| Β | TURN_RIGHT [duration] |
Optional duration | Differential right skid-turn (right stopped, left forward). |
| Β | SPIN_LEFT [duration] |
Optional duration | In-place counter-clockwise spin (left reverse, right forward). |
| Β | SPIN_RIGHT [duration] |
Optional duration | In-place clockwise spin (left forward, right reverse). |
| Β | STOP |
None | Immediate kinematic stop (PWM = 0). |
| Dynamics | SPEED <pwm> |
pwm (60 to 255) |
Sets active drive PWM velocity for subsequent motions. |
| Β | WAIT <duration> |
Duration (e.g. 1.5s, 250ms) |
Dwells execution for specified hardware duration. |
| System | PING |
None | Transmits keepalive frame and calculates ping latency. |
| Β | CLEAR_ERRORS |
None | Clears active error latches and resets fault counters. |
.track Program: Autonomous Perimeter Patrol# ----------------------------------------------------
# Autonomous Perimeter Patrol Mission
# ----------------------------------------------------
SPEED 180
PING
WAIT 200ms
# Leg 1: Drive forward along north boundary
FORWARD 3.0s
WAIT 500ms
# Rotate 90 degrees right in place
SPIN_RIGHT 1.2s
WAIT 300ms
# Leg 2: Drive forward along east boundary
FORWARD 3.0s
WAIT 500ms
# Rotate 90 degrees right in place
SPIN_RIGHT 1.2s
WAIT 300ms
# Leg 3: Return to home position
FORWARD 3.0s
STOP
CLEAR_ERRORS
All communication between botracked and the physical or virtual robot uses a framed binary protocol protected by Dallas/Maxim CRC-8:
[0xAA] [0x55] [OPCODE] [LEN] [PAYLOAD...] [CRC8]0xAA 0x55 (Start of Frame synchronization marker).OPCODE + LEN + PAYLOAD using polynomial $x^8 + x^5 + x^4 + 1$ (0x31, init 0x00).| Opcode | Name | Payload Length | Description |
|---|---|---|---|
0x01 |
CMD_PING |
0 | Heartbeat request frame. |
0x02 |
CMD_EMERGENCY_STOP |
0 | Immediate safety motor lockout. |
0x03 |
CMD_CLEAR_ERRORS |
0 | Reset fault registers and alarm flags. |
0x10 |
CMD_MOTION_STOP |
0 | Kinematic deceleration to zero. |
0x11 |
CMD_MOTION_FORWARD |
1 (PWM) |
Forward drive at specified velocity. |
0x12 |
CMD_MOTION_BACKWARD |
1 (PWM) |
Reverse drive at specified velocity. |
0x13 |
CMD_MOTION_TURN_LEFT |
1 (PWM) |
Left differential skid-turn. |
0x14 |
CMD_MOTION_TURN_RIGHT |
1 (PWM) |
Right differential skid-turn. |
0x15 |
CMD_MOTION_SPIN_LEFT |
1 (PWM) |
Counter-clockwise in-place spin. |
0x16 |
CMD_MOTION_SPIN_RIGHT |
1 (PWM) |
Clockwise in-place spin. |
0x20 |
CMD_REQ_TELEMETRY |
0 | Request full telemetry snapshot. |
| Opcode | Name | Payload Length | Description |
|---|---|---|---|
0x81 |
RESP_PONG |
0 | Heartbeat response. |
0x90 |
RESP_TELEMETRY |
8 | Packed telemetry data (mode, error code, fault count, left PWM, right PWM, watchdog flag, motor lock). |
0xFF |
RESP_ERROR |
1 (ERROR_CODE) |
Error status alert packet. |
Click to expand code coverage</summary>
| Name | Stmts | Miss | Cover |
|---|---|---|---|
botracked/__init__.py |
9 | 0 | 100% |
botracked/core/__init__.py |
9 | 0 | 100% |
botracked/core/model/__init__.py |
9 | 0 | 100% |
botracked/core/model/connection_params.py |
29 | 5 | 83% |
botracked/core/model/dsl/__init__.py |
9 | 0 | 100% |
botracked/core/model/dsl/ast_instruction.py |
33 | 9 | 73% |
botracked/core/model/dsl/compiled_step.py |
23 | 2 | 91% |
botracked/core/model/dsl/token.py |
22 | 2 | 91% |
botracked/core/model/dsl/token_type.py |
30 | 0 | 100% |
botracked/core/model/motion_command.py |
29 | 7 | 76% |
botracked/core/model/protocol_opcode.py |
30 | 3 | 90% |
botracked/core/model/telemetry_data.py |
74 | 38 | 49% |
botracked/core/service/__init__.py |
9 | 0 | 100% |
botracked/core/service/bot_motion_service.py |
55 | 13 | 76% |
botracked/core/service/bot_service.py |
68 | 17 | 75% |
botracked/core/service/bot_telemetry_service.py |
60 | 25 | 58% |
botracked/core/service/communication/__init__.py |
9 | 0 | 100% |
botracked/core/service/communication/ibinary_codec.py |
14 | 14 | 0% |
botracked/core/service/communication/ibot_transport.py |
18 | 18 | 0% |
botracked/core/service/communication/icrc8_calculator.py |
14 | 14 | 0% |
botracked/core/service/communication/itelemetry_observer.py |
16 | 0 | 100% |
botracked/core/service/dsl/__init__.py |
9 | 0 | 100% |
botracked/core/service/dsl/itbot_compiler.py |
16 | 16 | 0% |
botracked/core/service/dsl/itbot_dsl_service.py |
15 | 15 | 0% |
botracked/core/service/dsl/itbot_lexer.py |
15 | 15 | 0% |
botracked/core/service/dsl/itbot_parser.py |
16 | 16 | 0% |
botracked/core/service/dsl/tbot_compiler.py |
67 | 8 | 88% |
botracked/core/service/dsl/tbot_dsl_service.py |
35 | 0 | 100% |
botracked/core/service/dsl/tbot_lexer.py |
67 | 4 | 94% |
botracked/core/service/dsl/tbot_parser.py |
116 | 22 | 81% |
botracked/core/service/ibot_connection_service.py |
16 | 0 | 100% |
botracked/core/service/ibot_mission_service.py |
18 | 0 | 100% |
botracked/core/service/ibot_motion_service.py |
20 | 0 | 100% |
botracked/core/service/ibot_service.py |
20 | 0 | 100% |
botracked/core/service/ibot_telemetry_service.py |
18 | 0 | 100% |
botracked/core/service/mission_runner.py |
74 | 41 | 45% |
botracked/core/service/telemetry_poller.py |
66 | 30 | 55% |
botracked/engine.py |
57 | 57 | 0% |
botracked/infrastructure/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/cli/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/cli/engine.py |
44 | 12 | 73% |
botracked/infrastructure/cli/icli.py |
15 | 0 | 100% |
botracked/infrastructure/cli/setup/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/cli/setup/bundle.py |
22 | 1 | 95% |
botracked/infrastructure/cli/setup/dep_validator.py |
36 | 5 | 86% |
botracked/infrastructure/cli/setup/dependencies.py |
18 | 0 | 100% |
botracked/infrastructure/cli/setup/factory.py |
36 | 1 | 97% |
botracked/infrastructure/cli/setup/keys.py |
28 | 0 | 100% |
botracked/infrastructure/cli/setup/opt_validator.py |
36 | 5 | 86% |
botracked/infrastructure/cli/setup/options.py |
17 | 0 | 100% |
botracked/infrastructure/cli/setup/registry.py |
24 | 1 | 96% |
botracked/infrastructure/cli/setup/validator.py |
43 | 5 | 88% |
botracked/infrastructure/command/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/command/command.py |
16 | 0 | 100% |
botracked/infrastructure/command/icommand_definition.py |
14 | 0 | 100% |
botracked/infrastructure/command/icommand_executor.py |
14 | 0 | 100% |
botracked/infrastructure/command/studio_command_definition.py |
24 | 1 | 96% |
botracked/infrastructure/command/studio_command_executor.py |
41 | 16 | 61% |
botracked/infrastructure/communication/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/communication/binary_codec.py |
51 | 5 | 90% |
botracked/infrastructure/communication/crc8_calculator.py |
29 | 0 | 100% |
botracked/infrastructure/communication/preferences/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/communication/preferences/connection_preferences_repository.py |
55 | 6 | 89% |
botracked/infrastructure/communication/serial_transport.py |
60 | 35 | 42% |
botracked/infrastructure/communication/tcp_transport.py |
63 | 40 | 37% |
botracked/infrastructure/gui/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/connection/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/connection/connection_callbacks.py |
16 | 0 | 100% |
botracked/infrastructure/gui/connection/connection_panel.py |
106 | 28 | 74% |
botracked/infrastructure/gui/connection/connection_panel_config.py |
25 | 0 | 100% |
botracked/infrastructure/gui/controls/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/controls/jog_panel.py |
75 | 10 | 87% |
botracked/infrastructure/gui/controls/jog_panel_callbacks.py |
19 | 0 | 100% |
botracked/infrastructure/gui/controls/jog_panel_config.py |
29 | 0 | 100% |
botracked/infrastructure/gui/editor/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/editor/dsl_editor_panel.py |
122 | 29 | 76% |
botracked/infrastructure/gui/editor/dsl_editor_panel_config.py |
26 | 0 | 100% |
botracked/infrastructure/gui/editor/dsl_preset_loader.py |
32 | 3 | 91% |
botracked/infrastructure/gui/editor/dsl_syntax_highlighter.py |
50 | 0 | 100% |
botracked/infrastructure/gui/editor/dsl_syntax_highlighter_config.py |
25 | 0 | 100% |
botracked/infrastructure/gui/editor/mission_callbacks.py |
18 | 0 | 100% |
botracked/infrastructure/gui/engine.py |
107 | 13 | 88% |
botracked/infrastructure/gui/gui_config.py |
21 | 0 | 100% |
botracked/infrastructure/gui/gui_event_mediator.py |
36 | 9 | 75% |
botracked/infrastructure/gui/igui.py |
15 | 0 | 100% |
botracked/infrastructure/gui/stream/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/stream/log_panel.py |
69 | 19 | 72% |
botracked/infrastructure/gui/stream/log_panel_config.py |
22 | 0 | 100% |
botracked/infrastructure/gui/telemetry/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/telemetry/telemetry_panel.py |
90 | 22 | 76% |
botracked/infrastructure/gui/telemetry/telemetry_panel_config.py |
27 | 0 | 100% |
botracked/infrastructure/gui/theme/__init__.py |
9 | 0 | 100% |
botracked/infrastructure/gui/theme/colors.py |
27 | 0 | 100% |
botracked/infrastructure/gui/theme/style.py |
43 | 1 | 98% |
botracked/setup/__init__.py |
9 | 0 | 100% |
botracked/setup/bundle.py |
24 | 1 | 96% |
botracked/setup/dep_validator.py |
36 | 5 | 86% |
botracked/setup/dependencies.py |
19 | 0 | 100% |
botracked/setup/factory.py |
45 | 2 | 96% |
botracked/setup/keys.py |
31 | 0 | 100% |
botracked/setup/opt_validator.py |
35 | 2 | 94% |
botracked/setup/options.py |
16 | 0 | 100% |
botracked/setup/registry.py |
32 | 0 | 100% |
botracked/setup/validator.py |
48 | 5 | 90% |
| Total | 3312 | 673 | 80% |
</details>
Install package
pip3 install botracked
Prepare main entry point by downloading main.py or create your own.
wget -O main.py https://raw.githubusercontent.com/vroncevic/botracked/main/main.py
Launch the graphical studio with default configuration:
python3 main.py studio
Launch with initial mission script and verbose logging:
python3 main.py studio --file ./missions/patrol_demo.track --verbose enable
| Option | Type | Choices | Description |
|---|---|---|---|
--file |
str |
File path | Path to initial mission script (.track) to load on startup. |
--verbose |
str |
enable, disable |
Enable or disable verbose ATS operational logging. |
/dev/ttyUSB0) and baudrate (115200).192.168.4.1 or 127.0.0.1) and port (8888).W, A, S, D, Q, E, Space)..track mission program from the Preset dropdown.More documentation and info at
Copyright (C) 2026 by vroncevic.github.io/botracked
botracked is free software; you can redistribute it and/or modify it under the same terms as Python itself, either Python version 3.x or, at your option, any later version of Python 3 you may have available.
Special thanks to Google and the Google developer ecosystem for their tremendous support and innovative tools from the Google bundle that empowered the development and realization of this project. Google, you make this world a better place! πβ¨
Lets help and support PSF.