My talk from ROSCon ‘22 Kyoto is now online, where I describe a new file format for recording robotics data. https://mcap.dev/

MCAP: A recording file format for pub/sub systems, designed with robotics in mind

https://github.com/foxglove/mcap

Today marks the promotion of the MCAP file format to beta status. This is something I’ve been working on for the past several months at Foxglove, to try and standardize the robotics industry on a common recording and data interchange format for robots. The next step is to collect feedback from early adopters and continue iterating on the different language implementations before maturing to 1.0 status. Work has also begun on the MCAP ROS2 storage plugin, with the goal of replacing the default SQLite storage backend with MCAP.

If you’re working in robotics, either on a ROS-based system or non-ROS, give it a try and let me know what you think on GitHub!

https://foxglove.dev/blog/building-and-visualizing-your-first-robot

I’ve started blogging on my company blog, Foxglove Technologies, where I talk about building and debugging robots. This first post talks about my favorite hobbyist robotics platform right now, the Duckiebot.

image

I started experimenting with Unity game development, and overall it’s been an absolute pleasure to work with. I was able to build a 3D environment by importing assets from the Unity asset store, tune the lighting and post-processing, add an animated and motion-controlled character, and lots of fun physics interactions with no more than 20 lines of code or so.

One of the more tedious hurdles I hit was creating physics proxies, i.e. convex hulls, for all of the geometry I imported. A concave shape like a coffee cup can’t be efficiently used directly in physics simulation, it either needs to be represented by a simple proxy shape like a cube or cylinder, or broken down into a series of convex shapes that add up to the full concave shape. This can be algorithmically automated with reasonable results, and this option is available in Unreal Engine but has not been added to Unity yet.

I spent some time polishing up a user-friendly integration of the V-HACD 2.0 algorithm for convex decomposition and released it for general use on the Unity Asset Store. If you are building a 3D Unity game with physics, go check it out! I’m also looking at additional use cases like destructible meshes that shatter apart into smaller bits.

https://assetstore.unity.com/packages/tools/physics/collision-mesh-generator-convex-decomposition-154904

My C++11 port of BEST, “Bayesian estimation supersedes the t test”, is on Github now at https://github.com/jhurliman/best-cpp. This is a port of Rasmus Bååth’s JavaScript port which you can run in a browser at http://www.sumsar.net/best_online/. Given two sets of real-valued numbers, for example session durations from A and B groups in an A/B test, BEST samples a probability distribution of the difference between the two groups to estimate the difference. The output is the 95% highest density interval, or HDI, and the estimated mean. If 0 falls inside of the HDI range, there is not enough confidence to declare a credible difference between the two sets of numbers. Otherwise, a credible difference can be established.