Difference between revisions of "Projects AI Robotics"

From RoboWiki
Jump to: navigation, search
m
m
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Projects_AI_Robotics|Nazad na projekty ...]]
+
This page contains student projects from the course Algoritms for AI Robotics
  
GolfBot spis projektu (pripravuje sa) ...
+
Please create a separate page for each project:
  
== Program ==
+
== 2021 ==
  
=== Prepojenie s kamerou a určovanie orientačných bodov ===
+
[[Ottis - Aljaž Andolšek and Ursek Slivsek]]
  
Obraz sme získavali pomocou Kinectu pre XBox 360. Máme dve triedy, <code>Kinect</code> (odvodená od <code>edu.ufl.digitalworlds.j4k.J4KSDK</code>) a <code>Camera</code> (implementuje <code>Runnable</code>).
+
[[VR controlled robot hand - Elisabet Delgado Mas]]
  
Hlavný program spúšťa vlákno kamery, ktoré následne pri inicializácii spustí vlákno kinectu v móde <code>J4KSDK.COLOR</code>. Inštancii tredy <code>Kinect</code> je potom poslaná referencia na kameru. Trieda <code>Kinect</code> prekrýva metódu udalosti <code>onColorFrameEvent</code>, ktorá nastáva po zosnímaní farebného obrazu kinectom, pričom tento obraz posiela inštancii kamery cez referenciu volaním jej verejnej metódy <code>setImageFromKinect</code>.
+
[[LunarLander (Deep) Q-learning - Filip Pavlove]]
  
Hlavné vlákno kamery vykonáva cyklicky tieto akcie:
+
[[Tello dron s OCR ovladanim - Jan Spirka]]
  
Najprv sa otestuje, či existuje snímka z kamery.
+
== 2020 ==
* Ak nie, ukončí iteráciu cyklu a pokračuje ďalšou iteráciou.
 
* Ak áno:
 
*# Vytvorí si novú kópiu obrázku (pre účely spracovania).
 
*# Aplikuje gaussovo rozmazanie pracovného obrázka z polomerom 3px.
 
*# Skonvertuje obrázok z farebného formátu BGR do LAB.
 
*# Pomocou prahovania, nájdeniu najväčšieho spojitého komponentu a priemerovania x, y pozícií pixelov najväčšieho spoločného komponentu nájde stredy kruhových značiek a lopty.
 
*# Určia sa polohy cieľa (stred obrázka), lopty (oranžová značka na obrázku), polomer lopty a pozicia robota.
 
*# Spočíta sa uhol natočenia robota (podľa zelenej a modrej značky).
 
*# Vykreslia sa získané body do náhľadového obrázka.
 
*# Hlavné vlákno programu je notifikované o dokončení cyklu kamery (teda sú spočítané potrebné body pre ďalšiu fázu programu hlavného vlákna).
 
  
==== Gaussovo rozmazanie obrázku ====
+
[[Pulzný oximeter a CO meter]]
  
Na rozmazanie obrázka (blur) je použítá aproximácia gaussovho rozmazávacieho algoritmu, ktorý dokáže pracovať v lineárnom čase. Použili sme port algoritmu z JavaScriptu z blogu Ivana Kuckira, nájsť ho je možné na stránke [http://blog.ivank.net/fastest-gaussian-blur.html Fastest Gaussian Blur (in linear time)] (jedná sa o algoritmus 4 na tejto stránke).
+
[[Robot Otto očami začiatočníka - Patrik Modrovský]]
  
Keďže algoritmus počíta s tým, že obrázok je tvorený polom bajtov, kde jeden bajt reprezentuje jeden pixel, bolo nutné obrázok rozdeliť na tri obrázky, ktoré reprezentovali jeho červenú, zelenú a modrú farebnú zložku samostatne. Potom, ako algoritmus rozmazania dokončil svoju prácu na každom z týchto rozdelených obrázkov, bolo treba ich opätovne spojiť do jedného obrázka. Na toto nám slúžia metódy <code>separateColor</code> a <code>putColor</code>.
+
== 2019 ==
  
==== Prevod z RGB do LAB ====
+
[[BOB808 - Peter Šeban, Jerguš Greššák]]
  
Keďže zosnímaný obrázok z kamery je vo formáte, kde jeden pixel je určený štyrmi bajtmi s významom: Blue, Green, Red a posledný je vždy nulový (hodnota 0), pričom tieto hodnoty sú v rozsahu od 0 do 255, je treba najprv každý pixel preformátovať do tvaru RGB, kde každá hodnota je <code>float</code> s hodnotou od 0 do 1. Na to máme metódu <code>getPixel</code> s následným predelením každej zložky hodnotou 255.
+
[[Tatrabot learns]]
  
Každý pixel je potom vložený do statickej metódy triedy <code>CIELab</code> s názvom <code>fromRGB</code>, ktorá vráti hodnotu pixelu vo formáte farieb LAB. Trieda <code>CIELab</code> na prevod z RGB do LAB ešte používa medzikrok, kde každý RGB pixel prevedie do formátu XYZ, z ktorého následne vytvorí LAB formát.
+
[[Lilli object interaction - Michal Fikar, Nina Lúčna]]
  
==== Prahovanie ====
+
[[MazeWalker - Beatriz Ramos, João Estorninho]]
  
Prahovanie používame na získanie masky informácií o prítomnosti farebnej informácie v LAB formáte v spracovávanom obrázku. Tento algoritmus (metóda <code>prahuj(float[] from, float[] to)</code>) dostáva minimálnu a maximálnu hodnotu prahu farby v LAB formáte a v obrázku zisťuje, pre každý pixel, či je v rozsahu tejto hodnoty alebo nie je. Ak pixel v rozsahu je, dostane výstupná maska na pozícii pixelu hodnotu 1, v opačnom prípade je použitá hodnota 0.
+
[[100(1+1) - Lauren Kondratiev, Danijela Topić Vizcaya]]
  
'''int[]''' ''o'' = '''new int['''potrebná veľkosť''']'''
+
== 2018 ==
'''for''' každé ''x''
 
    '''for''' každé ''y''
 
      '''if''' pixel na ''x'' a ''y'' je medzi ''from'' a ''to''
 
          zapíš do ''o'' 1
 
      '''else'''
 
          zapíš do ''o'' 0
 
'''return''' ''o''
 
 
==== Najväčší spojitý komponent ====
 
  
Výstupom z prahovania je maska obsahujúca nuly a jednotky, na pozíciách, kde bola zistená vhodná farba. Algoritmus nájdenia najväčšieho spojitého komponentu prehľadáva pôvodnú masku, v prípade nájdenia hodnoty jedna spustí prehľadávanie do šírky, pričom každý susedný pixel (v každom z 8 smerov) označí hodnotou N. N začína na hodnote 2 a je zvyšovaný po dokončení označenia komponentu, tento číselný údaj je vpisovaný do vstupnej masky. Tento komponent sa hľadá metódou <code>int flood(int px, int py, int[] in, int n)</code>, ktorá dostáva súradnice prvého bodu komponentu, masku a číselné označenie komponentu, označí komponent a spočíta počet pixelov v tomto komponente, ktorý následne vráti.
+
[[Ottov plynulý pohyb a úprava prehrávania skladieb pomocou buzzera - Denis, Jana]]
  
Každý komponent je zapísaný do <code>HashMap</code>, kde kľúč je číslo komponentu a hodnota je počet pixelov v komponente. Po nájdení všetkých komponentov sa určí najväčší z nich a maska sa opäť preznačí na hodnoty 0 a jednoa takto:
+
[[Tatrabot 2D mapping - Johanna, Romana, Nicole, Oswaldo, Matej, Viktor]]
  
* Ak pixel má hodnotu čísla najväčšieho komponentu, bude nastavený na hodnotu 1.
+
== 2017 ==
* Ak pixel má inú hodnotu, bude nastavený na 0.
 
  
Metóda hľadajúca najväčší spojitý komponent má názov <code>najSpoj</code>.
+
[[Tatrabot mapuje miestnost - Igor Slovak]]
  
==== Určenie stredu a AABB ohraničenia komponentu ====
+
[[BugBox(použitie DQN pri učení štvornohého robota optimálnej chôdze) - Martin Zvara]]
  
Na získanie stredu a AABB ohraničenia komponentu sa používa metóda <code>drawX</code>. Metóda dostáva masku s určeným najväčším spojitým komponentom, pričom pre každý pixel, ktorého hodnota je rovná 1, je pozícia pixelu x a y pripočítaná k ceľkovému súčtu. Rovnako sú pre každé x a y upravené hodnoty premenných <code>maxX</code>, <code>minX</code>, <code>maxY</code> a <code>minY</code>. Výsledný stred je vypočítaný ako pomer súčtu x ku počtu pixlov a súctu y k počtu pixlov.
+
[[Identifikácia robotov na zákalde špecifických objektov pomocou webkamery - Dominik Knechta]]
  
'''int[]''' ''stred'' = '''new int['''6''']'''
+
[[Myš sledujúca čiaru - Marián Margeta a Marián Jonis]]
'''long''' ''sx'' = 0, ''sy'' = 0
+
 
'''int''' ''maxX'' = 0, ''maxY'' = 0, ''minX'' = ''width'', ''minY'' = ''height'', ''pocet'' = 0
+
[[LCS in context of ML- Martin Mihál]]
'''for''' každý ''x''
+
 
    '''for''' každý ''y''
+
[[ROS - Andrej Zemanovič]]
      '''if''' pixel ''x'',''y'' patrí komponentu
+
 
          ''sx'' += ''x'', ''sy'' += ''y'', ''pocet''++
+
[[Robot ovládaný pomocou natrénovanej neurónovej siete - Katarína Kotrlová]]
          ''maxX'' = max(''maxX'', ''x'')
+
 
          ''maxY'' = max(''maxY'', ''y'')
+
[[POMDP - Drahomír Mrózek]]
          ''minX'' = min(''minX'', ''x'')
+
 
          ''minY'' = min(''minY'', ''y'')
+
== 2016 ==
'''if''' ''pocet'' je 0
+
[[V-Rep simulation|Space orientation robot in V-Rep - Dominik Kotvan a Ladislav Wagner]]
    '''return''' ''stred''
+
 
''stred''[0] = round(''sx'' / ''pocet'')
+
[[Tatrabot coordination|Tatrabot coordination - Ákos Hervay]]
''stred''[1] = round(''sy'' / ''pocet'')
+
 
''stred''[2] = ''minX''
+
[[Kladky s EV3|Kladky s EV3 - Michal Rakovský a Martin Palka]]
''stred''[3] = ''minY''
+
 
''stred''[4] = ''maxX''
+
[[Tatrabot LineFollowing|Genetically evolved Neural Network for Tatrabot LineFollowing- Timotej Jurášek]]
''stred''[5] = ''maxY''
+
 
'''return''' ''stred''
+
[[Simulacia POMDP|Simulation of two-state Partially Observable Markov Decision Process - Roman Brojo]]
 +
 
 +
[[Monte carlo locatization with robot Mikes - Tomas Kubla]]
 +
 
 +
== 2015 ==
 +
[[GolfBot|GolfBot - Andrej Jursa a Michal Moravčík]]
 +
 
 +
[[Sokoban|Sokoban - Dušan Suja, Máté Tibor Krajczár, Tamás Danis]]
 +
 
 +
== 2014 ==
 +
[[Lego Mindstorms Ev3 Project - Ondrej Slovak]]
 +
 
 +
[[robot performs movements, detects trajectory using gyroscope/accellerometer, sends data to Java application that visualizes the trajectory (Mário Raček, Roman Moravec)]]
 +
 
 +
[[LEGO NXT project (Martin Marko, Martin Šalka)]]
 +
 
 +
[[GAZEBO simulator (Ľubomír Chriašteľ)]]
 +
 
 +
[[ASUS Xtion pre robota SmelyZajko (Marek Jelen, Miroslav Garai)]]
 +
 
 +
[[Robot Following using Camera (Marian Vysluzil)]]
 +
 
 +
== 2013 ==
 +
 
 +
[[Robot_constructs_a_map_of_a_maze_-_Adam_Bilisics]]
 +
 
 +
[[Šifrovačka s robotnačkou pre Euroveu, EV3 Puppy (Martina Chraščová, Lucia Budinská, Lucia Ďurikovičová )]]
 +
 
 +
[[E-Puck Bludisko]]
 +
 
 +
[[Visual navigation for Acrob or SBOT robot with Android with camera ( Marek Kádek, Jana Sucháneková)]]
 +
 
 +
[[Acrob robot constructs a map of a maze (Péter Dobsa, Gergely Labanc)]]
 +
 
 +
[[Acrob robot constructs a map of a maze - obstacles around the robot (Jozef Belko)]]
 +
 
 +
[[Trajectory from gyro/accellerometer/compas]]
 +
 
 +
[[Parking of robots in Remotely-operated laboratory]]
 +
 
 +
[[Pohyb robota po čiare a zaznamenávanie vzdialenosti okolitých objektov (Dudík, Kemény)]]
 +
 
 +
[[Agent Space on Raspberry Pi and Acrob with line-following and obstacle avoiding behavior-based robot.(Anton Blahunka, Martin Reiberger)]]
 +
 
 +
[[Evolution with Open Dynamics Engine (Bečvarová Ľuboslava)]]
 +
 
 +
[[Acrob navigation in maze using neural network (Kundlová, Jurenka)]]
 +
 
 +
[[ Acrob in maze (line sensor, distance sensor, robot navigates towards the maze exit) (Martin Hrivnák, Tomáš Matúš)]]
 +
 
 +
[[Acrob robot prejde bludisko, a program ďalej vizualizuje mapu bludiska na obrazovke (Michal Borčin & Barbora Zaťková)]]
 +
 
 +
[[NXT/LeJOs bot navigates maze consisting of black tape on white paper, object in front of robot is the maze exit (Pavol Lescinsky)]]
 +
 
 +
[[Omnibot(Krajči,Dluhý)]]
 +
 
 +
[[Navigation of the robot arm with ANN(Karin Vališová)]]
 +
 
 +
[[Evolving obstacle avoidance in Microsoft Robotics Studio (autori: Miroslav Matušťák & Pavol Kunovský)]]
 +
 
 +
[[Trajectory from gyro/accellerometer/compas with 9DOF IMU (Michal Zemko, Peter Svitok)]]
 +
 
 +
== 2012 ==
 +
 
 +
[[Avoiding in a corridor]]
 +
 
 +
[[Ketchup Robot]]
 +
 
 +
[[Identification of beer bottle using OpenCV]]
 +
 
 +
[[Mapping with SBOT]]
 +
 
 +
[[Light Avoiding SBOT]]
 +
 
 +
[[V-REP]]
 +
 
 +
[[Webots]]
 +
 
 +
[[Feedforward Backpropagation Neural Networks]]
 +
 
 +
[[AnyKode Marilou]]
 +
 
 +
== 2011 ==
 +
 
 +
[[Braitenberg 2]]
 +
 
 +
[[Tetrix robot with localisation using a neural network]]
 +
 
 +
[[Robot nasleduje čiaru a vykreslí svoju dráhu do programu]]
 +
 
 +
[[Mouse in Maze with robot E-Puck]]
 +
 
 +
[[Natural language interface for SBOT]]
 +
 
 +
[[SBOT following the line]]
 +
 
 +
[[Lego RCX following the line and obstacle avoiding ]]
 +
 
 +
[[Implement a simple LCS for the SBOT robot]]
 +
 
 +
[[Micromouse with Mindstorms]]
 +
 
 +
[[Mail delivery robot]]
 +
 
 +
[[Pohyb podla moznych krokov]]
 +
 
 +
[[New applet control interface for the lab control page ]]
 +
 
 +
[[Reproducing a learned geometrical object using drawing pen of Robotnacka robot]]
 +
 
 +
[[Obstacle avoidance training in Khepera 2 simulator via neural network]]
 +
 
 +
[[Highlander]]
 +
 
 +
== 2010 ==  
 +
 
 +
[[Line Following Sbot Using Reinforcement Learning]]
 +
 
 +
[[Controlling robots in remotely-operated laboratory using Objection language]]
 +
 
 +
[[Robot Parking using NEAT - Neuroevolution of augmenting topologies]]
 +
 
 +
[[Gripper Functionality for Remotely-Operated Robotics Laboratory]]
 +
 
 +
[[Visualization of Robotnacka Trajectories in Robotics Laboratory]]
 +
 
 +
[[Robot whitch follow a line and stop back up of barrier]]
 +
 
 +
[[Robot with ultrasonic distance sensors]]
 +
 
 +
[[Braitenberg vehicles implemented using SBOT robot]]
 +
 
 +
[[Simple reactive Sbot agent]]
 +
 
 +
[[Simple python GUI for SBOT without packets]]
 +
 
 +
[[Controlling robot with webcam]]
 +
 
 +
[[SBOT pushing a vehicle]]
 +
 
 +
__notoc__

Revision as of 03:58, 15 December 2021

This page contains student projects from the course Algoritms for AI Robotics

Please create a separate page for each project:

2021

Ottis - Aljaž Andolšek and Ursek Slivsek

VR controlled robot hand - Elisabet Delgado Mas

LunarLander (Deep) Q-learning - Filip Pavlove

Tello dron s OCR ovladanim - Jan Spirka

2020

Pulzný oximeter a CO meter

Robot Otto očami začiatočníka - Patrik Modrovský

2019

BOB808 - Peter Šeban, Jerguš Greššák

Tatrabot learns

Lilli object interaction - Michal Fikar, Nina Lúčna

MazeWalker - Beatriz Ramos, João Estorninho

100(1+1) - Lauren Kondratiev, Danijela Topić Vizcaya

2018

Ottov plynulý pohyb a úprava prehrávania skladieb pomocou buzzera - Denis, Jana

Tatrabot 2D mapping - Johanna, Romana, Nicole, Oswaldo, Matej, Viktor

2017

Tatrabot mapuje miestnost - Igor Slovak

BugBox(použitie DQN pri učení štvornohého robota optimálnej chôdze) - Martin Zvara

Identifikácia robotov na zákalde špecifických objektov pomocou webkamery - Dominik Knechta

Myš sledujúca čiaru - Marián Margeta a Marián Jonis

LCS in context of ML- Martin Mihál

ROS - Andrej Zemanovič

Robot ovládaný pomocou natrénovanej neurónovej siete - Katarína Kotrlová

POMDP - Drahomír Mrózek

2016

Space orientation robot in V-Rep - Dominik Kotvan a Ladislav Wagner

Tatrabot coordination - Ákos Hervay

Kladky s EV3 - Michal Rakovský a Martin Palka

Genetically evolved Neural Network for Tatrabot LineFollowing- Timotej Jurášek

Simulation of two-state Partially Observable Markov Decision Process - Roman Brojo

Monte carlo locatization with robot Mikes - Tomas Kubla

2015

GolfBot - Andrej Jursa a Michal Moravčík

Sokoban - Dušan Suja, Máté Tibor Krajczár, Tamás Danis

2014

Lego Mindstorms Ev3 Project - Ondrej Slovak

robot performs movements, detects trajectory using gyroscope/accellerometer, sends data to Java application that visualizes the trajectory (Mário Raček, Roman Moravec)

LEGO NXT project (Martin Marko, Martin Šalka)

GAZEBO simulator (Ľubomír Chriašteľ)

ASUS Xtion pre robota SmelyZajko (Marek Jelen, Miroslav Garai)

Robot Following using Camera (Marian Vysluzil)

2013

Robot_constructs_a_map_of_a_maze_-_Adam_Bilisics

Šifrovačka s robotnačkou pre Euroveu, EV3 Puppy (Martina Chraščová, Lucia Budinská, Lucia Ďurikovičová )

E-Puck Bludisko

Visual navigation for Acrob or SBOT robot with Android with camera ( Marek Kádek, Jana Sucháneková)

Acrob robot constructs a map of a maze (Péter Dobsa, Gergely Labanc)

Acrob robot constructs a map of a maze - obstacles around the robot (Jozef Belko)

Trajectory from gyro/accellerometer/compas

Parking of robots in Remotely-operated laboratory

Pohyb robota po čiare a zaznamenávanie vzdialenosti okolitých objektov (Dudík, Kemény)

Agent Space on Raspberry Pi and Acrob with line-following and obstacle avoiding behavior-based robot.(Anton Blahunka, Martin Reiberger)

Evolution with Open Dynamics Engine (Bečvarová Ľuboslava)

Acrob navigation in maze using neural network (Kundlová, Jurenka)

Acrob in maze (line sensor, distance sensor, robot navigates towards the maze exit) (Martin Hrivnák, Tomáš Matúš)

Acrob robot prejde bludisko, a program ďalej vizualizuje mapu bludiska na obrazovke (Michal Borčin & Barbora Zaťková)

NXT/LeJOs bot navigates maze consisting of black tape on white paper, object in front of robot is the maze exit (Pavol Lescinsky)

Omnibot(Krajči,Dluhý)

Navigation of the robot arm with ANN(Karin Vališová)

Evolving obstacle avoidance in Microsoft Robotics Studio (autori: Miroslav Matušťák & Pavol Kunovský)

Trajectory from gyro/accellerometer/compas with 9DOF IMU (Michal Zemko, Peter Svitok)

2012

Avoiding in a corridor

Ketchup Robot

Identification of beer bottle using OpenCV

Mapping with SBOT

Light Avoiding SBOT

V-REP

Webots

Feedforward Backpropagation Neural Networks

AnyKode Marilou

2011

Braitenberg 2

Tetrix robot with localisation using a neural network

Robot nasleduje čiaru a vykreslí svoju dráhu do programu

Mouse in Maze with robot E-Puck

Natural language interface for SBOT

SBOT following the line

Lego RCX following the line and obstacle avoiding

Implement a simple LCS for the SBOT robot

Micromouse with Mindstorms

Mail delivery robot

Pohyb podla moznych krokov

New applet control interface for the lab control page

Reproducing a learned geometrical object using drawing pen of Robotnacka robot

Obstacle avoidance training in Khepera 2 simulator via neural network

Highlander

2010

Line Following Sbot Using Reinforcement Learning

Controlling robots in remotely-operated laboratory using Objection language

Robot Parking using NEAT - Neuroevolution of augmenting topologies

Gripper Functionality for Remotely-Operated Robotics Laboratory

Visualization of Robotnacka Trajectories in Robotics Laboratory

Robot whitch follow a line and stop back up of barrier

Robot with ultrasonic distance sensors

Braitenberg vehicles implemented using SBOT robot

Simple reactive Sbot agent

Simple python GUI for SBOT without packets

Controlling robot with webcam

SBOT pushing a vehicle