Looking for
a job

Robotics engineer
Starting from october 2025

About Me

Lucas NAURY - MSc student

Currently pursuing a MSc in Robotics at Cranfield University, I'm looking for a position as a Robotics engineer.

I've always had a passion for IT. Using online courses, I've learnt various languages (HTML, CSS, JS, VueJS, C#, C++, C, Python, Java, etc.) to satisfy my curiosity. I've also created a few personal projects in my spare time, which you can consult below.

After playing with software and web programming, I discovered embedded programming and fell in love with it. I decided to pursue a carreer in that sector, as a robotics engineer.

Portfolio

Academic projects

Project #1 - Optimization of space robot trajectories to reduce disturbances during in-orbit assembly

As part of my thesis at Cranfield University, I developed a motion planning approach aimed at improving the efficiency and reliability of in-orbit assembly (ISA) operations. Objective: Design and validate a trajectory planning algorithm capable of passively limiting the impact of robotic arms on the satellite's orientation, in order to extend the lifetime of In-Orbit Assembly missions while reducing fuel consumption. Technologies used: ROS2, C++, Python, MoveIt2, Gazebo

MARIO

MARIO

MARIO (Multi-Arm Robot for In-Orbit Operations) is a 3-arm space robot concept developed by Cranfield University. It is designed to perform In-Orbit Assembly operations, using two robotic arms for locomotion and the third one for manipulating and assembling space components.

Slope

ASTRA-Lab

MARIO operates in the ASTRA-Lab, which is characterized by an extremely flat floor (± 1.5 mm).

Click to expand
Air bearing

Air bearings

By using air bearings in the ASTRA-Lab, with a continuous flow of compressed air directed at the floor, a thin layer of air is created on which the air bearings can glide without friction, thereby recreating microgravity conditions in the plane.

Click to expand

MARIO's movement

MARIO moves along the structure by attaching with one arm and then advancing the other. This cycle is repeated 3 times in our experiment.

Click to expand
Structure

Structure

MARIO moves on a structure built from aluminum profiles. This modularity makes it possible to attach elements to the structure, such as docking points for the robotic arms. Several units can be joined together to form a longer structure.

Click to expand
Tab My recipes / Favorites

Tool

The two robotic arms used for locomotion are equipped with a docking end-effector. It can be easily mounted thanks to the tool changer system. On the structure, docking points are attached, containing magnetic disks. Thus, by toggling the electromagnet's state, the robot can attach/detach itself from the structure.

Click to expand

Project #2 - Design of a lunar rover for oxygen transport on the Moon

As part of a group project at Cranfield University, we designed a rover and its navigation algorithms, in partnership with the EURO2MOON consortium. Objective: Design the mechanical structure of a lunar rover for oxygen transport on the Moon, as well as the autonomous navigation algorithms it uses. Definition of an ISRU scenario and validation of the algorithms on this scenario, by calculating the best paths between the different points of interest. Technologies used: ROS2, Python, Nav2, Gazebo, A*

Rover design

Rover design

The mechanical design of the rover is a robot with 4 driving wheels, mounted on reconfigurable legs, capable of carrying a payload of 50 kg. This locomotion system allows it to move in rough terrain and steep slopes.

Tab My recipes / Favorites

Autonomous navigation architecture

Global planning, based on satellite images, is carried out offline to exploit Earth's computing power. Pre-calculated routes are stored on the rover and loaded when needed. Local planning, on the other hand, runs in real time to avoid obstacles detected by the sensors.

Click to expand
Tab My recipes / Favorites

Global planning

For global planning, we use the A* algorithm, with a cost function that takes into account: distance traveled, slopes, illumination and steering. Thus, the paths found minimize distance while avoiding craters and shadowed areas.

Click to expand
Global planning results

Results - Global planning

Whatever the configuration of the ISRU units, the rover is able to find a path between the different points of interest, avoiding craters. The greater the distance to cover, the longer the execution time, but it remains reasonable since it is executed offline.

Click to expand
Tab My recipes / Favorites

Local planning

Local planning uses a stereo camera and a 3D lidar to perceive its environment and create a cost map. This cost map is then used by the DWB algorithm to avoid obstacles.

Click to expand
Tab My recipes / Favorites

Results - Local planning

The rover manages to avoid different obstacles on its way while following the global path.

Click to expand

Projet #3 - Digital Innovation Hackathon

In January 2024, I had the opportunity to take part in the Digital Innovation Hackathon organised by my school (IMT Nord Europe) in partnership with CITC and ENSAM Lille. Objective : design a robotic system capable of sorting parts of various shapes using a robotic arm (Niryo Ned2) equipped with a camera and a gripper. The parts were then placed on a conveyor (a Kobuki robot equipped with 2D lidar) and moved to points of interest. Technologies used : ROS2, Python, OpenCV

Niryo

Niryo Ned2

We first used the Niryo Ned2 robot and its vision kit to detect and then pick up parts.
Starting with simple squares/round shapes, we then had to pick up more complex parts.

Click to expand
Ecran principal

Kobuki

The Kobuki robot is a "TurleBot" type robot. We used it to move parts from one point to another in the environment, using its 2D lidar to locate and navigate to specific locations.

Click to expand
Ecran principal

Environment

The test environment was a maze. Once the Kobuki had been loaded by the robot arm, it had to move to one of the points in the environment.

Click to expand
Onglet Mes recettes / Favoris

Moving parts

The robot arm had to deposit the parts in the wooden box (cut out at the school fablab) placed on the Kobuki.

Click to expand
Onglet Mes recettes / Favoris

The map

Using a SLAM algorithm, we created a map of the test environment to determine the positions of points of interest and enable the robot to find its way around.

Click to expand

Project #4 - 3D Reconstruction

In April 2024, as part of a robotics and vision module, I participated in a one-week project. Objective: Take multiple shots of a 3D object using a Kuka robotic arm and an Intel RealSense camera to reconstruct the 3D model of the object. Technologies used: ROS2, Python, OpenCV

Kuka robot setup

KUKA KR 5 Sixx R650

We used an industrial Kuka robot for this project, equipped with a pneumatic gripper. The object to be scanned was a cube, placed on a base at a specific location.

Robot movement

Robot Movement

The robot handled grabbing the piece with its gripper and showing it from different angles to the Intel RealSense camera positioned above the workspace.

Computer vision

Computer Vision

A computer vision algorithm detected the color of the cube and measured the distance for each pixel on the face of the cube.

Click to expand
Result

Result

Once the depth data from the different faces were collected, the point clouds had to be merged to create a mesh. The result still needs improvement but is quite satisfactory considering the project's duration.

Personnal projects

Project #1 - CONTROL

A PC game developed during the summer of 2020 using Unity 3D. The concept is simple: you control a character, and you need to reach the portal to move on to the next level. To do so, you can take control of other characters in the level by "shooting" them. Each character has special abilities, so the player must strategize to complete the level.

Main Menu

Home Screen

This is the first thing the player sees when launching the game.

Click to expand
Options

Options Menu

From this menu, the player can adjust controls, graphics settings, and game volume.

Click to expand
Level Select

Level Selector

Only the last unplayed level is accessible to the player.

Click to expand

Blobby - The Bouncing Character

The player will meet this character, who allows the player to bounce and reach previously inaccessible areas.

Click to expand
Tutorial

First Tutorial Level

This is the first level the player plays. It teaches them the basic movements.

Click to expand
Doubly

Doubly - The Double Jump Character

This is the first character the player encounters. They can perform a double jump, allowing them to overcome larger obstacles.

Click to expand

Project #2 - Recipes

Recipes is a web application that allows you to store your recipes in one place. With it, you'll no longer have to search through books or drawers for hours! You can access everything with just one click, from any device!
However, this isn't a typical recipe app. Recipes allows you to randomly choose recipes when you don’t know what to cook!

Overview

Recipes has several features such as: random recipe selection when you're out of ideas, cloud synchronization for your recipes, recipe sharing via a simple link, and many more...

Click to expand
Main screen

Home screen

The home screen allows you to access the various functions of the app.

Click to expand

Recipes

When displaying recipes, the user can see the time it will take, the difficulty, and the number of servings. Then, the steps and ingredients are organized by categories for easier understanding.

Click to expand
My Recipes / Favorites tab

My Recipes

In this tab, the user can see both the recipes they have created and their favorite recipes.

Click to expand
Random Search tab

Random Search

In this tab, the user can select the type of recipe they want, and the app will find one randomly.

Click to expand

Project #3 - Workout Timer

A web application that allows you to plan your workout session. The user selects the duration, rest time, and number of repetitions for an exercise. The application then displays countdowns so that the user can fully focus on their workout!

Settings

Home Screen

This is the first page the user sees when launching the app. They can input their exercise details here.

Click to expand
Time Picker

Time Picker

Uses a JavaScript library for the Time Picker.

Click to expand
Settings Completed

Completed Settings

Once the settings are filled in, the user can click "START" to begin the workout.

Click to expand

App in Use

Once the timer starts, an animation displays the elapsed time as a circle.
The app stops when the workout is fully completed.

Click to expand
Practice Time

Practice Time

The user performs the exercise during the specified time.

Click to expand
Rest Time

Rest Time

The user rests during the specified time.

Click to expand
<
>

< >

Press Esc to exit

Experimentations

Here are a few quick projects made out of curiosity, to test different things and expand my knowledge.

Sorting Visualizer

Visualization of different sorting algorithms, using VueJS.
View link

Click to expand

A* Pathfinding visualization

Implementation of the A* pathfinding algorithm, displaying heuristic, real, and total costs.

Click to expand
A* Pathfinding visualization

Double Pendulum

Implementation of the double pendulum motion equations using the "Runge-Kutta" method.

Click to expand
Double Pendulum

Fractal Trees

Implementation of a fractal tree generation algorithm using Unity3D.

Click to expand
Fractal Trees