May 2018 – September 2018

Robotics, Intelligent Systems, and Control Lab
KAUST
Saudi Arabia

Visiting Student Research Program

From May 2018 to September 2018, I was a visiting research assistant at the Robotics, Intelligent Systems, and Control Laboratory (RISC Lab) under the joint supervision of Professor Jeff Shamma (KAUST) and Professor Yiannis Demiris (Imperial College, London). The research placement comprised an initial phase of lab tutorials and skills development, followed by an independent research project involving cooperative payload transportation (CPT) using aerial drones.

To understand the design problem better, I conducted a survey of literature on CPT schemes, finding a strong bias towards centralized control architectures. Inspired by the work of Toumi (a RISC Lab alumnus), I devised a decentralized multi-agent control scheme based on the PID algorithm. I performed numerical simulations of system behavior using MATLAB and a software-in-the-loop visualization using ROS with Gazebo as a front-end.

To conclude the placement, I delivered a presentation to members of the RISC Lab and submitted a report to my home department.

Control of Mobile Robots MOOC Certificate

In the first two weeks of the placement I participated in a self-paced massive open online course (MOOC). Control of Mobile Robots was offered by Professor Magnus Egerstedt of the Georgia Institute of Technology.

Simulation Exercise for Control of Mobile Robots MOOC

The MOOC drew upon elements of linear algebra, multivariable calculus and geometry and encouraged the student to apply insights through weekly practical exercises.

ROS Basics & Navigation

After completing the MOOC, I worked with a sequence of tutorials prepared by colleagues in the RISC Lab. Collectively these provide a staged introduction to the lab’s facilities, using ROS software, construction of a quadcopter drone and configuring the drone to work with ROS.

Navigation and SLAM in ROS

This was a demonstration of ROS' ability to perform simultaneous localization and mapping, displaying the map generated for the previous image's simulation.

RISC Boot Camp: Quadcopter

After gaining a high-level understanding of robotic navigation in the second tutorial, I was guided step-by-step through the construction of a quadcopter drone. RISC Lab Manager Kuat Telegenov assisted with calibrating the drone’s Pixhawk flight controller with a Spektrum DX8 remote controller and with general queries about the Lab’s facilities.

This drone will be included in the RISC Lab’s swarm research activities and demonstrations.

RISC Boot Camp: Testbed Architecture

The final tutorials in the RISC Boot Camp configured the drone for use with the RISC Lab’s motion capture system and relaying flight data to a ROS node. These involved installing and configuring a miniature ODroid computer running a minimal Ubuntu 16.04 and ROS ‘Kinetic Kame’ installation.

CPT Project: Proposed Architecture

In its simplest form, the proposed system involves two agents tethered to a payload. The ‘leader’ agent receives positions setpoints and attempts to follow them. The ‘follower’ agent must not communicate directly with the leader agent, rather it must measure the incident angle(s) of its tether and move to drive the angle(s) to a desired value, here assumed to be zero.

CPT Project: Numerical Simulation with MATLAB

I conducted numerical simulations in MATLAB to view the system response to various initial conditions and command sequences. This diagram plots the system evolution while completing a specified task (ascend, move the payload forward by 6 m, descend).

CPT Project: Joint Angle Plugin

To proceed with the ROS-Gazebo visualization, I needed a plugin to measure the angle between the follower agent and its tether. I wrote this plugin in C++ to publish a stream of joint angle messages in ROS and Gazebo (displayed in auxiliary windows in the above image).

CPT Project: Visualization with ROS and Gazebo

The visualization of system behaviour was executed using ROS with a Gazebo front-end. Using the CAD software Blender I generated STL files for each simulation element (leader agent, follower agent, payload and tether links). In Gazebo I imported the STL files, calculated their inertial properties, and integrated the plugin for joint angle measurement. This repository contains the relevant files and installation instructions.

Back To Gallery