Skip to main content

13 min read
Dominik Nowak

DDS Router is a fresh solution by eProsima. It allows you to bridge different DDS networks with providing built-in ROS 2 topics filtering in the same time. You can define which ROS 2 topics from one remote host are visible in others. That's a powerful tool for challenges like creating secure fleets of robots or just specifying a ROS 2 interface for your ROS 2 robot for the outside world.

DDS Router and Husarnet fit perfectly, making it a great foundation for any ROS 2 project that needs to run on multiple devices operating both in the same LAN and over the Internet.

It is not an alternative to previously described Fast DDS Discovery Server but an additional building block that makes your ROS 2 network more secure, easy to maintain and easy to configure.

DDS Router for ROS 2 robot fleets

10 min read
Dominik Nowak

Micro-ROS is an embedded framework allowing you to connect low-power, cheap IoT devices into a ROS 2 system. By using Micro-ROS together with Husarnet peer-to-peer VPN your robot doesn't need to be in the same LAN as an IoT sensor.

Thanks to that your robot can be mobile/5G connected and talk directly with IoT sensors or actuators connected over Wi-Fi. Without any proxy server in between.

In this article I present a ready to use GitHub template for ESP32 Wi-Fi microcontroller allowing you to bring your ROS 2 powered IoT sensors to life in minutes.

15 min read
Dominik Nowak

ROS 2 is rapidly increasing its share in new projects in the AMR (Autonomous Mobile Robots) sector. While the amount of autonomous mobile robots is growing, the robotic fleet becomes less and less efficient. To overcome that, the next gen robots need to operate not as a group of individual devices, but as one, decentralized robotic system. That leads to connectivity challenges.

Classical approach with a standard DDS service discovery mechanism, relying on multicast messages being sent in a single LAN network, becomes a factor limiting a system's scalability.

Fortunately the eProsima Fast DDS Discovery Server combined with Husarnet peer-to-peer SDN solved all those issues by providing efficient way of service discovery and message exchange across devices connected to multiple physical networks.

FastDDS Discovery Server

8 min read
Dominik Nowak

GitHub Actions is a mature and extremely popular CI/CD tool. It allows you to create workflows for software deployment, testing, building ... whatever. In GitHub Actions you build your workflows by using blocks automating common tasks called Actions.

One of those building blocks is now Husarnet Action! 馃帀

Learn how you can leverage Husarnet Action in your workflow to deploy code to devices with no public IP like laptop, Raspberry Pi, some random VM sitting on your server or even to ESP32 microcontrollers. All by adding a few lines to your existing GitHub Actions yaml file.

Deploy Code To Edge Devices At Scale With Husarnet Action For GitHub Action

13 min read
Dominik Nowak

In one of the previous blog posts we presented how to configure a reverse proxy in NGINX to provide public access to services hosted by Husarnet connected devices.

Today I will share my notes on how to do something similar, but using a nice user interface provided by Nginx Proxy Manager and your own custom domain with SSL certificates.

By combining two open source projects: Husarnet & Nginx Proxy Manager you can create your own, self-hosted secure tunnel service for localhosts, similar to ngrok.

馃殌 I will show you also how to deploy the service in seconds, with the Infrastructure as Code approach powered by Ansible and GitHub Actions.

Let's go!

Cover image

9 min read
Dominik Nowak

In one of the previous blog posts I presented how to configure a Raspberry Pi to access it from anywhere without public IP or port forwarding on your router. It's quite easy, but still you need to make a few steps manually, like providing your Wi-Fi credentials, installing the Husarnet VPN Client (recently open sourced), and typing commands in the terminal to connect the board to your Husarnet VPN network.

If you have to confiture a single Raspberry Pi that might be a fun way of spending a time, but what if you would like to connect a dozen(s) of them? My math teacher in elementary school often said that "a good mathematician should be lazy". That's also a true sentence for engineers - if you can automate something that is repetitive and boring - do it.

In this blog post I'll show you how to create your own, customized system image to be burned on the SD card of your Pi, so that after you power on your board, it will be available via SSH over the Internet on the 1st boot! In the same way you can generate hundreds of similar images, without wasting your time to manually setup each board.

Cover image

22 min read
Dominik Nowak

ROS 2 is a next gen Robot Operating System, a leading middleware and ecosystem for developing software for autonomous robots and even for autonomous vehicles. ROS provides a decentralized architecture with so called Nodes responsible for specific tasks as complex as path planning, SLAM (Simultaneous Localization and Mapping) or just processing single sensor data.

ROS 2 nodes can automatically discover each other when ROS 2 powered robots or computers are connected to the same Wi-Fi network. Doing the same over the internet is more challenging. I will however show you how to do that in an easy way!

In this article you will learn:

  • how to connect ROS 2 nodes running in different networks to a single ROS 2 system
  • how to install, configure and use VPN client
  • how to configure DDS to enable communication over VPN
  • how to do everything above with Docker and Docker-Compose to make your life easier

Let's do it!

Cover image

9 min read
Pawe艂 Kozubal

In the recent blog posts we presented how to embed Husarnet VPN Client inside a Docker container. This solution is fine, however has a few drawbacks like:

  • you need to modify your existing containers
  • you need to install one instance of Husarnet Client for each of the containers you want to connect (and manage multiple hostnames)

To overcome those issues we introduced an official Husarnet Docker Image, that utilizes a sidecar Docker design pattern. You can run this container next to your existing containers to share the VPN network from a Husarnet Container to one or multiple other containers at once.

Husarnet Docker Contatainer VPN sidecar

12 min read
Konrad Przew艂oka

Popular industrial and home monitoring systems are based on a central media server that connects cameras with the end users. This architecture is fine for most use cases, however have some drawbacks such as: higher latency, privacy concerns (if you use 3rd party server), and high cost.

In the article we present a peer-to-peer alternative: let's remove a media server and directly access a camera streaming service running on the camera itself.

The project is based on WebRTC for audio and video streaming to a web browser. Access to the server over the Internet is possible thanks to Husarnet VPN Client.

Here are some of the advantages of our solution:

  • low latency over the Internet
  • simple infrastructure architecture (only your laptop and Internet camera)
  • quick setup (everything is dockerized)

Basically all WebRTC infrastructure is hosted on the Internet camera (Single Board Computer + webcam) together with a simple web server.

Janus WebRTC server hosted inside a Docker container on Raspberry Pi with remote access over the internet

9 min read
Pawe艂 Kozubal

Docker Containers provide some level of isolation, but unfortunately, not enough if you want to give full access to someone who you do not trust.

馃攼 In this blog post we will show you a much safer alternative: Kata Containers that provide VM-like isolation for your container, while keeping the simplicity of Docker ecosystem.

馃挕 As an example use-case we will configure a VPN client and SSH server inside Kata Container, that can be securely exposed to untrusted users of your service. Doing the same with pure Docker would be very risky.

Thanks to Husarnet P2P VPN used in this example you can provide a secure and quick access to isolated containers in an easy way.

Comparison of Kata Containers and pure Docker running on runc