RCLGO v0.4.1 Release

:rocket: rclgo v0.4.1 Released - ROS 2 Filesystem Logging & CLI Parameter Overrides

I’m excited to announce rclgo v0.4.1, a Go client library for ROS 2 Humble! This release brings two critical features for production robotics deployments.

What’s New

:white_check_mark: ROS 2 Filesystem Logging

rclgo nodes now properly write logs to ~/.ros/log/ with full ROS 2 formatting, matching rclcpp/rclpy behavior:

  • Logs automatically written to ~/.ros/log/<node_name>.log
  • Compatible with ROS 2 logging infrastructure (spdlog backend)
  • Works seamlessly with ros2 launch and standalone execution

:white_check_mark: CLI Parameter Overrides

Full support for command-line parameter overrides, a critical feature for dynamic configuration:
ros2 run my_package my_node --ros-args -p camera.fps:=60 -p exposure:=0.05

  • Compatible with launch file LaunchConfiguration substitutions
  • Updates existing declared parameters or declares new ones
  • Supports all ROS 2 parameter types (bool, int64, double, string, arrays)

Why rclgo?

rclgo enables writing ROS 2 nodes in Go, bringing:

  • Performance: Native compiled binaries, efficient concurrency with goroutines
  • Simplicity: Clean, idiomatic Go APIs for ROS 2 concepts
  • Production-ready: Growing feature parity with rclcpp/rclpy

Current Feature Support

:white_check_mark: Publisher/Subscriber​:white_check_mark: Services​:white_check_mark: Parameters (declare, get, set, YAML, CLI overrides):white_check_mark: QoS Policies​:white_check_mark: ROS Time & /use_sim_time​:white_check_mark: Named loggers with filesystem output

:construction: Coming soon: Actions, Lifecycle nodes, Multi-threaded executor

Installation

go get github.com/merlindrones/rclgo@v0.4.1

Full documentation and examples: GitHub - MerlinDrones/rclgo: Go bindings for ROS2. Forked from https://github.com/tiiuae/rclgo

Feedback Welcome

This project targets ROS 2 Humble and aims for production-grade parity with rclcpp/rclpy. Feedback, bug reports, and contributions are very welcome!