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 |
- 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
- 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 runmake build
- Windows: use WSL, and follow Linux setup
You can check it for yourself using.
mini_ros --help