Course Outline
Section 01
Day 01
Introduction
- What Makes a Smart Robot Smart?
Physical vs Virtual Smart Robots
- Smart Robots, Smart Machines, Sentient Machines, and Robotic Process Automation (RPA), etc.
The Role of Artificial Intelligence (AI) in Smart Robots
- Beyond "if-then-else": The Learning Machine
- The Algorithms Behind AI
- AI in Smart Robots: Machine Learning, Computer Vision, Natural Language Processing (NLP), etc.
- Cognitive Robotics
The Role of Big Data in Smart Robots
- Decision-making based on data and patterns
The Cloud and Smart Robots
- Integrating Robotics with IT
- Building more functional robots that access greater information and collaborate effectively
Case Study: Mechanical Smart Robots
- Industrial Smart Robots
- Baxter
- Personal Service Robots
- Domestic robots assisting the elderly, smart self-driving cars
- Professional Service Robots
- Agricultural robots in dairy operations
Hardware Components of a Smart Robot
- Motors, sensors, microcontrollers, cameras, etc.
Common Elements of Smart Robots
- Machine vision, voice recognition, speech synthesis, proximity sensing, pressure sensing, etc.
Development Frameworks for Programming a Smart Robot
- Open-source and commercial frameworks
- Robot Operating System (ROS)
- Architecture: Workspace, Topics, Messages, Services, Nodes, Actionlibs, Tools, etc.
Languages for Programming a Smart Robot
- C++ for low-level control
- Python for orchestration
- Programming ROS nodes in Python and C++
- Other languages
Tools for Simulating a Physical Smart Robot
- Commercial and open-source 3D simulation and visualisation software
Preparing the Development Environment
- Software installation and setup
- Useful packages and utilities
Day 02
Programming the Smart Robot
- Programming a node in Python and C++
- Understanding ROS nodes
- Messages and Topics in ROS
- Publication/Subscription Paradigm
- Project: Bump & Go with a real robot
- Troubleshooting
- Robot Simulation with Gazebo/ROS
- Frames in ROS and Reference Changes
- 2D Information Processing of Cameras with OpenCV
- Laser Information Processing
- Project: Safe Tracking of Objects by Colour
- Troubleshooting
Day 03
Programming the Smart Robot (Continued...)
- Services in ROS
- 3D Information Processing of RGB-D Sensors with PCL
- Maps and Navigation with ROS
- Project: Searching for Objects in the Environment
- Troubleshooting
Section 02
Day 04
Programming the Smart Robot (Continued...)
- ActionLib
- Speech Recognition and Speech Generation
- Controlling Robotic Arms with MoveIt!
- Controlling Robotic Neck for Active Vision
- Project: Search and Collection of Objects
- Troubleshooting
Testing Your Smart Robot
- Unit Testing
Day 05
Extending a Smart Robot's Capabilities with Deep Learning
- Perception – Vision, Audio, and Haptics
- Knowledge Representation
- Voice Recognition through NLP (Natural Language Processing)
- Computer Vision
Crash Course in Deep Learning
- Artificial Neural Networks (ANNs)
- Artificial Neural Networks vs. Biological Neural Networks
- Feedforward Neural Networks
- Activation Functions
- Training Artificial Neural Networks
Day 06
Crash Course in Deep Learning (Continued...)
- Deep Learning Models
- Convolutional Networks and Recurrent Networks
- Convolutional Neural Networks (CNNs or ConvNets)
- Convolution Layer
- Pooling Layer
- Convolutional Neural Networks Architecture
Section 03
Day 07
Crash Course in Deep Learning (Continued...)
- Recurrent Neural Networks (RNN)
- Training an RNN
- Stabilising Gradients During Training
- Long Short-Term Memory Networks
- Deep Learning Platforms and Software Libraries
- Deep Learning in ROS
Day 08
Using Big Data in Your Smart Robot
- Big Data Concepts
- Approaches to Data Analysis
- Big Data Tooling
- Recognising Patterns in the Data
- Exercise: NLP and Computer Vision on Large Data Sets
Day 09
Using Big Data in Your Smart Robot (Continued...)
- Distributed Processing of Large Data Sets
- Coexistence and Cross-Fertilisation of Big Data and Robotics
- The Smart Robot as a Generator of Data
- Range Measuring Sensors, Position, Visual, Tactile Sensors, and Other Modalities
- Making Sense of Sensory Data (Sense-Plan-Act Loop)
- Exercise: Capturing Streaming Data
Section 04
Day 10
Programming an Autonomous Deep Learning Smart Robot
- Deep Learning Robot Components
- Setting Up the Robot Simulator
- Running a CUDA-Accelerated Neural Network with Caffe
- Troubleshooting
Day 11
Programming an Autonomous Deep Learning Smart Robot (Continued...)
- Recognising Objects in Photographs or Video Streams
- Enabling Computer Vision with OpenCV
- Troubleshooting
Day 12
Data Analytics
- Using the Smart Robot to Collect and Organise New Data
Building a Smart Robot Collaboratively
Deploying Your Smart Robot on Physical Hardware
Monitoring and Servicing Smart Robots in the Field
Securing Your Robot
- Preventing Unauthorised Tampering
- Preventing Hackers from Viewing and Stealing Sensitive Business Data (Credit Card, Employee Information, etc.)
Joining the Robotics Community
Future Outlook for Smart Robots
Closing Remarks
Requirements
- Programming experience in C++
- Programming experience in Python
- Experience with the Linux command line
Testimonials (3)
All in general
Daniele Donzelli - ITT ITALIA S.r.l.
Course - CANoe for CAN Compact Training
PLC basic knowledge
Bartosz - Phillips-Medisize Poland
Course - Introduction to OMRON PLC programming
every time i wasn't sure about some exercise, the trainer explained to me in multiple ways, until I understood.