Repository Summary
Description | |
Checkout URI | https://github.com/data-capsule/fogros2-sgc.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-01-25 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
fogros2_examples | 0.1.7 |
README
FogROS2 SGC
FogROS2-SGC is a cloud robotics platform for connecting disjoint ROS2 networks across different physical locations, networks, and Data Distribution Services.
Table of Contents
Local Demo
If you want to get a taste of FogROS2 SGC without setting up the environment, just run
docker compose build && docker compose up
with docker (install) and docker compose (install).
It takes some time to build. You will see two docker containers running talker
and listener
are connected securely with FogROS2-SGC.
Build FogROS2 SGC
The following are instructions of building FogROS2 SGC.
Install dependencies
sudo apt update
sudo apt install build-essential curl pkg-config libssl-dev protobuf-compiler clang
Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -y
source "$HOME/.cargo/env"
Install ROS
ROS2 ~Dashing~ ~Eloquent~ Foxy Galactic Humble Rolling should work fine with FogROS2 SGC.
Here we show the instruction of installing ROS2 rolling with Debian packages.
First, install ROS2 from binaries with these instructions.
Setup your environment with these instructions.
Every terminal should be configured with
source /opt/ros/rolling/setup.bash
If you have custom types in a specific ROS colcon directory, source
the setup.bash
in that directory.
Build the repo
The repo is built with
cargo build
If you want to deploy with production system, use cargo build --release
option for optimization level and removal of debug logs.
Run with Different Machines
In the example, we use two machines to show talker (machine A) and listener (machine B) example.
Certificate Generation
The certificates can be generated by
cd scripts
./generate_crypto.sh
Every directory in ./scripts/crypto
contains the cryptographic secrets needed for communication.
Distribute the crypto
directory by from machine A and machine B. Here is an example with scp
:
scp -r crypto USER@MACHINE_B_IP_ADDR:/SGC_PATH/scripts/
replace USER
, MACHINE_B_IP_ADDR
, SGC_PATH
with the actual paths.
After the crypto secrets are delivered, go back to project main directory.
Run ROS2 talker and listener
Now run talker and listener on ROS2.
File truncated at 100 lines see the full file