Terrestrial Robots

Mobile (robotics) nodes can enable research opportunities that are not possible with stationary nodes. To include node mobility in the infrastructure, DISCOVER includes unmanned ground vehicle (UGV) robots in several of its sites. Designed for rough terrain, these robots offer reliable mobile platforms for indoor and outdoor applications with fast maneuverability and autonomous navigation. Each robot is equipped with CPU/GPU capabilities and communication interfaces similar to those in stationary nodes. The software for the robots is based on the Robot Operating System (ROS). Experimenters will be provided with a robot API to control the movement and certain aspects of the robot (e.g., its camera) and to access sensor data on the robot. Supervisory control software pre-installed on each robot will ensure its safety, such as collision avoidance and geo-fencing. For developing experiments with robots, a development environment will be provided, in the form of a virtual machine image or a container image. The development environment, based on ROS, includes the robot API libraries, visualization tools, a simulator, and other supporting software tools. At each robot site, a control server will monitor the status of the robots, periodically communicate with the DISCOVER site server, receive user programs and commands from the site server, load user programs to the robots, and supervise experiments. In addition, a high-performance WiFi router will support a local wireless network for the robots and the control server.


Our Rovers

At DISCOVER, we are using Leo Rover. Each rover comes equipped with a Raspberry Pi 4 Model B, containing 2 GB of RAM, and a LeoCore microcontroller, which has an STM32F4 processor with 64 KB of RAM. The Pi 4 has 2 USB ports, 20 GPIO pins, 1 ethernet port, 1 display port, and Bluetooth 5.0. The LeoCore takes care of running all of the firmware while the Pi 4 runs user code.


Software

The rovers are running Ubuntu 20.04, along with ROS (robot operating system) Noetic. The rovers also run LeoOS, which is responsible for controlling basic rover operations such as driving, battery management, and odometry. Each rover also runs a web interface that allows users on the same network to control the rover and view the camera. The image below shows the software stack.


Below we present the software structure of our DISCOVER rovers.

Network Capabilities

The Leo Rovers electronic board which together with the Raspberry Pi computer, controls all the Rover's functionality.

Meaning network capabilities are based on the Raspberry Pi 4's network capabilities which are usually very fast.

Raspberry Pi 4 comes with Gigabit Ethernet, along with onboard wireless networking and Bluetooth.

Firmware

This is the actual program that will run on the processor of the CORE2 board. This provides functionality to the Raspberry Pi through its serial bus. Our main features of the DISCOVER firmware are:

  • IMU and GPS support

  • servo control

  • battery voltage monitoring

  • Differential drive controller

  • wheel states monitoring

  • wheel odometry calculations


ROS nodes

When a Raspberry Pi turns on, a set of "ROS nodes" are started. The nodes will allow for different features to be specifically accessed through services and ROS topics. They mainly consist of:

  • Rosbridge server - this will create a WebSocket that provides JSON API to the ROS functionality.

  • Leo system node - this will provide a shutdown of the system and a reboot.

  • Web video server- this provides a video stream of the ROS image transport which can be accessed using HTTP

  • Raspicam node - this will publish images from the Raspberry PI camera module to the ROS image transport

  • rosserial node- this communicates with the firmware in the serial interface and makes its features available.


Web User Interface

This is the user interface that can actually be accessed on a browser. It will communicate with a Rosbridge server to access functionalities available in ROS topics. The user interface can bring out features like:

  • control of servo positions

  • the display of a stream from a Web video server

  • control of the Rover using a virtual joystick or keyboard

  • shutdown and reboot buttons

  • output of battery voltage measurement


Sensors

Each rover can be equipped with a camera, lidar, and Emlid Reach M+ RTK receiver. The camera is a 5-megapixel webcam equipped with a fisheye lens providing a 170-degree field of view. The lidar is an RPLidar A2. The RPLidar A2 is a two-dimensional lidar providing 360-degree range-finding capabilities. The A2 has a 12-meter measuring range, 8k sampling frequency, and 10 Hz rotational speed. It provides data over a serial UART connection. The Emlid Reach M+ RTK receiver provides up to 4-centimeter-level precision using RTK positioning. It also allows for sending and receiving of data over LoRa radio, WiFi, Bluetooth, USB, UART, and Event.