This project has turned out to become all-consuming for my limited spare time for the following reasons:
- It's winter here and that means pitch dark and sub-zero, so I tend to stay indoors rather than in the dark cold workshop.
- I am long-term flat broke so I can't afford the constant stream of cool gadgets to keep me engaged.
- The project really has taken a turn for the serious. It implements the architectural plans I have for devol robot project and more, so working on it doesn't "steal" time from this project. Au contraire.
- Even for a project with the irrational level of ambition that OctoMY™ undoubtedly has, I am actually getting somewhere! Fueled by constant "success" the project progress has an astonishing velocity. Let's just hope it lasts.
OK, so with that out of the way, what really is status of OctoMY™ as of today?
- Main project structure is set up with separate apps for agent, hub and remote.
- Some basic profile work like colors, font etc. have been prepared together with some basic logos and icons for the UI.
- Compiling to both desktop and Android targets is working flawlessly. It really was a breeze to get going with Android, in fact much easier than I had first anticipated. Way to go Qt5!
- Serial communication with servotor32 to control servos of the hexy robot is working flawlesly using simple API.
- Initial version of network communication over UDP using the novelty QoS/on-demand api created specially for OctoMY is working as MVP+. This is in fact the code that started it all in the first place.
- Gathering and real-time transmission of telemetry/odometry data from available device sources including gyro, accellerometer, compass, light sensor, temperature sensor, pressure sensor and gps is working.
- Incorporation of realistic aviation widgets working.
- Automatic platform ID generation and matching logo-based identicon generation working.
- Incorporation of basic tile based map view is working.
- Initial display of "pose" in 3D using OpenGL started, however this has been put on hold while waiting for better support for Qt3D 2.0 scheduled for inclusion in Qt5.6 due soon. (which will basically make this part 12x simpler).
- Incorporation of GEAR dynamics/kinematics into project build, although it is not being used for anything yet.
- Incorporation of flex/qlalr into qmake build for use when developing the "mandate description language" which is the core of "top-level" layer in the OctoMY™ project. This took days of frustration and added 2 wrinkles to my forehead that were instantly revoked the moment I was rewarded with the knowlege that I am in fact the only entity in this universe capable of setting up flex+qlalr+qmake to make a successful build of a parser that takes input from a QString.
What remains before there is an MVP available for OctoMY™?
- Gait stuff (look at adapting something from phoenix code, or even better adapt GEAR to do it from scratch).
- An actual functioning paradigm of remote control (touch simulation of joystick to move forward and turn etc).
- MVP for the "mandate description" parser so that at least a basic "remote->hub->agent" configuration can be set up.
This sounds simple but I know for a fact that it's when integrating the parts the complexity goes up. Having this astounding list of features cooperate without throwing all kinds of bugs will be a challenge.