Skip to content

amar-jay/mini_ros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

`mini_ros`

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,

  1. Linux: simply run. Note SHELL_TYPE in Makefile may be different verify it if not working
make build
  1. MacOs: change the SHELL_TYPE, to location of shell script (ie ~/.bashrc) in the Makefile, then run make build
  2. Windows: use WSL, and follow Linux setup

commands

You can check it for yourself using.

mini_ros --help

Releases

No releases published

Packages

No packages published