Crate unros_core

source ·
Expand description

Unros is an experimental alternative to the ROS 1 & 2 frameworks.

It is written from the ground up in Rust and seeks to replicate most of the common functionality in ROS while adding some extra features that exploit Rust’s abilities.

This crate contains the core functionality which defines what this framework offers:

  1. The Node trait
  2. A complete logging system
  3. An asynchronous Node runtime
  4. Publisher and Subscribers (analagous to ROS publisher and subscribers)
  5. The Service framework (analagous to ROS actions and services)

Re-exports§

Modules§

  • Publishers and Subscribers are an essential component of many frameworks in many different disciplines.
  • A simple pool of pseudorandom number generators to avoid seeding new ones frequently.
  • Services can be thought of as a long running function whose execution has to be requested through an API, and its status can be tracked while it is running, and the return value will be provided back to the service requester.
  • Several utilities that complement the Unros framework.

Macros§

Structs§

  • Configuration for an Application that will be ran by Unros.
  • A simple primitive for tracking when clones of itself have been dropped.
  • An object that all Nodes must store.
  • A similar object to DropCheck, however, none of its clones will be updated when this is dropped.
  • Configurations for the runtime
  • A reference to the runtime that is currently running.

Traits§

  • A Node just represents a long running task.

Functions§

  • Spawns a blocking thread (using spawn_persistent_thread) that can be awaited on.
  • Deserialize environment variables and dhe default config file into the given generic type.
  • Spawns a thread that is guaranteed to run the given closure to completion.
  • The main entry point to an Unros runtime.

Attribute Macros§