Using the geometry of confocal curves for passing through a door, implementation.
Élie Michel 202ffdeaa0 Merge branch 'master' of http://git.phyks.me/Phyks/confocalcurvesthroughdoor 5 years ago
iter_1 Working simple control law in Blender. 5 years ago
slides Add slides 5 years ago
.gitignore Generate GIF from output images 5 years ago
Makefile Working simple control law in Blender. 5 years ago
blob.cpp Working simple control law in Blender. 5 years ago
control_law.py Merge branch 'master' of http://git.phyks.me/Phyks/confocalcurvesthroughdoor 5 years ago
door.blend Pseudo-working elliptic control law 5 years ago
emulate.py Pseudo-working elliptic control law 5 years ago
gifmaker.py Add slides 5 years ago
scheme.ggb Add geogebra draft 5 years ago

ConfocalCurvesThroughDoor

Overview

This projects aims at implementing methods presented in the paper The geometry of confocal curves for passing through a door (Salaris P., Vassallo C., Souères P. and Laumond J.-P.).

Basically, we use a single camera to steer a robot through a door thanks to geometrical approach.

Our virtual robot moves inside a 3D scene in Blender. We use it to render what the camera would see and then we analyse these images using OpenCV.

File layout

`door.blend`

This is the Blender scene in which the robot evolves.

It contains a basic door, privided with two yellow marks that are used for object recognition and the robot is represented by the camera.

Run `emulate.py` in it (Alt+P with the mouse over a window where `emulate.py` is opened) to make one moving iteration.

`emulate.py`

It is called in Blender interface and so uses Blender Python API to run one iteration of camera moving using the law implemented in `control_law.py`

`control_law.py`

This python module defines the control law used as basis of the robot’s steering.

It also contains a class for point management that can get points from image by calling `blob`.

`blob.cpp`

This file extract from an image the position of yellow blobs and print it to the standard out.

Its output is scrapped by `control_law.py`.

`Makefile`

Makefile used to generate the `blob` program from `blob.cpp`.

It handles `make` and `make clean`.

`gifmaker.py`

This script iterates `emulate.py` and saves succeeding robot camera renders into an animated gif file.

`iter_1`

This directory contains legacy files used for first tests.