Continuing the 'new year reflection' theme, I thought that I would use this post to list all of the projects that I currently have in-flight. This is intended to hi-light my shameful habit of serially starting projects, and hopefully prompt me to do better this year.
Here are the things I am currently working on
Software
- Article Site simple SAAS
- Text Adventure Engine (and text adventure)
- C# port of FreeRDP
- 'Big Idea' SAAS
Hardware
- Hexbot Robot (and control software)
- Cable driven robot arm
(These are the projects that I have at least 'touched' in the last 12 months. There is a litany of other abandoned ones that have been left by the wayside over the years.)
Of these, the Article Site simple SAAS project is the one that I have discussed most on this blog. The other projects probably need a little more introduction. I'll expand on them below.
Text Adventure Engine
I have briefly mentioned this project in a previous post. This project is my attempt to make a text adventure engine in pure typescript that can be used to create a sophisticated text adventure with a simple JSON payload (e.g configuration only - no scripting required). The goal for this project is to support the creation of multiple Infocom style text adventure games in the near future.
My vague idea is to use the medium of text adventures to have a fun project to work on as a relief from the more serious projects, while also improving my narrative skills.
C# port of FreeRDP
This project is an attempt to create a pure c# RDP Client, based on the FreeRDP open source C code base. The motivation here is that there doesn't seem to be a good RDP client that can be used with Unity (which uses C# as its base development language).
However, what I found while attempting is that the RDP protocol is very complicated, with multiple protocol layers, endian specific buffer programming and lots of crypto/security programming.
I made progress despite that, but the project quickly became a drain - this is the sort of project that is large enough to require full time attention for while, and I have a lot of other things I want to look at instead. The major downside here is that the end results of the project won't have enough return on investment compared with other things I wont to work on - the actual payoff for me will be quite low compared with the effort required. This is more of a 'bragging rights' project than something I really need.
Even so, I haven't completely given up on this one and I do intend to pick it up again at some stage. It might get a post or two in the future.
Big Idea SAAS
This project will likely be the next SAAS project I tackle after completing the Article Site one. I have a 'concept of a plan' for a SAAS site that has some potential to make actual money for paying customers, but I am still sketching things out and I don't want to make the idea public before making more progress. In particular, I need to do some market testing to see if the idea has any traction.
For now, I am just going to say that this project is related to enabling code free implementation of Augmented Reality heads up displays for Industrial use.
Hexbot Robot
A while ago I bought one of these Hi-Wonder
robot kits. The kit was pretty good, but I was disappointed by the ancient version of JetPack and ROS it shipped with. I also found that the back current protection on the custom Hi-Wonder adaptor board for the Jetson wasn't great, as I managed to completely fry the Jetson nano while trying to charge the battery.
So, when life gives you lemons... make your own robot. I decided to modify the base hexbot to my own Frankenstein design and I've been plugging away at this project (on and off) for about a year now.
I'll make a more detailed post about the robot soon, but for now the main changes I have made are
- Replace the tiny supplied LiPO battery pack with an adaptor than can use power tool 18v pluggable battery packs (mission life of 45Wh)
- Replace the Jetson Nano with a Raspberry Pi 3 running Ubuntu (cheaper + less power drain)
- Rewrite the robot control software from scratch in python/ROS2
This is a nice little project for boosting my robotics skills (which are more or less 'intermediate')
The hardware side has required a lot of 3D printing, customization and learning about serial servo control.
The software side has required a lot of python, base robotics knowledge and an improved understanding of legged robot control.
At the moment the robot can be powered on, supports SSH control, can adopt various leg poses and has relative accurate inverse kinematic control (you can move each leg tip by a specific vector)
I am currently working on re-integrating the lidar module and depth camera, and creating a gait controller that will enable the robot to walk specific distances. The steps after than will be accurate turning and dead-reckoning navigation.
Cable-Driven Small Robot Arm
This project is an attempt to design and 3D print a 6DOF cable actuated robot arm that will be light weight enough to add onto a future upscaled hexbot. The design uses rolling joints + a pulley system to ensure linear motion of all joints while minimizing the weight of the arm structure. So far I have a prototype builds for the 3DOF wrist and for the elbow and shoulder joints, but they all still need to be integrated into a common structure. (I don't have any mechanical engineering training, so most of this work is iterative try-it-and-see stuff ). I'll try and make some more progress with this project in the near future.
Summary
So that's the current project list. I am going to try hard to get to a decent milestone with at least one of these before starting anything else!
One thing I've noticed with the above project list is that it doesn't include any VR or 3D development (which is my day job), but that is probably for the best. I want to keep my home projects very much separated from my work. If I work on anything in Unity or VR it will probably be commercially sensitive and I won't be able to talk about it here.
Anyway, that is probably enough for this post. Time to do some actual work.