where to start when building and simulating robots

This post will cover:

  • Detailing some components on the ROS2/RVIZ2 side
  • Replicating and explaining interactions between ROS2 + Gazebo + ros2_control (which can be used later for motion planning)

This will include links to other tutorials which are necessary to build knowledge in specific areas yet are required in unison to understand the whole development process. This blog post aims to be the unison of these components.


Implementations described here are subject to change as ros2_control is still under development. This blog post serves mainly to introduce how the components interact with one another…

How to create Point Clouds using two USB cameras


The ROS image_pipeline packages provides several tools to help with computer vision. In particular, they provide ROS2 nodes to help get stereo vision working. This blog post will detail how to setup this image pipeline and cover some of the issues I faced along the way.

While you may be able to read and apply this blog post without much prior knowledge of ROS, I would highly recommend the “Beginner: CLI” and “Beginner: Client Libraries” tutorials to learn more about how packages work in ROS2. …

disclaimer: not investment advice!

As the pandemic has kept us all inside, I’ve been looking at new hobbies and new ways to grow. I have taken some interest in professional sports but have never really found myself as invested as others around me. One of my friends insists that purchasing an app or tool will help motivate them to make use of the app/tool. I figured the same could be applied to my situation and I decided to learn what I could about the state of fantasy sports betting.

To be clear, the goals of this project were:


After waiting ~7 years, I decided to check eBay again and finally found Google Glass bidding at ~$200. While I missed one of the auctions, I happened to find another unit bidding at $150 and selling for $200 + shipping. I immediately purchased the unit and received it in the mail two days later. I knew that some services were shut down so it was a bit of a gamble if this thing would still work but it does look like there is some hope left for the tech. …

with Raspberry Pi 4 and balenaCloud

For the last few years, I have been particularly interested in automation as it relates to producing food. Part of this idea was explored in my previous post about growing mushrooms at home (link to previous post). The goal of this project is to try and track the growth of a plant over time. With this data, I should be able to release data over some of the growing patterns of various types of plants. I am deciding to grow herbs because I’ve grown them before and the growing process shouldn’t be too difficult.

In this guide, I will explore…

in Go using gempir/go-twitch-irc and faiface/pixel

It is no surprise that with the growth of the Internet, consumers will look for new ways to stay entertained. Twitch.tv is one of the largest streaming platforms and has become one of the most influential platforms for a new type of entertainment: live-streaming. While most content is created by individuals playing games, TwitchPlays is one example where Chat plays the game. The idea was popularized by “Twitch Play Pokemon” and still remains active to this day. In this article, we will explore creating our own version of a TwitchPlays game.


Typically, the streamer…

using A-Frame and Zoom Meetings

One topic I have been interested in is the future of digital work. I am interested in ways that the interaction between humans and computers can be optimized as this will not only benefit my day-to-day job but change the way a large percentage of the population interacts with computers. There are two areas that I am concerned with:

Want to build something quick? Keep dream… err… reading!

I have recently decided to explore the process of making espresso. It doesn’t take very much time to realize that being scientific about the process is a great way to improve consistency. With each error, there is a chance to compare and contrast the process with a previous run and understand what to try next. While there are plenty of variables to explore in the process, I have started with a few of the essentials:

  • Portafilter weight w/ grounds
  • Total Pull time
  • Weight of resulting shot
  • Volume of resulting…

using OpenResty and Lua FFI


If you are using NGINX, you may be familiar with the ability to run Lua programs for various parts of NGINX ( init_by_lua , log_by_lua, content_by_lua). This is an extremely powerful feature and can be very useful for features like authentication. For this article, lets say that you want to call a gRPC service from NGINX. We are going to figure out if this is possible and, provided things go well, show you how to do it!

Understanding the Use Case

NGINX does not provide support for Lua by default. You will have to install the ngx_http_lua_module for NGINX which will give you access…

My only photo from KubeCon (also, I enjoy brutalism)

I have seen a few other people on Twitter share their thoughts on KubeCon. After sharing my thoughts and listening to my team’s experience, I think that I can also share my thoughts with the Internet. I am not quite sure what someone might do with this information, but perhaps there will be a bit of something for everyone.

Note: I tried using first/last names when addressing speakers. I am not sure if using only their first name is respectful if I am not on speaking terms with the individual. For those mentioned in this article, please let me know…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store