What’s crackin'? I haven’t written on here for a long long time. Initially, I wanted to update this blog every week.
Mostly for myself to stay organized. That’s the thing with plans though, they’re just plans and not reality in most cases. For the most part, I didn’t write anything the past weeks, because I tried to find the right topic to write about next to keep these nice topic related posts going. Yesterday my bad conscience surfaced again and I finally realized what the initial purpose of this blog was and that I should just get back on here and write about the past few weeks. So here I am.
Photo by Markus Spiske on Unsplash
After my last blog post, I deep-dived into the specifications for the web application. That’s what I wanted to write a blog post about for weeks now. But to be honest, I didn’t exactly adhere to the state of the art software development processes that I was taught repeatedly during my studies. Again, this is just the reality I have to face. I started specifying as much as I could without starting the development process. I quickly realized though that I had a lot of unknowns that just required trying some stuff out. After six weeks, this leaves me with constant scrum-like emergency talks with myself, where I have to revisit a lot of decisions I kind of made subconsciously while developing. It might not be optimal, but considering the limited time that I have to develop this relatively large environment, I was a lot more comfortable with just starting the development process rather than planning out every detail beforehand.
So what did I achieve in the past weeks? I’ve set up the entire application frontend and backend. The current frontend situation can be seen in the screenshots below.
Moreover, I figured out the communication with the robot which wasn’t the easiest thing. That’s one of the many things where I, considering the time I have, had to lower my standards. “You can’t have everything, Lina!”, is something I told myself many times over the past weeks. Now, the robot communication is as simple as can be, but it works. I’ll write a detailed post about my software architecture, once everything is in it’s final state.
Apart from the whole web application shenanigans, I received the best email a few weeks ago (it truly made my day). In my medium blog post I asked people to write me, if they had any experience/ideas and this kind guy from Denmark actually did. He gave a talk at a conference about machine learning with LEGO and built a self-driving robot using a LEGO NXT and an Android phone. You can check out the talk here. When I say it truly made my day, I mean it. I was a little unhappy, since I wanted to generalize the web application and tried really hard not to tailor it too much to the classification problems I had already experimented with with the robot. This talk gave me exactly what I needed: a regression problem. Eureka (not really I though)!
When I had enough of React and Flask for the day, I worked on recreating the self-driving robot with the resources I had. I already trained the robot with the three light sensors and a MLP and a SGDRegressor to follow a black line which worked surprisingly well. Currently, I’m trying the whole thing with a light sensor array which is not a LEGO sensor, but works quite well with the EV3. Once this works, I’ll pour everything into another blog post.
In the process, I had another idea for an excercise with the robot to cover the basics of reinforcement learning: with q-learning the robot should be able to get through a labyrinth. Once I’m done with the self-driving robot, this will be my next challenge.
The next big step will be to program all the blocks for the different machine learning algorithms that should be accessible via the visual programming environment. This at least will be a part which I thoroughly specified beforehand.
So far so good… I’m actually quite happy with the results from the past weeks. I can slowly feel everything coming together. Also, I’m just having so much fun and this thesis truly fulfills me. I know that sounds really cringy, but it’s true. I’ve been learning so much about so many different things over the past weeks and I enjoy nothing more than learning.
So while it might be cringy to some, the whole experience actually feels quite wholesome :)
I really want to get back to updating this blog regularly. Well, I counted and I basically promised two posts in this post already. Let us hope that I’ll keep that promise and you’ll hear from me soon.