What I’m doing

Aug, ’21

  • At Genuitec I assist with the development of CodeTogether, a liveshare system for remote pair and multiprogrammer collaborative coding. We use it internally across our dev team and it’s pretty cool.
  • My reading list is all over the place. Still working through “Skin in the Game” – not sure I’m going to finish it – and rereading “Predator – The Secret Origins of the Drone Revolution”. Predator has a number of useful take-aways one of which is a reminder of how successful endeavors will face and must over come friction from many sources that seek to impede and even kill good ideas and initiatives. On Audible I’m listening to “Ten Hours Until Down: The True Story of Heroism and Tragedy Aboard the Can Do”. This is a good detailed documentary of bravery at sea. I usually listen to audio books when walking or doing donkey-work around the house. 
  • Technically, I’ve been contributing to the ROS 2 platform specifically the JavaScript/TypeScript client sdk known as rclnodejs (ros cilent library nodejs) and lead developer of the rclnodejs-cli project. On the rclnodejs I initially contributed TypeScript type declarations (*.d.ts) followed by implementing the node parameter, lifecycle and rate apis and documentation improvements. The latter efforts involved implementing native nodejs addons. The rclnodejs-cli project provides a commandline interface for creating hybrid nodejs-ros2 packages, complete with ROS 2 launch file support. Additionally the cli provides a convenient ROS 2 IDL-to-JavaScript message generation command.
  • I recently acquired a Raspberry Pi 4 on which I’ve installed Linux Ubuntu 20.04 and am developing some basic ROS2 based H/W and S/W. Oh and I started a blog series by the ros2jsguy.
  • I have been working on a small self-balancing robot. This effort has led me to implement TypeScript modules for interfacing with the MPU6050 and the blink(1) USB led devices. The mpu6050 is a motion tracking device with 3-axis accelerometer, 3-axis gyroscope and onboard digital motion processing. I interface with the device via I2C communications and replicate the I2cdevlib technique that dynamically loads a DMP image onto the device to produce quaternion and acceleration data at 100Hz. The blink(1) USB led is a cool programmable RGB led device. The module provides a fully async api for setting color, blink and fade illumination patterns. I’m currently enhancing a TypeScript port of the Threejs math library with documentation, test suite and additional functionality. I’m hoping to dove tail this work into a JavaScript version of the ROS 2 tf2 transformation package. More on this port soon.