Skip to content
@flexrobotics

flexrobotics

flexrobotics

Welcome to flexrobotics, the home of roboflex.

Roboflex is a library for distributed robotics. Want to stream from a camera, run tensors through pytorch, integrate with other sensor streams, and control actuators and robots? Roboflex is for you.

Roboflex is:

  • Simple to install: pip install roboflex, then pip install roboflex.realsense etc.
  • Simple in concept: distribute Nodes, which receive and publish Messages over pub-sub networks. Threading model is straightforward.
  • Simple to implement: use python to create and run Node graphs. Roboflex requires minimal code, and no non-code artifacts (no yaml, no xml).*
  • Uses dynamic, not static, message types; more like json than protobuf. Roboflex uses flexbuffers as the message protocol.
  • Performant: roboflex is written in c++. Flexbuffer message protocol supports 0-copy serialization into xtensor, eigen, and numpy.
  • A library, not a framework: you control main().

Computation graph for distributed, reactive robotics:

The core idea of roboflex is the 'computation graph'. Nodes send Messages to other nodes, over any transport. You configure this computation graph in a small python script. See the 'core' documentation for more info: (https://github.com/flexrobotics/roboflex).

image

Roboflex Components

Roboflex is structured as a single core library (roboflex), in the roboflex repository. It supports no physical devices itself. Other repositories support devices, actuators, utilities, etc. This is the current set of repositories in roboflex; each one is named "roboflex_something". If you would like to support other devices or functionality, you can name your repo anything you'd like.

  • roboflex (core) (https://github.com/flexrobotics/roboflex)

    Definitions and imlpementations of Nodes, RunnableNodes, Messages, python wrappings, and various serialization utilities. Also contains a small library of utility nodes:

    • CallbackFun
    • FilterFun
    • FrequencyGenerator
    • LastOne
    • MapFun
    • MessagePrinter
    • GraphRoot
  • roboflex_examples (https://github.com/flexrobotics/roboflex_examples)

    Simple examples of roboflex individual components are in those components' examples/ directory. Examples that use two or more components, or are more complex, are here.

    • realsense_tv.py: television for the Intel Realsense camera.
    • webcam_tv.py: television for USB-UVC compatible web cameras.
    • audio_tv.py: displays an audio feed in real-time.
    • camera_follow: A pan-tilt dynamixel-driven camera mount that follows your face in realtime.

sensors 📷 🔊 👉

Nodes that broadcast data read from devices, such as images, audio streams, etc.

visualization 📺

actuators 🤖

transports 🚡

utilities ⚒️

Building

  • In python, roboflex is very simple to install and use. In c++, Roboflex currently uses cmake to build. Yeah, it's a mess. Open to ideas.

Pinned Loading

  1. roboflex roboflex Public

    Robotics middleware that is simple, performant, and uses dynamic messaging over any transport.

    C++ 12

  2. roboflex_examples roboflex_examples Public

    Python 3

  3. roboflex_realsense roboflex_realsense Public

    Roboflex support for broadcasting rgb and depth messages from the realsense camera.

    C++ 2

  4. roboflex_transport_zmq roboflex_transport_zmq Public

    Roboflex transport nodes using ZeroMQ.

    C++ 2

  5. roboflex_visualization roboflex_visualization Public

    Roboflex support for visualizing rgb and depth streams using SDL2.

    C++ 2 1

  6. roboflex_webcamuvc roboflex_webcamuvc Public

    Roboflex support for broadcasting rgb images from uvc (usb) compatible webcams.

    C++ 3

Repositories

Showing 10 of 16 repositories
  • roboflex Public

    Robotics middleware that is simple, performant, and uses dynamic messaging over any transport.

    flexrobotics/roboflex’s past year of commit activity
    C++ 12 MIT 0 0 0 Updated Mar 7, 2024
  • roboflex_realsense Public

    Roboflex support for broadcasting rgb and depth messages from the realsense camera.

    flexrobotics/roboflex_realsense’s past year of commit activity
    C++ 2 MIT 0 0 0 Updated Mar 6, 2024
  • roboflex_dvs Public

    Roboflex driver for a dvs camera.

    flexrobotics/roboflex_dvs’s past year of commit activity
    C++ 1 MIT 0 0 0 Updated Mar 1, 2024
  • flexrobotics/roboflex_examples’s past year of commit activity
    Python 3 MIT 0 0 0 Updated Jan 21, 2024
  • roboflex_dynamixel Public

    Roboflex support for dynamixel motors.

    flexrobotics/roboflex_dynamixel’s past year of commit activity
    C++ 3 MIT 0 0 0 Updated Jan 21, 2024
  • .github Public
    flexrobotics/.github’s past year of commit activity
    1 MIT 0 0 0 Updated Jan 17, 2024
  • roboflex_visualization Public

    Roboflex support for visualizing rgb and depth streams using SDL2.

    flexrobotics/roboflex_visualization’s past year of commit activity
    C++ 2 MIT 1 0 0 Updated Jan 16, 2024
  • roboflex_imgui Public

    Roboflex visualizers and guis using IMGUI/IMPLOT

    flexrobotics/roboflex_imgui’s past year of commit activity
    C++ 1 MIT 0 0 0 Updated Dec 14, 2023
  • roboflex_webcamuvc Public

    Roboflex support for broadcasting rgb images from uvc (usb) compatible webcams.

    flexrobotics/roboflex_webcamuvc’s past year of commit activity
    C++ 3 MIT 0 0 0 Updated Dec 9, 2023
  • roboflex_transport_zmq Public

    Roboflex transport nodes using ZeroMQ.

    flexrobotics/roboflex_transport_zmq’s past year of commit activity
    C++ 2 MIT 0 0 0 Updated Dec 5, 2023

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…