Rclgo v0.5.0 + v0.6.0 — Environment Variable Parameters, Realtime Logging, and ROS 2 Jazzy

Hey Dronecode community,

Two releases to catch up on for rclgo, a Go client library for ROS 2.
We’ve been using it to build SwarmOS nodes that run alongside PX4 via DDS. Last post covered v0.4.1 — here’s what’s shipped since then.


v0.5.0 — Environment Variable Parameters & Realtime Logging

  • Environment variable parameter support — parameters can now be set via RCL_PARAM_* env vars, matching rclcpp/rclpy behavior. Useful for containerized
    deployments and CI environments where you don’t want to pass --ros-args flags.
  • Realtime logging improvements — fixed log flush on exit, added realtime logging support. Logs now behave consistently whether the node exits cleanly or is
    killed.
  • Comprehensive parameter test suite — priority ordering integration tests covering YAML → CLI → env var override chain.

v0.6.0 — ROS 2 Jazzy LTS (breaking)

This release ports rclgo to ROS 2 Jazzy and drops Humble support. If you’re still on Humble, stay on v0.5.x.

Jazzy-specific changes:

  • Updated to rcl_timer_init2 (new autostart param)
  • RequestID.WriterGUID changed to [16]byte to match Jazzy’s ABI
  • New QoS constants: BestAvailable reliability, durability, and liveliness + NewBestAvailableProfile() helper
  • New generated message packages: service_msgs, type_description_interfaces, rosidl_dynamic_typesupport
  • Full message binding regeneration against Jazzy paths

Why Go for ROS 2 nodes?

If your team is already writing PX4 companion software in Go (MAVLink, UDP, swarm coordination), rclgo lets you keep the same language for your ROS 2 layer — no context switching to C++ or Python. Goroutines map naturally to the subscriber/timer/service model.

Current feature support:

  • Publisher/Subscriber, Services
  • Parameters (declare, get, set, YAML, CLI overrides, env vars)
  • QoS Policies (including Jazzy BestAvailable profiles)
  • ROS Time & /use_sim_time
  • Named loggers with filesystem output

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

Jazzy

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

Humble (stay here if not on Jazzy)

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

Feedback and contributions welcome.