Welcome to my tech blog! I started this page to document my experiance learning about software. 3 years ago I moved to the Bay Area to design autonomus sidewalk deliver robots - specifically their actuation mechanisms as a fresh B.S. of Mehcanical Engineering graduate. After several design releases (~ 2 years ago) I became interested in the logic behind my design’s motion in addition it’s physical presence. During this time I started paying more attention to the software operations within the companies I have worked for and started my own campaign to learn how to develop code myself.
In addition to peeling through my employer’s Github repo’s I spent my free time learning through paid and unpaid programming classes, starting with python. I already had a little python experiance from an intro class I took in college. However that only covered some primitave data types and procedural programming. So at this point in time I knew enough to get my hands dirty with code but really started to sink my teeth in to more advanced conceptrs like object oriented programming (OOP), algorithims, and how to work with a variety of data sets.
After about a year of online classes and small personal projects involving socket communication, raspberry pi, and arduino I started to look at how I could exercise my new skills at my day job in the robotics space. I attempted to develop several tools to enhance the joint actuation testing experiance through the use of python scripts talking to arduino microcontrollers over serial. However I ran into several fundamental issues with the nature of a dynamically scripted language such as python and my approach to streaming data over the serial bus. Around this time I was fortunate enough to speak with a work colleage with decades of experiance writing software at a popular phone manufacturing company and he convinced me that the language I needed to learn was C++.
Learning from online tutorials and small coding exercises is great and all. But one thing I learned about myself in college is that I really need a complex project to apply my learnings too in order to really get my mental gears turning and force my understanding of the principles at hand. My ideas for projects within the near future are as follows:
- Program the dexter industries GoPiGo robot to have basic movement functionality
- Integrate the open source robotic operating system (ROS) into this rover
- Develop a microcontroller to read PPM input from a RC controller and send data to a ROS app. through various communication protocols
- Start creating my own ROS nodes through the implementation of a basic RC controller to drive the GoPiGo
- Execise proper coding techniques and practice usefull alogorithms to make myself a better programmer
- Develop web apps