CONFIGURED

CONFIGURED is a desktop application I have been building to make robotics configuration work less fragile. The goal is to give robotics projects a structured place to define systems, subsystems, components, and parameters without relying on hand-edited JSON, XML, spreadsheets, or loose notes.

The app is written in C++17 with Qt 6 and is aimed at the kind of configuration work that appears once a robot project grows past a few launch files: platform metadata, parameter lists, Git-backed project folders, exportable configuration files, and repeatable project setup.

What It Does

CONFIGURED lets me build a configuration tree such as:

System
  Subsystem
    Component
      Parameter

Each parameter can carry a key, value, unit, required flag, and validation state. Projects are saved as .configured files and can be exported to JSON or XML for downstream tooling.

Current features include:

  • Creating and opening structured configuration projects
  • Editing system, subsystem, component, and parameter nodes
  • Inline validation for project names, item names, required fields, and duplicate parameter keys
  • Git-managed project workflows for status, commit, pull, push, branch switching, and remote connection
  • JSON and XML parameter export
  • Windows installer bundle packaging
  • Ubuntu .deb package generation
  • Read the Docs documentation with Doxygen-generated C++ API references

Why I Built It

Robotics projects accumulate configuration quickly. A real robot can involve firmware settings, control parameters, sensor details, platform metadata, simulation settings, and export formats for other tools. Those values often end up spread across files and notes.

I wanted a tool that treats configuration as a first-class project artifact: something visible, validated, versioned, and exportable.

CONFIGURED also became a useful engineering exercise in building a release-ready desktop tool rather than only a prototype. A lot of the recent work has been about the unglamorous parts that make software easier to trust:

  • Separating application workflows into services and controllers
  • Adding validation layers and focused tests
  • Improving Git workflow handling
  • Packaging for Windows and Ubuntu
  • Setting up documentation and release notes
  • Fixing Qt compatibility issues between Windows and Linux builds

Recent Release Work

The first public release pass focused on making CONFIGURED easier to build, package, and understand.

I added Windows installer packaging, Ubuntu .deb packaging, Linux build presets, Read the Docs documentation, Doxygen API output, a Google-based clang-format setup, and more automated tests around project persistence and validation.

One of the current feature additions is Save As, which copies a project into its own project folder and treats the copy as a standalone project rather than carrying over the original .git repository.