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
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
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
Publisher/Subscriber:white_check_mark: Services:white_check_mark: Parameters (declare, get, set, YAML, CLI overrides)
QoS Policies:white_check_mark: ROS Time & /use_sim_time:white_check_mark: Named loggers with filesystem output
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!