So, one project involves writing generic neural network code and training it on robots. The first part is actually fun (if you can wait long enough and accept that your toy functions need a lot of time to get optimized). The second part is turning into a small nightmare. Why?
- First, the idea is that the robots are tested in a virtual environment which is run by proprietary (and the bad kind of proprietary: the one developed by small companies with strict licensing policies) software that need to be connected to the license server all the time for no reason other than authenticating your license.
- Second, the software provides a development environment. Which sounds better than it actually is—it is just an editor with code highlighting and keyword completion. Think Kate or Notepad++. While I have been coding somewhat non-trivial database applications in PHP, like, six years ago with nothing more than an advanced editor with code highlighting, I then was not bound by any kind of deadline or any other obligation—it was a “just for fun” project—and I moved later on to better-suited tools.
- Third, the lack of any publicly available documentation makes me code by example, which is somewhat acceptable in a small context (as I will just need to plug in the sensors into the ANN and the ANN outputs into the robot driving system), but, generally, it is just impossible, since all the cool libraries (like Qt) are not available and I am left alone with STL and Boost.
- Fourth, and the most important part: The run/test cycles are completely inadequate for a three-week project. Training an ANN for a robot means running the simulation in real-time and praying that the ANN topology is just right and the stars stand in the positions suited for such shamanic work.
This left me with one exit: I had to code and debug the ANN code separately. Which has its own fun parts since if you have no idea what to expect from a dynamic system, you cannot tell for sure if its behavior is the intended one. But the run/test cycles are here at least less than one minute.
(The current music running in my earphones—Kill Dash Nine by Monzy—reflects my feelings towards the Webots software package as whole and the buddies that come up with such problems)