Course Outline
Week 01
Day 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
Day 02
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
Day 03
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.
Day 04
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
Day 05
Tools for Simulating a Physical Robot
- Commercial and open source 3D simulation and visualization software
Tools for Designing the Physical Characteristics of a Robot
- Commercial and open source CAD software
Case Study: Mechanical Robots
- Robots in the nuclear technology field
- Robots in environmental systems
Week 02
Day 06
Crash Course in Python
- Software installation and setup
- Useful packages and utilities
- Working with Python data structures, operators, loops, conditionals, functions, methods, etc.
- Writing a sample program
- Team project
Day 07
Preparing for Robot Development
- Setting up the development environment (e.g., Arduino IDE)
- Exploring the Arduino language (C/C++) syntax
- Coding, compiling, and uploading to the microcontroller
- Assembling the hardware components of an Arduino robot
Day 08
Working with Arduino Components
- Analog sensors
- Digital sensors
Working with Arduino Communication Modules
- Bluetooth Modules
- Wi-Fi Modules
- RFID Modules
- I2C and SPI
- Mobile internet
Day 09
Constructing a Robot
- Planning the features and characteristics of a robot
- Implementing robot movement
Team project
- Discussion and review
Day 10
Controlling the Robot
- Implementing the controller
- Connecting to the robot (wired and wirelessly)
Team Project
- Discussion and review
Week 03
Day 11
Programming the Robot
- Simulating a robot with Gazebo / ROS
- Understanding ROS node
- Programming a node in Python and C ++
- Messages and topics in ROS
- Publication / subscription paradigm
Team Project
- Bump & Go with real robot
- Discussion and review
Day 12
Programming the Robot (continued...)
- Frames in ROS and reference changes
- 2D information processing of cameras with OpenCV
- Information processing of a laser
Team Project
- Safe tracking of objects by color
- Discussion and review
Day 13
Testing the Robot
- Tools for testing your code
- Unit testing
- Creating a test suite
- Automating your tests
- Troubleshooting
Team Project
- Safe tracking of objects by color
- Discussion and review
Day 14
Programming the Robot (Continued...)
- Services in ROS
- 3D information processing of RGB-D sensors with PCL
- Maps and Navigation with ROS
Day 15
Programming the Robot (Continued...)
- Completing tasks with ActionLib
Team Project
- Search for objects in the environment
Week 04
Day 16
Programming the Robot (Continued...)
- Completing tasks with ActionLib
Day 17
Programming the Robot (Continued...)
- Speech Recognition and Speech Generation
- Troubleshooting
Team Project
- Controlling a robot using voice
Day 18
Programming the Robot (Continued...)
- Controlling robotic arms with MoveIt!
- Controlling robotic neck for active vision
- Troubleshooting
Team Project
- Search and collection of objects
Day 19
Deploying the Robot
- Deploying the robot in the physical world
- Monitoring and servicing robots in the field
- Using a mobile app to control a robot
Securing the Robot
- Preventing unauthorized tampering
- Preventing hackers from viewing and stealing sensitive data
Day 20
Data Analytics
- Collecting and organizing data generated by the robot
- Making sense of the data through visualization tools and processes
Building a Robot Collaboratively
- Building a robot in the cloud
- Building a mobile app to interact with your robot
- 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.