Course Outline
Week 01
Introduction
- What Makes a Robot smart?
Physical vs Virtual Robots
- Smart Robots, Smart Machines, Sentient Machines and Robotic Process Automation (RPA), etc.
The Role of Artificial Intelligence (AI) in Robotics
- Beyond "if-then-else" and the learning machine
- The algorithms behind AI
- Machine learning, computer vision, natural language processing (NLP), etc.
- Cognitive robotics
The Role of Big Data in Robotics
- Decision-making based on data and patterns
The Cloud and Robotics
- Linking robotics with IT
- Building more functional robots that access more information and collaborate
Case Study: Industrial Robots
- Mechanical Robots
- Baxter
- Robots in Nuclear Facilities
- Radiation detection and protection
- Robots in Nuclear Reactors
- Radiation detection and protection
Hardware Components of a Robot
- Motors, sensors, microcontrollers, cameras, etc.
Common Elements of Robots
- Machine vision, voice recognition, speech synthesis, proximity sensing, pressure sensing, etc.
Development Frameworks for Programming a Robot
- Open source and commercial frameworks
- Robot Operating System (ROS)
- Architecture: workspace, topics, messages, services, nodes, actionlibs, tools, etc.
Languages for Programming a Robot
- C++ for low level controlling
- Python for orchestration
- Programming ROS nodes in Python and C ++
- Other languages
Tools for Simulating a Physical Robot
- Commercial and open source 3D simulation and visualization software
Week 02
Preparing the Development Environment
- Software installation and setup
- Useful packages and utilities
Case Study: Mechanical Robots
- Robots in the nuclear technology field
- Robots in environmental systems
Programming the 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
Week 03
Programming the 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
Programming the 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 Robot
- Unit testing
Week 04
Extending a 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
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
Week 05
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
Using Big Data in Your 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
Using Big Data in Your Robot (Continued...)
- Distributed processing of large data sets
- Coexistence and cross-fertilization of Big Data and Robotics
- The 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
Programming an Autonomous Deep Learning Robot
- Deep Learning robot components
- Setting up the robot simulator
- Running a CUDA-accelerated neural network with Cafe
- Troubleshooting
Week 06
Programming an Autonomous Deep Learning Robot (Continued...)
- Recognizing objects in photographs or video streams
- Enabling computer vision with OpenCV
- Troubleshooting
Data Analytics
- Using the robot to collect and organize new data
- Tools and processes for making sense of the data
Deploying a Robot
- Transitioning a simulated robot to physical hardware
- Deploying the robot in the physical world
- Monitoring and servicing robots in the field
Securing Your Robot
- Preventing unauthorized tampering
- Preventing hackers from viewing and stealing sensitive data
Building a Robot Collaboratively
- Building a robot in the cloud
- Joining the robotics community
Future Outlook for Robots in the Science and Energy Field
Summary and Conclusion
Requirements
- Programming experience in C or C++
- Programming experience in Python (useful but not necessary; can be taught as part of course)
- Experience with Linux command line
Audience
- Developers
- Engineers
- Scientists
- Technicians
Testimonials (1)
I feel I get the core skills I need to understand how the ROS fits together, and how to structure projects in it.