Platform

Why Qt and the technology choices behind OctoMY™

Platform

The technology platform supporting OctoMY™ and why these choices were made.

Did You Know?

OctoMY™ doesn't use ROS (Robot Operating System) despite it being the industry standard. This is intentional - ROS is designed for research and industrial robotics, while OctoMY™ targets hobbyists who want something they can run on their phone without a steep learning curve.


Overview

OctoMY™ is built on C++/Qt6 using the Qt Build System (Qbs). This combination provides:

  • Cross-platform deployment (desktop and mobile)
  • Native performance for real-time robotics
  • Rich UI framework
  • Integrated development environment

Qt framework

Qt was selected because it is an excellent architectural fit for the project:

Benefit Description
Cross-platform Single codebase runs on Linux, Windows, Android (iOS/macOS with effort)
Native performance C++ core with optimized graphics and networking
Rich ecosystem Multimedia, networking, Bluetooth, sensors, positioning
Signals & Slots Event-driven architecture ideal for robotics
Qt Quick/QML Modern UI development option
Active development Qt 6 brings modern C++ support

Why Qt for robotics?

Many of the reasons Qt works well for game development also apply to robotics:

  • Real-time event loops
  • Hardware abstraction
  • Cross-platform deployment
  • Rich multimedia support
  • Embedded platform support

Build system: Qbs

OctoMY™ uses Qbs (Qt Build Suite) for building:

Feature Benefit
Declarative Build files describe what, not how
Fast Incremental builds with dependency tracking
Qt-aware Native understanding of Qt modules
Cross-compile Built-in support for Android, embedded

Project structure

Project Structure


Development environment

Qt Creator

Qt Creator is the recommended IDE, integrating all Qt tools:

  • Code editor with C++/QML support
  • Visual UI designer
  • Debugger integration
  • Android deployment tools
  • Profiler and analyzer

Android development

The Remote and Agent nodes are designed to run on mobile devices.

To set up Android development:

  1. Install Android SDK and NDK via Qt Maintenance Tool
  2. Configure Qt Creator with Android settings
  3. Build and deploy directly from IDE

See: Qt for Android Documentation


Supported platforms

Desktop

Platform Status
Linux Primary development platform
Windows Supported
macOS Requires testing

Mobile

Platform Status
Android Supported, primary mobile target
iOS Possible with Qt, needs contribution

Embedded

Platform Status
Raspberry Pi Supported via Qt for Device Creation
Jetson Possible, needs testing
Generic Linux Supported

Qt modules used

OctoMY™ leverages these Qt modules:

Module Purpose
Qt Core Foundation classes
Qt Gui Graphics and UI primitives
Qt Widgets Desktop UI components
Qt Network TCP/UDP networking
Qt Bluetooth Bluetooth connectivity
Qt Multimedia Camera, audio
Qt Positioning GPS and location
Qt SerialPort Arduino/controller communication
Qt Sensors Device sensors (mobile)
Qt TextToSpeech Voice output
Qt Svg Vector graphics
Qt OpenGL 3D rendering

Why not ROS?

ROS (Robot Operating System) is the industry standard for robotics. Why doesn't OctoMY™ use it?

Aspect ROS OctoMY™ Approach
Target Research/industrial Hobbyist/consumer
Complexity Steep learning curve Accessible to beginners
Deployment Linux-focused Cross-platform including mobile
UI Minimal built-in Rich Qt-based UI
Size Heavy dependencies Lightweight, self-contained

OctoMY™ aims to be the "robot software that doesn't disappoint" for hobbyists. ROS serves a different (and valuable) purpose.


Contributing platform support

Contributions to extend platform support are welcome:

  • iOS deployment testing and fixes
  • macOS compatibility improvements
  • Embedded platform testing
  • Performance optimization

See: Contributing Guide


In this section
Topics
explanation platform Qt Qbs cross-platform
See also