Smart Robots for Developers Training Course


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


  • Developers
  • Engineers

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice


  • To customize any part of this course (programming language, robot model, etc.) please contact us to arrange.


  • Programming experience in C++
  • Programming experience in Python
  • Experience with Linux command line

Course Outline

Section 01

Day 01

  • 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

Leave a Reply

Your email address will not be published. Required fields are marked *