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 3 years ago
iter_1 Working simple control law in Blender. 3 years ago
slides Add slides 3 years ago
.gitignore Generate GIF from output images 3 years ago
Makefile Working simple control law in Blender. 3 years ago
README.md Add README 3 years ago
blob.cpp Working simple control law in Blender. 3 years ago
control_law.py Merge branch 'master' of http://git.phyks.me/Phyks/confocalcurvesthroughdoor 3 years ago
door.blend Pseudo-working elliptic control law 3 years ago
emulate.py Pseudo-working elliptic control law 3 years ago
gifmaker.py Add slides 3 years ago
scheme.ggb Add geogebra draft 3 years ago

README.md

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.