Nauka robotyki z językiem Python - ebook
Nauka robotyki z językiem Python - ebook
Dzięki tej książce można się nauczyć, jak z wykorzystaniem języka Python oraz kilku popularnych frameworków stosowanych w robotyce, takich jak system ROS, budować autonomiczne roboty mobilne. Omówiono w niej również inne frameworki programistyczne, w tym również te dla Pythona. Aby równocześnie pokazać praktyczne wykorzystanie przedstawianego materiału, omówiono krok po kroku proces budowania robota-służącego ChefBot, który na przykład może podawać posiłki w domu, hotelu czy restauracji.
W tej książce przedstawiono:
- zwięzłe podstawy robotyki i zasady projektowania oprogramowania robotów,
- aspekty projektowania CAD 2D i 3D z wykorzystaniem programów LibreCAD i Blender,
- budowanie modeli 3D z wykorzystaniem API Blender dla Pythona,
- zagadnienia sprzętowej warstwy projektowania robota,
- zasady obsługi sensorów robotów, w tym programowanie sensorów wizji,
- obsługę rozpoznawania mowy i syntezę mowy z wykorzystaniem Pythona i ROS,
- implementację sztucznej inteligencji za pomocą Pythona,
- zagadnienie testowania i kalibrowania robota.
Przekonaj się, jak fascynujące jest programowanie robotów!
Lentin Joseph — inżynier elektroniki, entuzjasta robotyki i ekspert w dziedzinie systemów wbudowanych. Szczególnie interesuje się robotyką, przetwarzaniem obrazu i zastosowaniem języka Python w programowaniu robotów. Jest również znawcą wielu platform oprogramowania robotów, takich jak system ROS (ang. Robot Operating system), V-REP i Actin. Biegle posługuje się bibliotekami przetwarzania obrazu, w tym OpenCV, OpenNI i PCL. Specjalizuje się również w dziedzinie projektowania 3D i programowania systemów wbudowanych na platformach Arduino i Launchpad Stellaris. Jest właścicielem firmy Qbotics Labs zajmującej się rozwijaniem robotyki i jej zastosowaniami w wielu dziedzinach.
Spis treści
O autorze (11)
O recenzentach (13)
Przedmowa (15)
Rozdział 1. Wprowadzenie do robotyki (19)
- Czym jest robot? (20)
- Historia terminu "robot" (20)
- Współczesna definicja robota (22)
- Skąd pochodzą roboty? (25)
- Co można znaleźć w robocie? (28)
- Ciało fizyczne (29)
- Sensory (29)
- Efektory (29)
- Kontrolery (30)
- Jak budujemy robota? (31)
- Sterowanie reaktywne (31)
- Sterowanie hierarchiczne (deliberatywne) (31)
- Sterowanie hybrydowe (32)
- Podsumowanie (33)
Rozdział 2. Projekt mechaniki robota usługowego (35)
- Wymagania dla robota usługowego (36)
- Mechanizm napędowy robota (36)
- Wybór silników i kół (36)
- Podsumowanie projektu (38)
- Projekt podwozia robota (38)
- Instalacja oprogramowania LibreCAD, Blender i MeshLab (40)
- Instalacja programu LibreCAD (40)
- Instalacja programu Blender (40)
- Instalacja programu MeshLab (41)
- Tworzenie rysunku CAD 2D robota z wykorzystaniem programu LibreCAD (41)
- Projekt płyty bazowej (43)
- Projekt biegunów płyty bazowej (44)
- Projekt kół, silnika i uchwytów silnika (45)
- Projekt kół kastora (47)
- Projekt płyty środkowej (47)
- Projekt płyty górnej (48)
- Praca z modelem 3D robota z wykorzystaniem programu Blender (48)
- Wykorzystanie skryptów Pythona w programie Blender (49)
- Wprowadzenie do API Pythona programu Blender (50)
- Skrypt modelu robota w Pythonie (51)
- Pytania (56)
- Podsumowanie (56)
Rozdział 3. Symulacja robota z wykorzystaniem systemów ROS i Gazebo (59)
- Symulacja robota (59)
- Modelowanie matematyczne robota (62)
- Wprowadzenie do ROS i Gazebo (69)
- Instalacja systemu ROS Indigo w systemie Ubuntu 14.04.2 (72)
- Symulacja robotów ChefBot i TurtleBot w środowisku hotelu (96)
- Pytania (100)
- Podsumowanie (101)
Rozdział 4. Projektowanie sprzętu robota ChefBot (103)
- Specyfikacje sprzętu robota ChefBot (104)
- Schemat blokowy robota (104)
- Silnik i enkoder (104)
- Sterownik silnika (106)
- Płyta wbudowanego kontrolera (109)
- Sensory ultradźwiękowe (110)
- Inercyjna jednostka pomiarowa (112)
- Kinect (113)
- Centralna jednostka obliczeniowa (114)
- Głośniki i mikrofon (115)
- Zasilacz (akumulator) (115)
- Opis działania sprzętu robota ChefBot (115)
- Pytania (118)
- Podsumowanie (118)
Rozdział 5. Aktuatory i enkodery kół (119)
- Podłączenie motoreduktora DC z kontrolerem Tiva C LaunchPad (120)
- Robot kołowy z napędem różnicowym (122)
- Instalacja IDE Energia (123)
- Kod interfejsu (126)
- Podłączenie enkodera kwadraturowego do kontrolera Tiva C LaunchPad (130)
- Przetwarzanie danych enkodera (131)
- Kod interfejsu z enkoderem kwadraturowym (134)
- Praca z aktuatorami Dynamixel (137)
- Pytania (140)
- Podsumowanie (141)
Rozdział 6. Wykorzystanie sensorów (143)
- Ultradźwiękowe sensory odległości (143)
- Podłączenie modułu HC-SR04 z kontrolerem Tiva C LaunchPad (144)
- Sensory odległości na podczerwień (149)
- Inercyjne jednostki pomiarowe (IMU) (152)
- Nawigacja inercyjna (152)
- Połączenie sensora MPU 6050 z kontrolerem Tiva C LaunchPad (154)
- Kod interfejsu w środowisku Energia (156)
- Kod interfejsu sensora MPU 6050 z kontrolerem Launchpad z wykorzystaniem DMP w środowisku Energia (159)
- Pytania (164)
Rozdział 7. Programowanie sensorów wizji z wykorzystaniem języka Python i systemu ROS (165)
- Lista sensorów wizji dla robota i bibliotek przetwarzania obrazu (166)
- Wprowadzenie do OpenCV, OpenNI oraz PCL (169)
- Czym jest OpenCV? (170)
- Co to jest OpenNI? (174)
- Co to jest PCL? (175)
- Programowanie sensora Kinect za pomocą języka Python z wykorzystaniem ROS, OpenCV i OpenNI (176)
- Jak uruchomić sterownik OpenNI? (176)
- Interfejs ROS do biblioteki OpenCV (177)
- Przetwarzanie chmur punktów z wykorzystaniem sensora Kinect, systemu ROS oraz bibliotek OpenNI i PCL (182)
- Otwieranie urządzenia i generowanie chmury punktów (182)
- Konwersja chmury punktów na dane skanu laserowego (183)
- Wykorzystanie techniki SLAM z systemem ROS i sensorem Kinect (185)
- Pytania (186)
- Podsumowanie (186)
Rozdział 8. Rozpoznawanie i synteza mowy z wykorzystaniem systemu ROS i języka Python (187)
- Rozpoznawanie mowy (188)
- Schemat blokowy systemu rozpoznawania mowy (188)
- Biblioteki rozpoznawania mowy (189)
- Windows Speech SDK (190)
- Synteza mowy (190)
- Biblioteki syntezy mowy (191)
- Rozpoznawanie i synteza mowy w systemie Ubuntu 14.04.2 z wykorzystaniem języka Python (192)
- Konfiguracja biblioteki Pocket Sphinx i jej wrapperów dla języka Python w systemie Ubuntu 14.04.2 (192)
- Wykorzystanie wrappera biblioteki Pocket Sphinx do języka Python w systemie Ubuntu 14.04.2 (193)
- Wyjście (194)
- Rozpoznawanie mowy w czasie rzeczywistym z wykorzystaniem biblioteki Pocket Sphinx, frameworka GStreamer i języka Python w systemie Ubuntu 14.04.2 (195)
- Rozpoznawanie mowy za pomocą narzędzia Julius i języka Python w systemie Ubuntu 14.04.2 (198)
- Instalacja narzędzia rozpoznawania mowy Julius i modułu języka Python (198)
- Kod klienta Python-Julius (199)
- Poprawianie dokładności rozpoznawania mowy w Pocket Sphinx i Julius (200)
- Konfiguracja syntezatorów eSpeak i Festival w systemie Ubuntu 14.04.2 (201)
- Rozpoznawanie i synteza mowy z wykorzystaniem języka Python w systemie Windows (202)
- Instalacja pakietu Speech SDK (202)
- Rozpoznawanie mowy w systemie ROS Indigo z wykorzystaniem języka Python (203)
- Instalacja pakietu pocketsphinx w systemie ROS Indigo (203)
- Synteza mowy w systemie ROS Indigo z wykorzystaniem języka Python (204)
- Pytania (206)
- Podsumowanie (206)
Rozdział 9. Zastosowanie mechanizmów sztucznej inteligencji w robocie ChefBot za pośrednictwem języka Python (207)
- Schemat blokowy systemu komunikacji w robocie ChefBot (208)
- Wprowadzenie do AIML (209)
- Wprowadzenie do znaczników AIML (209)
- Wprowadzenie do PyAIML (212)
- Instalacja modułu PyAIML w systemie Ubuntu 14.04.2 (213)
- Instalacja modułu PyAIML z kodu źródłowego (213)
- Przetwarzanie formatu AIML z poziomu języka Python (213)
- Załadowanie pojedynczego pliku AIML za pośrednictwem argumentu wiersza polecenia (215)
- Wykorzystanie plików AIML robota A.L.I.C.E. (216)
- Ładowanie plików AIML do pamięci (216)
- Ładowanie plików AIML i zapisywanie ich do plików .brn (217)
- Ładowanie plików AIML i plików .brn za pomocą metody bootstrap (218)
- Integracja biblioteki PyAIML z systemem ROS (219)
- aiml_server.py (219)
- aiml_client.py (220)
- aiml_tts_client.py (221)
- aiml_speech_recog_client.py (221)
- start_chat.launch (223)
- start_tts_chat.launch (223)
- start_speech_chat.launch (223)
- Pytania (225)
- Podsumowanie (225)
Rozdział 10. Integracja sprzętu i programowanie robota ChefBot z wykorzystaniem języka Python (227)
- Budowa sprzętu robota ChefBot (228)
- Konfiguracja komputera PC robota ChefBot i ustawienie pakietów systemu ROS (232)
- Interfejs sensorów robota ChefBot z kontrolerem Tiva C LaunchPad (233)
- Wbudowany kod robota ChefBot (234)
- Sterownik systemu ROS dla robota ChefBot w języku Python (236)
- Pliki startowe systemu ROS dla robota ChefBot (241)
- Korzystanie z plików startowych i węzłów robota ChefBot z poziomu języka Python (242)
- Wykorzystanie algorytmu SLAM w systemie ROS do zbudowania mapy pomieszczenia (248)
- Lokalizacja i nawigacja w systemie ROS (250)
- Pytania (251)
- Podsumowanie (251)
Rozdział 11. Projektowanie GUI dla robota za pomocą biblioteki Qt oraz języka Python (253)
- Instalacja frameworka Qt w systemie Ubuntu 14.04.2 LTS (254)
- Korzystanie z wrappera frameworka Qt dla języka Python (254)
- PyQt (255)
- PySide (255)
- Korzystanie z wrapperów PyQt oraz PySide (256)
- Wprowadzenie do programu Qt Designer (256)
- Sygnały i gniazda Qt (258)
- Konwersja pliku UI na kod w języku Python (260)
- Dodawanie definicji gniazda do kodu PyQt (260)
- Uruchomienie aplikacji GUI Witaj świecie (262)
- Interfejs GUI sterowania robotem ChefBot (263)
- Instalacja i korzystanie z narzędzia rqt w systemie Ubuntu 14.04.2 LTS (269)
- Pytania (271)
- Podsumowanie (271)
Rozdział 12. Kalibracja i testowanie robota ChefBot (273)
- Kalibrowanie sensora Xbox Kinect z wykorzystaniem systemu ROS (273)
- Kalibracja kamery RGB sensora Kinect (274)
- Kalibracja kamery podczerwieni sensora Kinect (277)
- Kalibracja odometrii kół (279)
- Analiza błędów odometrii kół (279)
- Korekcja błędów (280)
- Kalibracja sensora MPU 6050 (281)
- Testowanie robota za pomocą interfejsu GUI (282)
- Zalety i wady nawigacji w systemie ROS (285)
- Pytania (285)
- Podsumowanie (285)
Skorowidz (287)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2346-9 |
Rozmiar pliku: | 8,8 MB |