At the end of last year I had a constraint solving solution that did not scale well with complexity. It quickly became obvious that it would not suffice. Therefore, I began this year by tackling that problem once more. After trying a few more methods, we decided that the best solution would be to simplify solving by only covering a small subset of the cases.
After implementing this new solving method, we decided that the svggen repository was messy and difficult to follow because of a lack of documentation. This led to the idea of rewriting the robot compiler. This time, we carefully redesigned the code structure and documented all of the modules, functions and classes before putting any code in. Then, we slowly cleaned up the code and ported it over while enforcing style guidelines for consistency. We also added unit testing for the library and gave the name roco to this new repository. This endeavor gave us a chance to make important architectural changes that we realized were needed as we worked on the original repository. Some examples of these changes are the streamlining of symbolic variables and equation solving by creating wrapper classes and the creation of the Interface wrapper class. This whole rewrite was a huge ordeal as the original svggen repository was over 15,000 lines of python code.
While doing this rewrite, we also worked on svggen in parallel. For example, we developed the system to get it to a functional stage for hackers to use it at IDEA Hacks hackathon. In addition, we designed demos and presented at the Southern California Robotics Symposium, the UCLA Engineering Open House and the LEMUR Open House.
Finally, we worked on merging the mechanical and code interfaces so that the overall experience of creating a full robotic system with roco would be much more streamlined.
Looking Ahead
There are a lot of exciting things coming to roco in the near future. We have members working on bringing interesting and fun robot ideas to life using the system we have built.
As for myself, after working on the robot compiler for over a year and a half now, I am now looking forward to starting a brand new project next school year. I will continue to support roco but my main focus will shift towards this new project. As for what this new project is, stay tuned! There’s a lot of exciting stuff happening in LEMUR next year!
-Prathyush