Topic Selection

Keywords: #ros2 #ornis #tui
In this latest update, ORNIS now supports element selection! This required a bit of re-thinking of how messages are handled in the front-end, but I’m quite happy with how it turned out. One of the downsides to working intermittently on a project is that one tends to run into a lot of “Wait, I’ve already solved this!”, and this update has a few of these instances. The big one was almost re-inventing “msg_tree”, essentially a nested tree data structure I created for the service interactions.

Playing with CadQuery

Keywords: #ros2 #kiwi #openscad #cadquery
In the last post, I mentioned I was having reservations about OpenScad, and its suitability as CAD software for KIWI. The primary source of these reservations was simply that after making only minor headway, each operation had become so tedious. Simple things like a bracket for a servo was becoming far too much trial and error for my liking. Initially, I thought I’d be able to simply take some measurements of my part before I begin modelling, save them as variables “servo_width, servo_height” or something similar, then use these dimensions to define our extrusions/cuts for the servo mounts.

Interaction Improvements

Keywords: #ros2 #ornis #tui
One of the earliest requirements I laid out for ORNIS was the ability to send/recieve service calls. While the ‘ros2 service’ interface may be convenient, it is cumbersome to say the least. I have had countless issues with attempting to fill out larger service requests via the CLI, only to accidently mess up the indentation. The resulting failure to request always strikes a nerve. Ironically, my initial implementation of the service interaction had the exact same issue.

Bringing Kiwi to Sim

Keywords: #ros2 #kiwi #gazebo #docker #openscad
In our last post, we blocked out a primitive 3d model of our inverted pendulum. From here, the next step is to get the basic mesh into Gazebo, to allow us to begin testing in simulation. From Zero to Gazebo I suspect that everyone who has ever used ROS has had to deal with the horror of building/installing ROS. It can become a serious pain, and you wouldn’t believe the number of hours I’ve had to spend in the past dealing with missing/incorrect dependencies, or the source code refusing to compile.

Topic Plotting

Keywords: #ros2 #ornis #tui
TUI’s have been around for years (Understatement). There is a strong precedent for them, with plenty of examples showcasing what makes for a great piece of software. I’ve always admired how much `prettiness’ a developer can achieve using simple symbols and glyphs. I really do feel that the limitations and constraints really force one to be creative and mindful of the medium in order to get something that is enjoyable to look at.

Playing with OpenScad

Keywords: #ros2 #kiwi #openscad
I’ve been wanting to get better about writing updates more frequently than I am currently. One of the big reasons for taking so long between posts is that I’m absolutely horrible at judging where exactly I should ‘plant the flag’ in a project, and get to writing about it. This is most evident in ORNIS, where I literally spent six months writing code, and didn’t write a single word about it until it was essentially a mvp.

Introducing ORNIS

Keywords: #ros2 #ornis #tui
Presenting ANOTHER entry in the “Definitely not a Backronym” series! This one is a bit different, being a project that is entirely software based. TL:DR I made a Terminal User Interface for ROS2. Is it good? No. Should you use it? No. Go use Foxglove Studio, it’s an open source WebApp, made by people mature enough to know that Terminal User Interfaces are limiting and dumb. If you’re still interested, you can check out the GitLab here.

Introducing KIWI

Keywords: #ros2 #kiwi
K.I.W.I, aka ‘Kinetic Inverted Wheeled Invention’ is the next project on our journey forwards. You may have noticed a trend in naming: I really like bacronyms, no matter how forced. This project will be a little more involved than QUAIL, as an inverted pendulum is inherently unstable, requiring us to do some analysis before getting into the design. This is one of my favorite parts of working on robots, there is something really satisfying about being able to do a bit of math to predict how the robot will behave.