Categories
Uncategorized

Capstone 2: Blog Post #3

Hello reader!

Work has slowed down and stabilized to a decent degree.

There is a lot to learn, but our Capstone project is coming along quite smoothly!

The most difficult parts of this project were some of the bugs.
One bug for example, involved a control conflict between the code for remote input handling and the code for keyboard input handling.
It took me the whole term to understand that this is likely a threading issue and I have been able to find a very simple fix for it (to make the simulation check if the Web Socket has been binded to, only use keyboard keys otherwise).

I chose this project because it had an interesting premise with a mentor assisting us. I figured this would be great to gain experience with working in a team.
Specifically in regards to teamwork, I feel a bit disappointed since we worked completely remotely so it was still solitary work, but my teammates have been a pleasure to work with.

The project has been great and we’ve managed it as well as we could.
If there was one thing I would redo it would be the fact that we started the project with neat little divisions and that became a huge problem.
This was due to the fact that one of our teammates dropped out of the project. As such, we had to redistribute our workload.

I didn’t have any doubts on my ability to complete this project and feel even better about it now than I did before.
There was definitely a massive learning curve and losing a key teammember was a bit daunting initially but we pulled through!

We have managed to get this project working with a lot of interesting quirks such as the fact that we use are using a virtual camera through OBS, Python code and Rust code, a game simulation in 3D, video streaming, input handling, input logging, and a ton of other small tweaks that we did not initially plan on adding.

Our project can be used by anyone who would wish to test their self driving algorithm and see if it is able to control a car remotely on a predefined path with prechosen terrain objects.

This project has been very scary but also fun and has been a great learning experience.

I learned these 5 things from this project:

1. Sometimes the most basic solution is also the best long-term.
2. Feature bloat is a massive deal, especially when using a Sprint based model.
3. Having good basics such as with algorithms, debugging, and lower level coding is a must have for most projects.
4. Team members that choose their own work tend to be far more motivated than when work is assigned.
5. Prioritization and reminders of prioties are much needed for long term projects. All teams will eventually drift off track with enough time

If I could start over I would prioritize different things than we did before. Our lack of experience played a huge role in not understanding proper time allocation for specific code sections and features.
For example, input handling proved to be a pain, but video streaming and line recognition was something we got working quite quickly.

There were a lot of such ups and downs on this project and the best way I found to handle getting stuck was to write down my thought process.
Stepping away from the computer and not coding but using pen-and-paper sounds counterintuitive but has been superb in helping me organize my thoughts and switch up my approach.

This is my main life hack for handling any work. Giving your mind time to breathe, stepping away from the screen and from work and going for a walk, writing, or any exercise or art is best to improve your efficiency and your overall relationship with your work.
I personally like playing guitar to destress.

Work has slowed down now that we have a few bugs and only one feature: the Decision System, left.
The project will be completed and ready to demo soon!

Thank you for reading!

If you enjoyed reading this, consider connecting with me:
LinkedIn
Email

P.S.: I have updated my LinkedIn link so the previous links may not work

Leave a Reply

Your email address will not be published. Required fields are marked *