Giter Club home page Giter Club logo

ros2-rmw_zenoh's Introduction

NOTE: This branch is archived for historical purposes, and will not work with modern ROS 2/Zenoh. To see the latest development, please see the 'rolling' branch.

rmw_zenoh

build style

A ROS 2 RMW implementation based on Zenoh that is written using the zenoh-c bindings.

Design

For information about the Design please visit design page.

Requirements

Setup

Install latest rustc.

Note: The version of rustc that can be installed via apt is outdated.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Build rmw_zenoh_cpp

mkdir ~/ws_rmw_zenoh/src -p && cd ~/ws_rmw_zenoh/src
git clone https://github.com/ros2/rmw_zenoh.git
cd ~/ws_rmw_zenoh
source /opt/ros/<DISTRO>/setup.bash # replace <DISTRO> with ROS 2 distro of choice
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

Test

Make sure to source the built workspace using the commands below prior to running any other commands.

cd ~/ws_rmw_zenoh
source install/setup.bash

Start the zenoh router

Note: Manually launching zenoh router won't be necessary in the future.

# terminal 1
ros2 run rmw_zenoh_cpp init_rmw_zenoh_router

Note: Without the zenoh router, nodes will not be able to discover each other since multicast discovery is disabled by default in the node's session config. Instead, nodes will receive discovery information about other peers via the zenoh router's gossip functionality. See more information on the session configs below.

Run the talker

# terminal 2
export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run demo_nodes_cpp talker

Note: Ignore all the warning printouts.

Run the listener

# terminal 2
export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run demo_nodes_cpp listener

The listener node should start receiving messages over the /chatter topic.

Note: Ignore all the warning printouts.

Graph introspection

Presently we only support limited ros2cli commands to introspect the ROS graph such as ros2 node list and ros2 topic list.

Config

The default configuration sets up the zenoh sessions with the following main characteristics:

Table:

Zenoh Config Default
udp_multicast disabled
gossip scouting enabled
connect tcp/localhost:7447

This assumes that there is a zenohd running in the system at port 7447. A custom configuration may be provided by setting the RMW_ZENOH_CONFIG_FILE environment variable to point to a custom zenoh configuration file.

TODO Features

  • Publisher
  • Subscription
  • Client
  • Service
  • Graph introspection

ros2-rmw_zenoh's People

Contributors

yadunund avatar gbiggs avatar clalancette avatar esteve avatar methyldragon avatar francocipollone avatar codebot avatar davidzlt avatar 2lambda123 avatar jenoch avatar penify-dev[bot] avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.