ROS client library for the Go programming language (Golang)

Hello, some weeks ago i published an open source ROS client library for the Go programming language, written in pure Go and without external dependencies:

In my company we use ROS in a lot of fields, from robotics to image processing, but the deployment is sometimes difficult, since:

  • the standard library is very big, and therefore uploads can take much time
  • the standard build chain makes very difficult the generation of static executables
  • the standard library forces to choose between C++ and Python

Go is one of the languages of choice when writing microservices and containerized applications, and there are already a couple of ROS implementations for Go, but they have some problems:

Some months ago i decided to rewrite everything by scratch, and this library is the result. It should have all the base features (topics, services, messages) and it is already powering some nodes in production-grade environments.

ROS2 support is currently missing, but i hope to find time and reasons to start working on it too.

9 Likes

@aler9

this is great work!!!

Would be cool to have a ROS2 client lib written in pure Go.

1 Like

Nice job! I’ve been using go for 3 years. Go is solid on type, error handling and application deployment. Hope this project goes well and I’m very willing to make contributions!

Nice work! ROS2 support would be great too. We have been using Go for robotics for several years at my work. We have not used ROS yet, but are now planning to start using ROS2. It would be great to be able to continue to use a lot of our existing Go code when we move to ROS2. We maybe able to contribute to this effort.

fetch robotics forked rosgo. There is a pure go implementation which seems to be maintained (last commit August 2019).

Great work @aler9! I wrote an article this week covering the status of Golang dev for ROS, and mentioned your library as well. Keep up the good work!

1 Like