This is a lightweight reimplementation of core ROS concepts, focusing on roscore and topic-based communication for subscribing and publishing. Built entirely in Go without external libraries, it mimics essential ROS behavior in a minimalistic way. The roscore server manages message exchanges between nodes, while topics enable asynchronous communication.
This aims to mimic the essential behavior of ROS in a minimalistic way, making it easier to understand the underlying mechanisms while maintaining flexibility and performance due to Go’s concurrency model.
commands
purposes
core
To start roscore server on master url as in ROS
subscribe
To subscribe to a topic
publish
To publish a topic
status
To get stats of a topic
TODO
ROS core
Publish topic
Subscribe to topic
message types
get topic metrics
better CLI
Create more realistic topic /cmd_vel or /raw_image
ROS Node
ROS simple client library
ROS service
ROS launch file
HOW TO USE
to build it,
Linux: simply run. Note SHELL_TYPE in Makefile may be different verify it if not working
make build
MacOs: change the SHELL_TYPE, to location of shell script (ie ~/.bashrc) in the Makefile, then run make build