<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>infrastructure on Matthew Shields</title>
    <link>https://mshields.name/tags/infrastructure/</link>
    <description>Recent content in infrastructure on Matthew Shields</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-GB</language>
    <copyright>© 2022 - 2026 Matthew Shields</copyright>
    <lastBuildDate>Sun, 03 Sep 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://mshields.name/tags/infrastructure/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Using tmux to Manage a Fleet of Robots</title>
      <link>https://mshields.name/blog/2023-09-04-using-tmux-to-manage-a-fleet-of-robots/</link>
      <pubDate>Sun, 03 Sep 2023 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2023-09-04-using-tmux-to-manage-a-fleet-of-robots/</guid>
      <description>Preamble The title of this post ought to be “Using tmux to Manage a Fleet of Robots Incorrectly”. When I say manage here, I am talking about system configuration, code deployment and systems administration type tasks. Long term you really should be utilising tools like Ansible, Docker and Airbotics to keep your fleets Linux systems running as you intend. However, in reality it is often needed to do some quick maintenance operation to many Linux systems (or robots) at once even in the early days of a robotics startup when you might have a small fleet and maybe not yet settled on a setup using one of the aforementioned “proper” tools.</description>
    </item>
    
    <item>
      <title>Using Chrony to Synchronise System Clocks for Robotic Platforms</title>
      <link>https://mshields.name/blog/2023-08-30-using-chrony-to-synchronise-system-clocks-for-robotic-platforms/</link>
      <pubDate>Tue, 29 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2023-08-30-using-chrony-to-synchronise-system-clocks-for-robotic-platforms/</guid>
      <description>Preamble If you are utilising multiple Ubuntu systems in your robotic deployment it can be advantageous to have the system clocks synchronised. This is a fairly common occurrence with engineers looking to utilise the distributed nature of ROS and other middleware. If you are interested in this you might also be interested in my previous post on sharing internet connections over a LAN.
 Requirements For this you’ll need at least two separate Ubuntu systems connected to each other over a LAN, VPN or similar.</description>
    </item>
    
    <item>
      <title>Network Manager Useful Commands</title>
      <link>https://mshields.name/blog/2023-08-11-network-manager-useful-commands/</link>
      <pubDate>Fri, 11 Aug 2023 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2023-08-11-network-manager-useful-commands/</guid>
      <description>Preamble Some Basics Establishing Connections with Static IPs  Identify Network Interface Names Auto Connect Adding an IP Route Multiple IP Addresses Sharing an Internet Connection  Hey you!  Found this useful or interesting? Any question, comments, corrections or suggestions?    Preamble Network Manager is great and is an unsung hero of our modern world.
 Some Basics See which connections you have already setup…</description>
    </item>
    
    <item>
      <title>Setting Up A Georeferenced RTK Base Station</title>
      <link>https://mshields.name/blog/2022-05-01-setting-up-a-georeferenced-rtk-base-station/</link>
      <pubDate>Sun, 01 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-05-01-setting-up-a-georeferenced-rtk-base-station/</guid>
      <description>Preamble In my previous post I detailed how to use RINEX data to create a sub-decimeter level position solution. Using RINEX data in this way from government sources ties you to an agreed upon reference datum. With your own base station this can be problematic as the accuracy of the established position of the station will likely not be geographically accurate. This then leads to repeatable rover solutions but they will have some offset versus many other georeferrenced data sets, eg.</description>
    </item>
    
    <item>
      <title>Running ROS Nodes on Boot</title>
      <link>https://mshields.name/blog/2022-03-16-running-ros-nodes-on-boot/</link>
      <pubDate>Wed, 16 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-03-16-running-ros-nodes-on-boot/</guid>
      <description>Preamble This is a reworking of a blog post that used to be on the Rover Robotics blog, which they have since taken down - sad face.
We often want our robots to be ready to use at the point of power on. We don’t want to be having to call every ROS launch in our stack every time we want to run our robot. Even if you combine all your ROS launch files into one ROS launch to rule them all the following guide will be useful to get you to a more polished robotic product, instead of a development tool.</description>
    </item>
    
    <item>
      <title>Connecting to a ROS Master Over a VPN</title>
      <link>https://mshields.name/blog/2022-03-12-connecting-ros-master-over-vpn/</link>
      <pubDate>Sat, 12 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-03-12-connecting-ros-master-over-vpn/</guid>
      <description>Preamble This is a nice build on from my previous post on creating a VPN server. If you are using ROS and a VPN server it is possible to remotely connect to the ROS master on one of your robots from either another robot or other device. Basically the only requirement is that both systems are clients on the VPN and can run ROS. It also helps if you have provisioned each system with a static IP address, again details are in my previous post on creating a VPN server.</description>
    </item>
    
    <item>
      <title>Custom SSH Banner on Login</title>
      <link>https://mshields.name/blog/2022-03-10-custom-ssh-banner-on-login/</link>
      <pubDate>Thu, 10 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-03-10-custom-ssh-banner-on-login/</guid>
      <description>Preamble When logging into a Linux system over ssh you can greeted with a text banner prior to entering your password. There are a number of reasons you might want to do this.
 adding company branding providing a brief description about how this system is being used providing warnings and reminders to users about access   How To Log into your system over ssh or get local terminal access.</description>
    </item>
    
    <item>
      <title>SD Card Reading and Writing with Linux dd</title>
      <link>https://mshields.name/blog/2022-03-08-sd-card-reading-and-writing-with-linux-dd/</link>
      <pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-03-08-sd-card-reading-and-writing-with-linux-dd/</guid>
      <description>Preamble Just a quick post as a personal note for a reminder on how to use the dd command to read and write SD card images. This can be useful when working locally with Raspberry Pi and NVidia Jetson style embedded computers.
 Determine the Device Location We need to determine the path for the SD card we intend to use, whether the operation is reading or writing.
sudo fdisk -l Returns a list of all of the available partitions and drives.</description>
    </item>
    
    <item>
      <title>Remotely Connecting to a U-Blox GNSS Receiver</title>
      <link>https://mshields.name/blog/2022-02-26-remotely-connecting-to-a-ublox-gnss-receiver/</link>
      <pubDate>Mon, 07 Mar 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-02-26-remotely-connecting-to-a-ublox-gnss-receiver/</guid>
      <description>Preamble Being able to deploy over the air updates to your robot’s peripherals is a powerful thing. In the early stages it may also be useful for engineers to be able to connect directly to these devices as if they were connected to their personal computers. Here I’m going to detail one approach for this using ser2net. I’ll use connecting to a U-Blox Z-F9P GNSS receiver as a demonstration use case.</description>
    </item>
    
    <item>
      <title>Setting Up a Robot LAN with Internet Connection Sharing</title>
      <link>https://mshields.name/blog/2022-02-26-setting-up-a-robot-lan-with-internet-vpn-connection-sharing/</link>
      <pubDate>Sat, 26 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-02-26-setting-up-a-robot-lan-with-internet-vpn-connection-sharing/</guid>
      <description>Preamble It can be common to want to run multiple embedded computers on a robotic system. Having multiple systems on a hard LAN makes sense, to enable low latency communication between them. If the robot can connect to a local WiFi source that provides an internet connection then it can be quite easy for each embedded system to connect to the wireless network also, as most will come with a WiFi card.</description>
    </item>
    
    <item>
      <title>Setting Up an OpenVPN Server on AWS EC2</title>
      <link>https://mshields.name/blog/2022-02-26-setting-up-openvpn-server-on-aws-ec2/</link>
      <pubDate>Sat, 26 Feb 2022 00:00:00 +0000</pubDate>
      
      <guid>https://mshields.name/blog/2022-02-26-setting-up-openvpn-server-on-aws-ec2/</guid>
      <description>Preamble Using This Guide Cloud Compute Setup  Creating an EC2 Instance Selecting an AMI Selecting an Instance Type Security Group Static/ Elastic IP Address  Server Side Setup  Connecting Using SSH Modify the Hostname Installing OpenVPN and Easy RSA Configuring the OpenVPN Server Packet Forwarding and Firewall Setting up the Server Side Keys and Certs  Generating Client Keys  Creating the Unified .ovpn Client File  Client Setup  Connecting Client Side Network Manager Options Alternatives  Assigning Clients a Static IP Server Maintenance Operations  Useful Commands Issuing Additional Clients the Easy Way Revoking a Client  Resources and Further Reading Hey you!</description>
    </item>
    
  </channel>
</rss>
