Ossama Ahmed

Ossama Ahmed

Visiting Student Researcher


About Me

I have recently completed a MSc degree in Robotics, Systems and Control at ETH Zurich. Prior to that I worked at Qualcomm with the SNPE SDK team after finishing my undergrad in Software Engineering at McGill.

My interests lie in applying learning methods to robotics related problems. In particular, my main research goals entail enabling dynamical systems to efficiently and safely learn in real environments where they face high prior uncertainties.

I currently work under the supervision of Prof. Yoshua Bengio on motion planning using model-based learning methods.


  • Machine Learning
  • Reinforcement Learning
  • Robotics
  • Causality
  • Sim2Real
  • Motion Planning
  • Perception
  • Transfer Learning


  • MSc in Robotics, Systems and Control, 2020

    ETH Zürich

  • BEng in Software Engineering, 2016

    McGill University



Visiting Student Researcher - Prof. Yoshua Bengio

MILA - Montreal Institute for Learning Algorithms

Oct 2020 – Present Montreal, Canada
Research on event based control for model-based reinforcement learning.


The Machine Learning Summer School (MLSS)

Jun 2020 – Jul 2020 Tübingen, Germany

Visiting Student Researcher - Prof. Bernhard Schölkopf

Empirical Inference, Max Planck Institute for Intelligent Systems

Feb 2020 – Oct 2020 Tübingen, Germany
  • Developed and released CausalWorld, a novel robotics manipulation library for generalization in reinforcement learning.
  • Collaborated with a team of engineers and researchers to launch the Real Robot Challenge - as part of the open dynamic robot initiative – where participants can use a farm of real robot manipulators as a cluster computing service.
  • This work was covered by multiple news articles including IEEE Spectrum and Digital Trends.
  • Tools used: C++, Python, Tensorflow, ROS and Bullet

Master’s student Researcher - Prof. Andreas Krause

Learning and Adaptive Systems Lab, ETH Zurich

Sep 2019 – Feb 2020 Zurich, Switzerland
  • Implemented and benchmarked a model predictive controller(MPC) that uses a bayesian network to plan under uncertainty.
  • Released blackbox_mpc library for MPC with sampling-based optimizers to enable fast prototyping of new optimizers.
  • Tools used: Python, Tensorflow and Mujoco


Robotics Summer School 2019

Jun 2019 – Jul 2019 Zurich, Switzerland
Participated in the first robotics summer school of ETH, where tutorials and hands-​on sessions were delivered at a training center for search and rescue. We got the opportunity to program a (semi)-​autonomous rough-​terrain UGV, to extensively test it in a variety of environments, and finally we challenged other participants in a Search and Rescue competition.

Master’s student Researcher - Prof. Marco Hutter

Robotic Systems Lab, ETH Zurich

Feb 2019 – Jul 2019 Zurich, Switzerland
  • Designed a legged locomotion controller for ANYmal robot that uses imitation learning to imitate different walking gaits.
  • Successfully developed a simulated environment of the ANYmal robot using Mujoco physics engine for training controllers.
  • Tools used: C++, Python, Tensorflow, ROS and Mujoco

Applied Research Scientist - Consultant


Jun 2018 – Sep 2018 Montreal, Canada
  • Engineered a neural network optimizer that improves speed, size and efficiency for on-device inference of networks.
  • Improved the compression rate of neural networks by up to 15X using reinforcement learning.
  • Tools used: Python, Tensorflow and PyTorch

Machine Learning Software Engineer


Jun 2017 – Jun 2018 Toronto, Canada
  • Designed and developed a tool that parses and optimizes Tensorflow graphs into an intermediate network representation which can then be used for efficient inference on Snapdragon mobile devices - using CPU, DSP or GPU.
  • Implemented inference algorithms and GPU kernels for the different layers needed to support SOTA perception models.
  • Tools used: C++, Python, Tensorflow, Caffe, Caffe2 and OpenCl

Research Assistant - Prof. Brett Meyer

Reliable Silicon Systems Lab, McGill University

Jun 2016 – Jun 2017 Montreal, Canada
  • Leveraged machine learning to develop a neural architecture search engine that design quantized models to run on FPGAs.
  • Tools used: Python, Tensorflow and Theano

Undergraduate Teaching Assistant

McGill University

Jan 2016 – Apr 2016 Montreal, Canada
Effectively conducted tutorials to over 80 students in Introduction to Software Engineering Course with 96% satisfaction on anonymous surveys. Actively mentored students for their projects and grading their assignments.

Selected Projects

Real Robot Challenge

Currently co-organizing a new real robotics challenge to advance the state-of-the-art in robotic manipulation, a key skill required to deploy robots in the real world. Where we host multiple robotic platforms at the Max Planck Institute for Intelligent Systems. Participants will submit their code as they would for a cluster, and it will then be executed automatically on our platforms. This will allow teams to gather hundreds of hours of real robot data with minimal effort.

Causal World

CausalWorld is an open-source simulation framework and benchmark for causal structure and transfer learning in a robotic manipulation environment (powered by bullet) where tasks range from rather simple to extremely hard. Tasks consist of constructing 3D shapes from a given set of blocks - inspired by how children learn to build complex structures.

Blackbox MPC

A framework of different derivative-free optimizers which can be used in conjunction with a model predictive controller and a learned dynamics model to control an agent in a mujoco or a gym environment.

Deep 3D Human Pose Estimation

Proposed a pipeline that comprises one of the most recent approaches, namely the HighResolution Network combined with a lowweight baseline model for extracting the 3D skeleton of human subjects applied to the Human3.6M dataset; splitting the challenge to image-related and geometric-related tasks.

Effect of Behavioral Cloning on Policy Gradient Methods

With the increasing complexity of robots and the environments they interact with, crafting manual locomotion controllers becomes a challenging task to achieve. As evident from the recent research in this field, reinforcement learning (RL) contin- ues to emerge as an attractive solution for learning locomotion policies in high- dimensional continuous domains.

Local Exploration Based on TSDF

Most current exploration algorithms are based on heuristics and sampling/evaluating many potential viewpoints. The goal of this work is to learn an ideal motion to maximize the known space based on a local map representation.

Online Adaptation using Graph Networks

Considered learning online adaptation in a model-based reinforcement learning context where we train a dynamics model, implemented as a Graph Neural Network, in conjunction with using MPC to control a system where the controller adapts to changes in the environment or tasks.

Duckie Town

Successfully implemented a path planner and a velocity profiler for duckiebots as part of duckietown, a robotics outreach and educational platform, while taking into account various sources of uncertainty.

Sparse Monocular Visual Odometry Pipeline

Successfully implemented a monocular visual odometry (VO) pipeline with the most essential features: initialization of 3D landmarks, key point tracking between two frames, pose estimation using established 2D ↔ 3D correspondences, and triangulation of new landmarks.

Telepresence System

Successfully developed a Telepresence System that is equipped with high definition cameras remotely connected to an Oculus Rift. The purpose of the Telepresence System is to allow the users to see as if they were physically in place of the system itself. The project focused on three main areas: distortion removal, panoramic frame stitching and high definition video streaming.

Enigma Machine

Designed, built and tested a model of a digital Enigma Machine, a cipher machine used in WWII, on an FPGA board.

GoLite Compiler

Designed a compiler for GoLite, a subset of the Go programming language. Built the entire compiler pipeline (parser, syntax tree, type checker, code generator and optimizer), producing Java Byte Code as the target language.

HUS AI agent

Created an Artificial Intelligence agent to compete against more than 200 engineering students to play the HUS game, which is from the family of “Mancala Games”, using Reinforcement Learning Techniques. The agent ranked from the top 10%.

Catch the Flag Robot

Led my team in developing an autonomous robot, in a team of 5 students, to compete against more than 120 engineering students to play catch the flag game, where we ranked 3/25.

Bomberman Game

Implemented a modified version of this game with integrated account management system.