Facing the challenge of remotely accessing Mikrotik routers in a secure and efficient manner? This blog post dives into the technical nuances of setting up Husarnet on a Mikrotik router, leveraging the Mikrotik containers feature. By implementing the guides outlined in this post, you can achieve robust and secure remote access to your Mikrotik router without the need for a public IP address or complex port forwarding configurations, ensuring both ease of management and enhanced security.
ROS 2 Router for Remote Robotics and Topic Filtering
At Husarnet, we’re streamlining ROS 2 networking across the Internet to be as easy and reliable as possible.
We're introducing the new husarnet/ros2router
Docker image, which allows you to easily bridge ROS 2 nodes running across different robots, servers, or laptops in various networks. It features built-in topic filtering, enabling you to decide in real-time which ROS 2 interface should be exposed to remote hosts.
There's no need to change your DDS settings. Simply run our Docker image alongside your existing ROS 2 application, regardless of whether it's running on a host or inside Docker containers.
Discover how to integrate husarnet/ros2router
with your robots, computers, or multi-tenant cloud applications and understand how it works in the following sections.
Introducing Husarnet-DDS
We are excited to introduce Husarnet-DDS, a tool designed to simplify the configuration of Husarnet for your ROS 2 applications. Husarnet-DDS is an open-source utility that automatically generates DDS XML configuration files compatible with both Cyclone DDS and Fast DDS.
Before Husarnet-DDS, users had to manually create and fill out XML profile files each time a new device was added to the Husarnet network. This process was not only tedious but also error-prone, often resulting in issues such as typos that required troubleshooting.
Husarnet 2.0 is out!
Roughly a year ago we have released the version of Husarnet that most of you are familiar with. At that time we started thinking more and more about core users of Husarnet and what would make their experience better. Our most important conclusion was that our users are mostly power users who first of all know how to program and secondly want a semless integration of Husarnet with their own products and creations. In order to accomodate this we started a pivot in our design choices to make Husarnet API-centric. This means that not only Dashboard API is now available for all users but also Husarnet Daemon can be controlled via an HTTP API. This should enable all of you to treat Husarnet as a building block for your products much more easily.
Bridge Remote DDS Networks With a DDS Router
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.
Connecting Remote IoT Devices Powered by Micro-ROS
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.
Scalable Distributed Robot Fleet With Fast DDS Discovery Server
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.
Introducing Husarnet Action for GitHub Actions
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.
How To Access A Local Web Server From The Internet
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!
Raspberry Pi Remotely Right Away
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.