List of publications (2023.05.01)
Selected publications (download)
Obecnie:
Aptiv Services Poland S.A (dawniej Delphi) w Krakowie - na stanowisku lidera zespołu zajmującego się projektowaniem algorytmów aktywnego bezpieczeństwa (od lipca 2014 roku),
Politechnika Bydgoska, Wydział Telekomunikacji, Informatyki i Elektrotechniki (od października 2010 roku)
Wcześniej:
(1996 - 2004) Politechnika Poznańska, Wydział Elektryczny, później Wydział Informatyki i Zarządzania.
Ze względu na różne stypendia naukowe miałem też okazję pracować w kilku ośrodkach naukowych poza Polską (szczegóły poniżej).
(1) University of Alberta, Department of Electrical and Computer Engineering, Edomonton, Kanada (09.2005 - 08.2008)
Pobyt w Kanadzie odbywał się w ramach dwóch podoktoranckich stypendiów naukowych. Pierwsze z nich obejmowało okres 12 miesięcy. Zostało mi przyznane przez Fundację na Rzecz Nauki Polskiej. Drugie 3-letnie stypendium Marie Curie Unii Europejskiej (IOF - International Outgoing Fellowship) składało się z dwóch faz. Pierwsza 2 -letnia faza (outgoing phase) była kontynuacją pobytu na University of Alberta. Współpracuję z tą uczelnią do dzisiaj poprzez Prof. Witolda Pedrycza.
W ramach obu stypendiów zajmowałem się projektowaniem analogowych układów bardzo niskiego poboru mocy (m.in. przetworniki analogowo-cyfrowe (A/C), filtry liniowe oraz nieliniowe, sztuczne sieci neuronowe, układy dla medycyny nuklearnej).
(2) University of Neuchatel, Institute of Microtechnology, Neuchatel, Electronics and Signal Processing Laboratory (ESPLAB), Szwajcaria (09.2008 - 12.2008)
(3) Swiss Federal Institute of Technology in Lausanne (EPFL) (Ecole Polytechnique Fédérale de Lausanne), Institute of Microtechnology (IMT), Electronics and Signal Processing Laboratory (ESPLAB), Szwajcaria (01.2009 - 08.2010 oraz kilka miesięcy w 2012 roku jako Visiting Professor)
Pierwszy rok pobytu w Szwajcarii wynikał z kontynuacji stypendium Marie Curie UE (return phase). Zmiana uczelni w Szwajcarii wynikała z przeniesienia Instytutu Mikrotechnologii na EPFL. Siedziba instytutu fizycznie pozostała w Neuchatel. Drugi rok pobytu odbywał się w ramach szwajcarskiego grantu CTI, podczas którego brałem udział w projektowaniu żyroskopu (flywheel gyro) scalonego realizowanego w technologii MEMS. Byłem odpowiedzialny za zaprojektowanie oraz zbudowanie sprzętowego modelu (w środowisku Matlab/Simulink) pętli sprzężenia zwrotnego żyroskopu, obejmującego przetwornik A/C zbudowany na bazie modulatora Sigma-Delta wraz z trójstopniowym filtrem decymacyjnym zoptymalizowanym pod względem liczby tranzystorów, dyskretny regulator PID, oraz blok sterujący PWM (Pulse Width Modulation) również oparty ma modulatorze Sigma-Delta (tak zwane sterowanie bang-bang). Projekt odbywał się przy współpracy z ETH Zürich (Department of Mechanical and Process Engineering Micro- and Nanosystems) oraz firmą Colibrys z Neuchatel.
(4) Innovations for High Performance (IHP) Microelectronics, Department of Circuit Design, Frankfurt nad Odrą w Niemczech (10.1999 - 03.2000 / 12.2012 - 02.2013)
Podczas pierwszego pobytu w IHP w latach 1999/2000 projektowałem przetwornik A/C oparty na architekturze modulatora Sigma-Delta, w szczególności skupiając się na filtrze decymacyjnym (architektura 4-stopniowa). Drugi pobyt odbywał się w ramach stypendium naukowego niemieckiej fundacji DAAD (Deutscher Akademischer Austauschdienst). W tym czasie zajmowałem się projektowaniem prototypowego układu scalonego w technologii CMOS 130nm zawierającego miniaturowy, programowalny, 10-bitowy przetwornik analogowo-cyfrowy typu successive approximation (SAR) pracujący w trybie prądowym, oraz wybrane bloki składowe sztucznej sieci neuronowej Kohonena. W przetworniku A/C typu SAR jednym z bloków składowych jest przetwornik cyfrowo-analogowy (C/A), który dostarcza sygnał odniesienia do komparatora. Strukturę tego bloku oparłem na własnym rozwiązaniu. Był to dwustopniowy przetwornik C/A oparty na dwóch wielowyjściowych lustrach prądowych. Dzięki temu udało się zbudować 10-bitowy przetwornik zajmujący powierzchnię jedynie 0.01 mm2.
(5) Scanimetrics Company w Edmonton w Kanadzie. Staż przemysłowy (06.2006).
W ramach stażu zajmowałem się optymalizacją układu scalonego wykonanego w technologii CMOS 130nm, zawierającego tor nadawczy oraz odbiorczy RF pracujący przy częstotliwości 2 GHz. Optymalizacja polegała na poprawie odporności układu na wpływy temperatury otoczenia, zmian napięcia zasilania, oraz procesu technologicznego (analiza narożnikowa PVT - Proces, Voltage, Temperature).
Prof. Witold Pedrycz University of Alberta, Edmonton, Kanada
Gunter Fischer - Innovations for High Performance (IHP) Microelectronics, Frankfurt nad Odrą / Niemcy
Tomasz Talaśka - Uniwersytet Techniczno-Przyrodniczy (UTP)
Marzena Banach - Politechnika Poznańska, Wydział Architektury (WAPP)
Współpraca obejmuje między innymi zagadnienia związane z implementacją sztucznych sieci neuronowych w specjalizowanych układach scalonych. Interesuje nas możliwość implementacji nawet bardzo złożonych algorytmów uczenia takich sieci w specyficzny a zarazem bardzo elastyczny sposób jaki możliwy jest tylko w specjalizowanych układach scalonych. Prowadzi to do powstania algorytmów i rozwiązań pracujących w sposób równoległy. Dodatkowo częstokroć asynchroniczne przetwarzanie sygnałów umożliwia uzyskiwanie rozwiązań bardzo szybkich i prostych zarazem.
(1) Mikroeletronika - projektowanie specjalizowanych układów scalonych, w szczególności układów pobierających bardzo małą moc. Były to układy analogowe, cyfrowe oraz mieszane. Projekty obejmowały sztuczne sieci neuronowe, filtry analogowe oraz cyfrowe (liniowe FIR/IIR również dwuwymiarowe do filtracji obrazu, nieliniowe), przetworniki analogowo-cyfrowe typu successive approximation register (SAR), przetworniki analogowo-cyfrowe oparte na modulatorach sigma-delta (w tym obszarze interesują mnie głównie filtry decymacyjne), regulatory scalone, układy oparte na logice rozmytej (sieci neuronowe Łukasiewicza, rozmyte sieci neuronowe) oraz elementy układów scalonych do zastosowań w medycynie nuklearnej (szybkie multipleksery asynchroniczne, detektory wartości szczytowej, filtry kształtujące impuls). Interesują mnie rozwiązania rekonfigurowalne/programowalne, umożliwiające równolegle oraz asynchroniczne przetwarzanie sygnałów.
Ostatnio coraz bardziej interesuje mnie temat układów scalonych dla systemów stosowanych w motoryzacji. W tym obszarze jest bardzo dużo do zrobienia. Ze względu na bardzo szybki rozwój obszaru aktywnego bezpieczeństwa pojawiają się nowe algorytmy służące do przetwarzania danych z kamer, radarów oraz ostatnio również lidarów. Środowisko otaczające samochód jest bardzo złożone, co powoduje że algorytmy używane do jego oceny i wnioskowania będą również coraz bardziej złożone. W rezultacie trzeba będzie sięgać po układy programowalne o większej mocy obliczeniowej, a przez to droższe. Inną możliwością jest implementacja tych algorytmów w specjalizowanych układach scalonych, po ich odpowiedniej optymalizacji pod tym kątem. Według mnie to podejście doprowadzi do dużo lepszych rezultatów (stosunek ceny układu do możliwości) i jest jedynie kwestią czasu kiedy takie rozwiązania zaczną się pojawiać masowo.
Jestem autorem lub współautorem dziesięciu specjalizowanych układów scalonych zrealizowanych w technologiach CMOS 0.8um, 0.35um, 180nm oraz 130nm. Projekty były realizowane w stylu "full-custom" (ręczne układanie elementów) w środowisku CADENCE. Symulacje były prowadzone w środowiskach HSPICE oraz Spectre.
Ogólna prezentacja realizowanych projektów obejmująca projekty realizowane w okresie 2000-2005 w Polsce oraz w okresie 2006-2008 w Kanadzie.
(Chip IHP) - układ wykonany w technologii 130nm zawierający między innymi 10-bitowy programowalny przetwornik analogowo-cyfrowy typu SAR. Układ został wykonany w IHP Microelectronics we Frankfurcie nad Odrą w Niemczech.
(2) Programowanie - Języki programowania to nie tylko moje zainteresowania naukowe ale też hobby. Zacząłem programować w 1987 roku, kiedy po raz pierwszy zetknąłem się z komputerami ZX Spectrum na lekcji informatyki w Technikum Kolejowym w Poznaniu. Rok później kupiłem swój pierwszy komputer (portugalski Timex klon ZX Spectrum). Programowałem wtedy w językach Basic oraz Assembler. Jeśli ktoś pamięta te maszyny to wie jaka to była frajda :-). Dostępna pamięć operacyjna 48~kB (100 tysięcy razy mniej niż dzisiaj mamy typowo dostępne), szybkość przynajmniej 1000 razy mniejsza niż dzisiaj, rozdzielczość ekranu 256x192 pikseli z koszmarnym adresowaniem i jedynie ośmioma kolorami, a na dokładkę programy zapisywane na taśmie magnetofonowej i odczytywane z szybkością 120 B/s :-). To był taki informatyczny survival :-). Basic był językiem interpretowanym, więc by uzyskać jakąkolwiek płynność animacji graficznych konieczne było programowanie w Assemblerze, który umożliwiał uzyskanie szybkości kilkadziesiąt razy większej niż w przypadku Basica.
Później już na studiach programowałem w języku Pascal, pod systemem DOS. Wtedy kupiłem swój drugi komputer, IBM z procesorem Intel 386SX 16MHz, z 1 MB pamięci RAM oraz dyskiem twardym 40 MB. W porównaniu z ZX Spectrum był to praktycznie skok cywilizacyjny, ale zarazem survivalu informatycznego ciąg dalszy :-) Aby uzyskać większą powierzchnię dysku, pakowałem go programem Stacker, co pozwalało uzyskiwać powierzchnię nawet 70 MB (10 tysięcy razy mniej niż mam do dyspozycji w swoim komputerze dzisiaj). Na tym komputerze wykonałem większość projektów podczas studiów (Automatyka i Robotyka na Politechnice Poznańskiej), w tym programy będące w stanie sterować robotami. Te komputery uczyły oszczędności w gospodarowaniu pamięcią, a przez to bardzo doskonaliły warsztat programistyczny. Kiedy później kupiłem komputer z procesorem 486DX100MHz i dyskiem 1.6GB, to nie wiedziałem co mam począć z tą powierzchnią i z tą mocą obliczeniową. Wszystkie moje dotychczasowe programy zmieściły się na 4% tego gigantycznego na tamte czasy dysku. Na tym komputerze powstał też mój program do studiowania Biblii.
Praca w Wyższej Szkole Informatyki (WSInf) w Bydgoszczy (od 2002 roku) zmusiła mnie do nauczenia się języków C oraz C++, w których programuję do dzisiaj. Początkowo uczyłem tych języków studentów, ale z czasem zaczęły pojawiać się nawet bardzo złożone projekty. Po powrocie do Polski ze stypendiów okazało się że w WSInf nastąpiła zmiana programowa i głównym językiem uczonym w ramach przedmiotów związanych z językami programowania jest język Java. Wtedy nauczyłem się też tego języka, również w wersji na urządzenia mobilne. Osobiście nie przepadam za tym językiem.
Ostatnio w ramach pracy w Aptiv bardzo dużo programuję też w środowisku Matlab, głównie ze względu możliwość szybkiego prototypowania algorytmów i całkiem dobry moduł związany z grafiką i przetwarzaniem obrazów. Wiele projektów realizowałem w środowisku Octave, które jest darmowym odpowiednikiem Matlaba.
(3) Projektowanie algorytmów -- prace w obszarze przetwarzania danych wizyjnych oraz radarowych (12 opublikowanych patentów oraz kolejnych 10 w trakcie przetwarzania w biurach patentowych):
Prace te obejmują też rozwój algorytmów związanych z rozwojem sztucznych sieci neuronowych i ogólnie matematycznymi metodami przetwarzania sygnałów.
Obecnie:
Dawniej:
Omawiane zagadnienia:
Preferuję systemy operacyjne UNIX oraz Linux. Do edycji dokumentów korzystam głównie z systemu LaTeX.