- Programming experience in C++
- Programming experience in Python
- Experience with Linux command line
A Smart Robot is an Artificial Intelligence (AI) system that can learn from its environment and its experience and build on its capabilities based on that knowledge. Smart Robots can collaborate with humans, working along-side them and learning from their behavior. Furthermore, they have the capacity for not only manual labor, but cognitive tasks as well. In addition to physical robots, Smart Robots can also be purely software based, residing in a computer as a software application with no moving parts or physical interaction with the world.
In this instructor-led, live training, participants will learn the different technologies, frameworks and techniques for programming different types of mechanical Smart Robots, then apply this knowledge to complete their own Smart Robot projects.
The course is divided into 4 sections, each consisting of three days of lectures, discussions, and hands-on robot development in a live lab environment. Each section will conclude with a practical hands-on project to allow participants to practice and demonstrate their acquired knowledge.
The target hardware for this course will be simulated in 3D through simulation software. The ROS (Robot Operating System) open-source framework, C++ and Python will be used for programming the robots.
By the end of this training, participants will be able to:
- Understand the key concepts used in robotic technologies
- Understand and manage the interaction between software and hardware in a robotic system
- Understand and implement the software components that underpin Smart Robots
- Build and operate a simulated mechanical Smart Robot that can see, sense, process, grasp, navigate, and interact with humans through voice
- Extend a Smart Robot's ability to perform complex tasks through Deep Learning
- Test and troubleshoot a Smart Robot in realistic scenarios
Audience
- Developers
- Engineers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Note
- To customize any part of this course (programming language, robot model, etc.) please contact us to arrange.
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" and 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
- Linking robotics with IT
- Building more functional robots that access more information and collaborate
Case Study: Mechanical Smart Robots
- Industrial Smart Robots
- Baxter
- Personal Service Robots
- Domestic robots that assist the elderly, smart self-driving cars
- Professional Service Robots
- Agricultural robots in diary 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 controlling
- 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 visualization 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 node
- Messages and topics in ROS
- Publication / subscription paradigm
- Project: Bump & Go with real robot
- Troubleshooting
- Simulation of robots with Gazebo / ROS
- Frames in ROS and reference changes
- 2D information processing of cameras with OpenCV
- Information processing of a laser
- Project: Safe tracking of objects by color
- 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: Search 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
- Stabilizing 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
- Recognizing 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-fertilization 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 Cafe
- Troubleshooting
Day 11
Programming an Autonomous Deep Learning Smart Robot (Continued...)
- Recognizing objects in photographs or video streams
- Enabling computer vision with OpenCV
- Troubleshooting
Day 12
Data Analytics
- Using the Smart Robot to collect and organize 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 unauthorized tampering
- Preventing hackers from viewing and stealing sensitive business data (credit card, employee information, etc.)
Joining to the Robotics Community
Future Outlook for Smart Robots
Closing Remarks
United Arab Emirates - Smart Robots for Developers
Qatar - Smart Robots for Developers
Egypt - Smart Robots for Developers
Saudi Arabia - Smart Robots for Developers
South Africa - Smart Robots for Developers
Brasil - Smart Robots for Developers
Canada - Smart Robots for Developers
中国 - Smart Robots for Developers
香港 - Smart Robots for Developers
澳門 - Smart Robots for Developers
台灣 - Smart Robots for Developers
USA - Smart Robots for Developers
Österreich - Smart Robots for Developers
Schweiz - Smart Robots for Developers
Deutschland - Smart Robots for Developers
Czech Republic - Smart Robots for Developers
Denmark - Smart Robots for Developers
Estonia - Smart Robots for Developers
Finland - Smart Robots for Developers
Greece - Smart Robots for Developers
Magyarország - Smart Robots for Developers
Ireland - Smart Robots for Developers
Luxembourg - Smart Robots for Developers
Latvia - Smart Robots for Developers
España - Robots Inteligentes para Desarrolladores
Italia - Smart Robots for Developers
Lithuania - Smart Robots for Developers
Nederland - Smart Robots for Developers
Norway - Smart Robots for Developers
Portugal - Smart Robots for Developers
România - Smart Robots for Developers
Sverige - Smart Robots for Developers
Türkiye - Smart Robots for Developers
Malta - Smart Robots for Developers
Belgique - Smart Robots for Developers
France - Smart Robots for Developers
日本 - Smart Robots for Developers
Australia - Smart Robots for Developers
Malaysia - Smart Robots for Developers
New Zealand - Smart Robots for Developers
Philippines - Smart Robots for Developers
Singapore - Smart Robots for Developers
Thailand - Smart Robots for Developers
Vietnam - Smart Robots for Developers
India - Smart Robots for Developers
Argentina - Robots Inteligentes para Desarrolladores
Chile - Robots Inteligentes para Desarrolladores
Costa Rica - Robots Inteligentes para Desarrolladores
Ecuador - Robots Inteligentes para Desarrolladores
Guatemala - Robots Inteligentes para Desarrolladores
Colombia - Robots Inteligentes para Desarrolladores
México - Robots Inteligentes para Desarrolladores
Panama - Robots Inteligentes para Desarrolladores
Peru - Robots Inteligentes para Desarrolladores
Uruguay - Robots Inteligentes para Desarrolladores
Venezuela - Robots Inteligentes para Desarrolladores
Polska - Smart Robots for Developers
United Kingdom - Smart Robots for Developers
South Korea - Smart Robots for Developers
Pakistan - Smart Robots for Developers
Sri Lanka - Smart Robots for Developers
Bulgaria - Smart Robots for Developers
Bolivia - Robots Inteligentes para Desarrolladores
Indonesia - Smart Robots for Developers
Kazakhstan - Smart Robots for Developers
Moldova - Smart Robots for Developers
Morocco - Smart Robots for Developers
Tunisia - Smart Robots for Developers
Kuwait - Smart Robots for Developers
Oman - Smart Robots for Developers
Slovakia - Smart Robots for Developers
Kenya - Smart Robots for Developers
Nigeria - Smart Robots for Developers
Botswana - Smart Robots for Developers
Slovenia - Smart Robots for Developers
Croatia - Smart Robots for Developers
Serbia - Smart Robots for Developers
Bhutan - Smart Robots for Developers