Robotics

Fanuc Industrial Robots for Tesla Manufacturing
Fanuc Industrial Robot in room 2001 D from our department: www.dice.ase.ro ... Meet Robotics as optional lecture for the Economic Informatics 3rd year students @ http://www.acs.ase.ro/robotics

 

ACS Team and invited guests: Cristian Toma, Catalin Boja, Marius Popa, Alin Zamfiroiu, Cristian Ciurea, Bogdan Iancu, Mihai Doinea and others.

REPOs

Robotics lectures and labs are published @ GitHub:

You can use this command to clone the repo on your storage / simply download the ZIP from the website: git clone ...

Mission

Technological transfer from the teacher/university to the students of the practical and theoretical knowledge regarding Robotics:
Industrial and Humanoid Robots Programming - RoS and Karel,
IoT develpoment - C-Arduino | Java/Python - RPi,
Embedded Controllers-ARM Assembly and FPGA concepts - Verilog,
Applied A.I./M.L. - Artificial Intelligence/Machine Learning and Vision Computing in Robots - TinyML, Quantum Computing Clouds for Robots
 and achievment of the robotics field 
paradigms and concepts.

Programming Languages/Platforms for the Robotics Labs:
1. Electronics: Verilog
2. Embedded Controllers: ARM Assembly 
3. IoT Nodes: C-Arduino / node.js & IoT Gateways: Java SE-e / Python
4. Industrial Robots (Didactic): V+ for COBRA
5. Industrial Robots (Production): Karel for Fanuc
6. RoS Programming (Humanoid Robots): C/C++ and Python
7. A.I./M.L. (Artificial Intelligence/Machine Learning - Deep Learning and Neural Networks): Python / Java SE | Tiny-ML: C Language

Lectures & Labs

No.
Lecture
PDF
Lecture Headlines Description

Lecture

Sources

Laboratory Description Labs
- Administrative issues

General Recommandations:

 
01.

Introduction in Electronics:
- Electronic Components: Resistors, LEDs, Capacitors, Inductors, Servo-Engines, Relays, Breadboard
- Circuits and Semi-conductors: Diodes and Transistors, TTH circuits build, Stabilized AC
Signals: Amplifiers, Filters, Modulation and Demodulation devices, Timers
Digital Electronics: Boolean Gates, Convertors, Logic Switches: MOS and DEMOS, Flip-Flop, Registers.
From Prototype to Product: gEDA and Fritzing Schematic IDE

02.

FPGA - Verilog VLSI/VHDL Basics

- VLSI (Very-Large-Scale Integration) Design: Digital System, FPGA (Field Programmable Gate Array), MOS/MOSFET/CMOS (Metal-Oxide-Semiconductor Field Effect Transistor - MOSFET), Logic Gates and Circuits
- VHDL (Very high-speed integrated circuit Hardware Description Language): Combinational and Sequential Circuits
- Design And Tool Flow
- Verilog HDL Syntax And Semantics
- Gate Level Modeling
- User Defined Primitives
- Verilog Operators
- Verilog Behavioral Modeling
- Procedural Timing Control
- Task And Functions
- System Task and Function

FPGA/Verilog Programming - Introduction in Icarus Simulator and Spartan develoment board
03.

Embedded Microcontrollers Programming - ARM Assembly Programming:
Part 1: Introduction to ARM Assembly
Part 2: Data Types Registers
Part 3: ARM Instruction Set
Part 4: Memory Instructions: Loading and Storing Data
Part 5: Load and Store Multiple

04.

Embedded Microcontrollers Programming - ARM Assembly Programming: 
Part 6: Conditional Execution and Branching 
Part 7: Stack and Functions

ARM microcontroller: ARM v6/v7 – Raspberry Pi Intro in ARM Assembly Programming - via SSH to RPi 3 with port forwarding
05.

IoT - Internet of Things Concepts, Clouds and Edge Devices - IoT Nodes, Gateways and MCU - Micro Computing Units

- IoT Clouds: Google, Amazon AwS, MS Azure, Oracle
- Communications Protocols: MQTT, MQTT-SN, COAP and HTTP-REST

C-Arduino Programming:

- Program Structure and Data Types
- Variable & Constants
- Operators
- Control Statements: Alternative, Loops, ...
- Functions
- Strings, Time and Arrays
- I/O Functions and Advanced I/O
- Character Functions and Math Library
- PWM (Pulse Width Modulation), Interrupts
- Communications, Inter Integrated Circuits
- Serial Peripheral Interface
- Sensors and Motor Control

06.

IoT Node/Gateways Programming:
Digital I/O Programming on Raspberry Pi Board for UART, GPIO, SPI, I2C (Sensors and Actuators)
- Java DIO / Pi4J;
- Python / C - wiringPi
- ESP8266 – Espruino – node.js JavaScript Programming
- Micro-controllers AVR ATtiny85 – C and Arduino UNO Programming

Micro-controllers AVR ATtiny85 – C and Arduino UNO Programming Examples in C-Arduino for real development boards such as: Arduino UNO / ESP8266 / Intel Galileo
07.

Industrial Robots Programming
- Types of the industrial robots (e.g. Fanuc-CISCO, Kuka-HUAWEI, Adept Technologies – COBRA, DOBOT Magician) and robotic arms – e.g. Cartesian, Cylinder, SCARA, Parallel.
- Simulators for the industrial Robots – Intro: Adept Digital Workcell, KUKA Sim / KUKA Office and Fanuc RoboGuide IDE
- Simulators and Operating Systems and Open Platforms for Robots Programming: ROS.org and Python Adept Digital Simulator; V+ OS and V+ Programming Language

08.

Industrial Robots Programming

- Terminology. Coordinates systems and robots spaces. Homogenous Transformations Vectors and Matrix. Industrial Robots 
- Architectures and Real Time Performances.

- Geometric position models: direct and inverse kinematics models.

- Diferential Cinematic Models. Analytic and geometric Jacobian.
- Robot Dynamic models in
 Lagrange and Newton-Euler formalism. Dynamic movement models in cartezian space.

- Planning methods for robots movements and generation of the movements paths.

Industrial Robots Programming in V+ for COBRA Robots
09.

Industrial Robots Programming

- Industrial Robots Operations:
   - Pick and Place
   - One-dimensional Stacks
   - 3D Stacks parallel with the robot axes

- Tool Transformation: Grip orientation in Tool Transformation, Exocentric Gripper in Tool Transformation.

- Robots Procedural Movement and Complex Trajectories: optimization of the Pick and Place Operation, Mathematical Trajectories
- Trajectories generation – simulation and implementation

- Kinematics Singularities

10. Industrial Robots Programming - Karel:

- Software Program Structure, Variables and declaration
- Data Structures, Operators and Functions
- Program Execution Control: Jumps, Loops, if, etc.
- Motion and Program Control - Routines / Sub-programs / Functions
- I/O Operations – RS232, RS 485
- Digital Signals I/O programming
- File and Socket Operations – TCP/IP - Condition handlers / Interrupts
- Multi-tasking - Libraries for integrating with Industry 3rd party programs

- Communications, Cooperation and Synchronization between the robots

Industrial Robots Programming in Karel for Fanuc Robots
11.

Humanoid Robots Programming
SoftBanks Robotics:

Programming Pepper / NAO
- Choreograph - NAOqi OS - GNU/Linux distribution based on Gentoo
- Python Programming SDK API for:
- Motion - Sensors - Audio - Vision - Communications - Autonomous Life State Machine

12.

Humanoid Robots and other robots type Programming with RoS/ROS2 - Robots Operating System / Linux Embedded

Libraries for Visual Computing - OpenCV for RoS - Robots Operating System

RoS/ROS2 Programming Project Development
13.

Artificial Intelligence / Machine Learning with Visual Computing Programming for Robots

- Explore the machine learning landscape, particularly neural nets
- Use Scikit-Learn to track an example machine-learning project end-to-end
- Explore several training models, including support vector machines, decision trees, random forests, and ensemble methods
- Use the TensorFlow library to build and train neural nets
- Dive into neural net architectures, including convolutional nets, recurrent nets, and deep reinforcement learning
- Learn techniques for training and scaling deep neural nets

Software Libraries/API for A.I. to be integrated into Robots: e.g. Deeplearning4j, Apache NLP, Keras, etc.

14. Artificial Intelligence / Machine Learning and ANN - Artificial Neuronal Networks with Tiny ML
- Build a speech recognizer OR a camera that detects people
- Work with ultra-low-power microcontrollers for Neural Networks Inferences
- Learn the essentials of ML and how to train your own models
- Train models to understand audio, image, and accelerometer data
- Explore TensorFlow Lite for Microcontrollers, Google’s toolkit for TinyML
- Debug applications and provide safeguards for privacy and security
- Optimize latency, energy usage, and model and binary size
TinyML Project on Embedded Board Development

*.

Additional to the didactic activities (lectures/labs/seminars) will be items dedicated for the team projects presentations and/or discussions - e.g. Quantum Computing in Cloud impact in Robotics, Nano-Robots or Medical Robots, Boston Dynamics robots or AWS storage houases robots.

PROJECT EVALUATION

 

Prerequisites

Mandatory: Multi-Paradigm Programming – Java; Data Structures – C; Object Oriented Programming – C++; Linux/Windows OS and Networking topics.

Optional: node.js/Python Programming

E-Framework Solutions & Resouces Downloads / Access:

E-Framework solutions and docs plus the simulators for Robotics are stored in Git or provided by ACS team.

E-Learning Solution

E-Learning solution platform for BSc. Economic Informatics study program @ Robotics, as part of the DICE/DEIC - Department of Economic Informatics and Cybernetics (www.dice.ase.ro | www.csie.ase.ro) is based on SAKAI CLE / TalentLMS. The SAKAI CLE is powered by Sakai Project and it is provided by: ISM - ICT | Cyber Security Master (www.ism.ase.ro) program and ACS - Applied Computer Science And Cyber Security Team (www.acs.ase.ro/acs-team). Also for the blending learning process and the projects/tests upload, as alternative, http://online.ase.ro (moodle) and Google Class-Room might be used.

The web address of SAKAI platform for the students from Economic Informatics master program is for the moment - the page SHOULD be accessed from Mozilla Firefox, Google Chrome, Opera or Internet Explorer browser, without any proxy set (e.g. without 'cache.ase.ro : 8080'), or alternatively, insert the exception for IP address 37.120.250.22 in proxy section + please accept SSL Warning because the security certificate is 'self signed' and you SHOULD choose the option link 'Proceed Anyway / Not Recommended':
http://37.120.250.22:8020/portal 

References

1. Edouard Renard, "ROS2 for Beginners", Manning Publications | Anil Mahtani, Luis Sanchez, Enrique Fernandez, Aaron Martinez, Lentin Joseph, "ROS Programming: Building Powerful Robots", Publisher: Packt Publishing, Release Date: March 2018, ISBN: 9781788627436

2. Morgan Quigley, Brian Gerkey, William D. Smart, "Programming Robots with ROS", Publisher: O'Reilly Media, Inc., Release Date: December 2015, ISBN: 9781449323899

3. Bernardo Ronquillo Japon, "Hands-On ROS for Robotics Programming", Publisher: Packt Publishing, Release Date: February 2020, ISBN: 9781838551308

4. Lentin Joseph, "Robot Operating System (ROS) for Absolute Beginners: Robotics Programming Made Easy", Publisher: APress, Release Date: May 2018, ISBN: 9781484234051

5. Theodor Borangiu, Alexandru Dumitrache, Florin Daniel Anton, "Programarea Robotilor", Editura A.G.I.R, 2010, ISBN: 978-973-720-3 37-3

6. Industrial Robots Programming - Fanuc – Cisco – Karel Programming Manual: http://fs1.gongyeku.com/data/usershare/2015-3/20150330093450.pdf | https://www.youtube.com/watch?v=iMjOutf395s

7. Industrial Robots Programming - Kuka – Huawei – Expert Programming Software Manual: http://forum.robotsinarchitecture.org/index.php?action=dlattach;topic=20.0;attach=11

8. Omron/Adept COBRA Robots, V+ Language and Simulator: https://robotics.omron.com/ | http://www.scr.cimr.pub.ro/Doc_Adept/VLNGUG.PDF | https://assets.omron.com/m/1f31a9a80d45e980/original/eV-Language-User-s-Guide.pdf | https://github.com/alexdu/robot-sandbox

9. Humanoid Robots Programming: https://developer.softbankrobotics.com/ | http://doc.aldebaran.com/2-4/dev/programming_index.html

10. Robotics Lecture @ Stanford: https://see.stanford.edu/Course/CS223A

11. Robotics Lecture @ MIT: https://ocw.mit.edu/courses/mechanical-engineering/2-12-introduction-to-robotics-fall-2005/lecture-notes/

12. ARM Assembly Intro: https://azeria-labs.com/writing-arm-assembly-part-1/

13. ARM Assembly Guide: https://thinkingeek.com/arm-assembler-raspberry-pi/ | https://developer.arm.com/docs/den0024/a/introduction | http://www.toves.org/books/arm/ 

14. FPGA/Verilog Guide: http://www.asic-world.com/verilog/veritut.html | https://www.tutorialspoint.com/vlsi_design/index.htm | https://iverilog.fandom.com/wiki/Getting_Started

15. C-Arduino Programming: https://arduino.cc/ | https://www.tutorialspoint.com/arduino/index.htm

16. Aurélien Géron, "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition", Publisher: O'Reilly Media, Inc., Release Date: September 2019, ISBN: 9781492032649

17. Pete Warden, Daniel Situnayake, "TinyML", Publisher: O'Reilly Media, Inc., Release Date: December 2019, ISBN: 9781492052043

18. Paulo Aliverti – Electronic Book for Beginners – Complete Guide

19. Tom Taulli, "The Robotic Process Automation Handbook: A Guide to Implementing RPA Systems", Publisher: Apress, Release Date: February 2020, ISBN: 9781484257296

20. Books for students projects in Robotics and IoT field (didactic, non-production):

- Stephen Smith, "Raspberry Pi Assembly Language Programming: ARM Processor Coding", Publisher: Apress, Release Date: October 2019, ISBN: 9781484252871

- Stephen Smith, "Programming with 64-Bit ARM Assembly Language: Single Board Computer Development for Raspberry Pi and Mobile Devices", Publisher: Apress, Release Date: May 2020, ISBN: 9781484258811

- David McGriffy, "Make: Drones", Publisher: Make: Community, Release Date: October 2016, ISBN: 9781680451719

- Stephen Chin, James Weaver, "Raspberry Pi with Java: Programming the Internet of Things (IoT)", Publisher: McGraw-Hill, Release Date: October 2015, ISBN: 9780071842020

- Donald Norris, "The Internet of Things: Do-It-Yourself at Home Projects for Arduino, Raspberry Pi and BeagleBone Black", Publisher: McGraw-Hill Education TAB, Release Date: January 2015, ISBN: 9780071835213

- Nicolas Modrzyk, "Real-Time IoT Imaging with Deep Neural Networks: Using Java on the Raspberry Pi 4", Publisher: Apress, Release Date: March 2020, ISBN: 9781484257227

- Wolfram Donat, "Make a Raspberry Pi-Controlled Robot", Publisher: Make: Community, Release Date: November 2014, ISBN: 9781457186035

- Rick Waldron, "Make: JavaScript Robotics", Publisher: Make: Community, Release Date: April 2015, ISBN: 9781457186950

- Matt Timmons-Brown, "Learn Robotics with Raspberry Pi", Publisher: No Starch Press, Release Date: December 2018, ISBN: 9781593279202

- Rui Santos, Sara Santos, "20 Easy Raspberry Pi Projects", Publisher: No Starch Press, Release Date: April 2018, ISBN: 9781593278434

Meher Kasam, Siddha Ganju, Anirudh Koul, "Practical Deep Learning for Cloud, Mobile, and Edge", Publisher: O'Reilly Media, Inc., Release Date: October 2019, ISBN: 9781492034865

* Vladimir Silva, "Practical Quantum Computing for Developers: Programming Quantum Rigs in the Cloud using Python, Quantum Assembly Language and IBM QExperience", Publisher: Apress, Release Date: December 2018, ISBN: 9781484242186