Instructors Version Logo
latest

AI Autonomous Robot

  • Installation
    • Summary
    • ※ Assembly Process
    • JupterLab Access & Run examples
  • Hardware
    • Critical Parts
    • SBC(Single Board Computer)
    • Block Diagram
    • Option: 6-axis robot arm
  • Software
    • ROS
    • NVIDIA Inference
    • JupyterLab

Mini Autonomous Robot

  • Installation
    • Summary
    • ※ Jetson Nano ver.
    • ※ Raspberry Pi ver.
    • JupterLab Access & Run examples
  • Hardware
    • Critical Parts
    • SBC(Jetson Nano)
    • SBC(Raspberry PI 4B)
    • Block Diagram
  • Software
    • ROS 1 (Jetson Nano)
    • ROS 2 (Raspberry)
    • Docker
    • JupyterLab
    • CES2023

Hands-on Lecture Examples

  • Introduction
    • Explanation
      • Educational AI Robot Contents
        • Autonomous Driving SW
        • AI Training Example Contents
        • DIY KIT
        • Variety of Maps
        • Simulation
      • Per-Student Login System
      • Team-Specific Robot Development System
    • Mission
  • Driving the Robot Examples
    • Follow Along!
      • Movement Instructions
      • Movement with Odometry Information
    • Explanation
      • Odometry Information
    • Coding Explanation
      • Robot Movement
        • Initialization
        • Sending commands
        • Combining the movement instructions to a single python function
      • Odometry Information
        • Odometry calculation
        • Starting the Calculation
    • Mission Project
    • Discussion
  • AI Training Examples
    • AI Image Recognition using GoogleNet
      • Follow Along!
      • Overall Explanation
        • Overview
        • GoogleNet
      • Coding Explanation
      • Mission
      • Discussion
    • AI Image Recognition using AlexNet
      • Follow Along!
      • Overall Explanation
        • Overview
        • AlexNet
        • How are GoogleNet and AlexNet?
      • Coding Explanation
      • Mission
      • Discussion
    • Mission Project
      • Writing Python Program as a Team
    • Body Pose Estimation with Pose-ResNet18-Body
      • Follow Along!
      • Overall Explanation
        • Overview
        • Pose-ResNet18-Body
      • Coding Explanation
        • Major Functionalities
        • Minor Functionalities
      • Mission
        • Writing Custom poseNet Program
        • Executing the Custom Program
        • Let’s Change the Overlay!!!
      • Discussion
    • Sematic Segmentation with FCN-ResNet18
      • Follow Along!
        • CityScapes
        • Outdoor (off-road)
        • Segmenting Human Images
        • Variaty Objects and People
        • In-Doors
      • Overall Explanation
        • Overview
        • FCN-ResNet18
      • Coding Explanation
        • Major Functionalities
        • Minor Functionalities
      • Mission
        • Writing Custom segNet Program
        • Executing the Custom Program
      • Discussion
  • Robot Controls Examples
    • ROS Topic Examples
      • Follow Along!
        • ROS Topic Publisher
        • ROS Topic Subscriber
      • Explanation
        • Topic
        • Nodes
        • Publisher
        • Subscriber
    • ROS Sensors Examples
      • Follow Along!
        • IMU
        • LIDAR
      • Explanation
        • IMU
        • LIDAR
    • Mission
      • Accessing Isaac Sight
      • Checking Visuals
    • Discussion
  • SLAM and Navigation
    • Basic Features
      • 1. Map
      • 1. Pose of Robot
      • Sensing
      • Path Calculation and Driving
    • Theory
      • Slam Theory
        • Particle filter
      • Navigation Theory
        • Costmap
        • AMCL
        • Dynamic Window Approach (DWA)
    • Mission
  • Robot Arm
    • Follow Along!
      • Basic Robot Arm Control
        • Moving the Robot Arm
        • Read Servo Motor Angle
        • Controlling Servo Motors
        • Dancing with the Robot Arm
        • Robot Arm teaching
        • Gripper Control
      • Advanced Robot Arm Control
        • Tracking a Color with the Robotic Arm
        • Tracking a Face with the Robotic Arm
        • Dancing With Music
    • Overall Explanation
      • Robot Arm Movements
      • Tracking a Color or a Face
      • Sound (PyGame Sound Libraries)
    • Code Explanation
      • Robot arm Movements
      • Basic Movements
      • Reading the Current Angle of the Servo
      • Teaching the Robot Arm
      • Tacking a Color or a Face
        • Tracking a Color
        • Tracking a Face
    • Mission Project
      • Libraries used for this Mission
        • mission_lib custom Library
        • event_name custom Library
      • Lets Start the Mission!!!
      • Pick up an object and place it somewhere else!
    • Discussion
  • Computer Vision
    • Exercises Using RealSense Depth Camera
      • Follow Along!
        • Exercise 1: ASCII Depth Representation
        • Exercise 2: OpenCV and Numpy integration
        • Exercise 3: Align Depth with Color
        • Exercise 4. Advanced Mode
      • Depth Camera Theory
      • Code Explanation
  • Digital Twin
    • Follow Along!
      • Initialization
        • Import the Virtual Environment and the Robot
        • Test the Virtual Movements
      • Navigation
    • Explanation
      • Initialization
        • Robot Tuning
        • Robot Driving
      • Action Graph
      • Universal Scene Description
      • Navigation
        • Occupancy Map
      • Warehouse Navigation
        • Prerequisite
        • The ROS Navigation Setup
        • Running ROS Navigation
    • Mission
  • ChatGPT
    • Sample
    • Methods
    • Limitations

Lets Try It Out!!!

  • Communication
    • ROS Topic Publisher
    • ROS Topic Subscriber
    • ROS Command Example
    • ROS Service Server
    • ROS Service Client
    • ROS Action Server
    • ROS Action Client
  • Robot Sensors
    • IMU
    • Sonar
    • Camera
    • LIDAR
  • Multi-Media
    • Speaker
    • Joystick Vibration
  • Convergence Problems
    • Processing Delay Publisher
    • Processing Delay Subscriber
    • Time Slot Publisher
    • Time Slot Subscriber

AI Training Content

  • Robot Artificial Intelligence
    • Blue Color Detection
    • Color Detection
  • AI training examples
    • Detecting Objects within an Image
      • Detecting Oranges - googlenet
      • Detecting Oranges - alexnet
      • Network
    • Detecting Objects within a Video
      • Detecting Cars
      • Detecting Pedestrians
      • Detecting Dogs
      • Network
    • Detecting Objects with Camera
      • Object Detection
      • Facial Detection
      • Detecting Dogs
      • Network
    • Object Segmentation with Camera
      • Object Segmentation
      • Network
    • Depth Estimation with Camera
      • Depth Estimation
      • Network
    • Pose Recogntition with Camera
      • Hand Gesture Recognition
      • Network
    • Write ‘10 lines’ example code
  • Training with AI inference examples
    • Try it out
      • Image Recognition
        • Launching the Program
        • Examples through Jupyter Notebook
      • Object Detection
        • Launching the Program
        • Examples through Jupyter Notebook
      • Object Detection
        • Launching the Program
        • Examples through Jupyter Notebook
      • Pose Estimation with PoseNet
        • Launching the Program
        • Examples through Jupyter Notebook
      • Monocular Depth with DepthNet
        • Launching the Program
        • Examples through Jupyter Notebook
    • Model Explanation
    • Project Code Structure
    • Mission

Lets Have a Lot of Fun!!!

  • Robot Arm
    • Moving the Robot Arm
    • Read Servo Motor Angle
    • Controlling Servo Motors
    • Dancing with the Robot Arm
    • Robot Arm teaching
    • Tracking Objects with the Robotic Arm
    • Tracking a Face with the Robotic Arm
    • Gripper Control
    • Robot Dance - 1
    • Robot Dance - 1
  • Fun Trials
    • Dancing Robot
    • Catching Robot

Lets Do it as a Team!!!

  • Basic Concept & Terminology
    • Mapping & SLAM
      • What is mapping?
      • What is SLAM?
    • Localization & AMCL
      • What is Localization?
      • AMCL(Adaptive Monte Carlo Localization)
    • Path Planning
      • Global Cost map & Planner
        • Global Cost map & Global Planner
      • Local Cost map
        • What is Local Cost map?
        • Obstacle Layer
        • Inflation layer
      • Local Planner
        • What is Local Planner?
        • DWA Local Planner
        • Robot Configuration Parameters
        • Goal Tolerance Parameters
        • Forward Simulation Parameters
        • Trajectory Scoring Parameters
  • Navigation setting for Zetabot
    • Mapping In-Action
    • Navigation In-Action
  • Control Parameter
    • 1. Modification of parameters by direct navigation into the folder
    • 2. Entering parameter values in real time on the GUI
      • Control Parameter
      • Inflation Layer
      • Cost_scaling_factor
  • Driving the Robot
    • Driving the Robot
    • Driving the Robot (Odometry)
  • Global / Local Coastmap

Build Turorial

  • Overall DIY Kit
  • Autonomous Kit
  • AI Kit
  • Expert Kit

Let's apply our knowledge

  • Virtual Robotics
  • AI Transfer Learning
    • NVIDIA TAO Toolkit
      • General Purpose Model Architecture
      • NVIDIA Optimized Pre-trained models
      • User Defined ONNX model
      • Term Explanation
      • TAO Toolkit Pre-Requisite Installation Guide
        • TAO CLI Pre-Requisite Installation Guide
      • TAO Launcher Methods
        • TAO launcher
      • TAO Run Example (Detectnet_v2)
        • Detectnet_v2 (NVIDIA example)
      • TAO Run Example (YOLO_4_Tiny)
        • YOLO_4_Tiny
      • TAO Run Example (Tensor Visualization)
        • TensorBoard Visualization
Instructors Version
  • SLAM and Navigation
  • Theory
  • Navigation Theory
  • Edit on GitHub

Navigation Theory

Navigation is a methodology which ascetains ones position as well as the most optimum route for a pre-determined destination. For navigation system for our robot we need to have

  1. Costmap for obstacle detection

  2. AMCL for adaptive localization

  3. DWA for obstacle avoidance planning and avoiding obstacles

Costmap

In navigation, the costmap is responsible for calculating obstacle are, possible collision area and a robot movable area based on the pose of robot, sensor values, obstacle information, and the occupancy grid map optaind as a result from SLAM. There are two type of costmap:

  1. Global Costmap: (path planning for the global area of the fixed map)

  2. Local Costmap: (path planning and obstacle avoidance in the limited area around the robot)

Although these two are different in application, the representations are the same.

The costmap is expressed as a value between 0 and 255. These values show whether the robot is movable or colliding with an obstacle. The calculation parameters for these values are predetermined within our zetabot.

  • 000: Free Area where robot can move freely

  • 001~127: Areas of low collision probability

  • 128~252: Areas of high collision probability

  • 253~254: Collision area

  • 255: Occupied area where robot can not move


We may also visualize the costmap value with gray scale. The darker the pixels get, more likely there is an obstable. The green points represent obstacles found using the distance sensor.


AMCL

Within our SLAM theory, we discussed about the Particle Filter, the Monte Carlo localization (MCL) pose estimation algorithm. The AMCL (Adaptive Monte Carlo Localization) is an improved version of MCL that allows for reduced execution time with less number of samples.

The basic goal with Monte Carlo Localization is to locate where our robot is in a given environment. That is we must get the X, Y value as well as the angular value of the robot on the map. For these purposes MCL algorithm calculates the probability of the location of the robot.

First, the belief (posterior probability using Bayesian update formula) of the location is calculated using the (X, Y, Angle) values as X_0, distance inforamtion obtained from the distance sensor up to time t as Z_0 and movement information obtained from the encoder up to time t as U_0.


We must include hardware errors within our calculation, hence establish the sensor model and the moevement model.

With the models established, predict and update the Bayesian filter.

Prediction

Within this step, the position of the robot at the next time frame is calculated using the established movement model (which is a probability of x in relation to the hardware error), belief probability at the previous position and the movement information from the encoders.


Update

For update step, we use the established sensor model probability which includes the hardware error, belief probability of the current position and normalization constant eta.


With this, we have the general locational probability belief of our robot. We can start the particle filter and generate N particles using the calculated probability bel(x_i) of the current position. With MCL algorithm the we go through a Sampling Importance weighting Re-sampling process with our samples instead of particles. For AMCL, we extract a new sample set using the robot movement model at the probability belief of the previous position. For these new sample set, the weight is calculated using the distance inforamtion, and normalization constant eta.


And in our resampling step, we create N samples of new X sampling (particle) sets using the new sampled x set and weight calculated for the new sampled x set.


When this process is repeated, while the robot is moving, the proabbility of the estimated robot position increases in accuracy. For example, on the image below, we can see the converging location from t1 time frame to t5 time frame. All this process is referred to as “Probabilistic Robotics”.

Dynamic Window Approach (DWA)

Dynamic Window Approach is a method for obstacle avoidance planning and avoiding obstacles. That is, a method that will quickly reach a target point while avoiding obstacles that can possibly collide with the robot.

In DWA the robot is not represented in X and Y coordinates but rather in the velocity search space with translation velocity v and the rotational velocity w as axes.


Within the velocity search space, the robot has a maximum allowable speed due to hardware limitations and this is called Dynamic Window.

v: Translational velocity (meter/sec)
w: Rotational velocity (radian/sec)
Vs: Maximum velocity area
Va: Permissible velocity area
Vc: Current velocity
Vr: Speed area in Dynamic Window
a_max: Maximum acceleration / deceleration rate
G(v, w) = v(a·heading(v, w) + b·dist(v, w) + c·velocity(v, w)): Objective function
heading(v, w): 180 - (difference between the direction of the robot and the direction of the target point)
dist(v, w): Distance to the obstacle
velocity(v, w): Selected velocity
alpha, beta, gamma: Weighting constant
v(x): Smooth Function

In the dynamic window, the objective function G(v, w) is used to calculate the translational velocty v and the rotational velocity w that maximizes the objective function which considers the direction, velocity and collision of the robot. With plotting, we can find optimal velocity among various v and w options to destination.

Previous Next

© Copyright . Revision 2fe39c7c.

Built with Sphinx using a theme provided by Read the Docs.