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
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:
- Install Android SDK and NDK via Qt Maintenance Tool
- Configure Qt Creator with Android settings
- 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