Giter Club home page Giter Club logo

sunarditay / robotics---control-of-mobile-robot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 2wavetech/robotics---control-of-mobile-robot

0.0 2.0 0.0 6.65 MB

This repository contains my implementation of the programming asssignments of Control of Mobile Robots course delivered by Georgia Institute of Technology on Coursera, which covers control theory, robot models, mobility controllers and applications.

MATLAB 87.49% Mercury 0.07% TeX 12.43%

robotics---control-of-mobile-robot's Introduction

Robotics - Control of Mobile Robot

This repository contains my implementation of the programming asssignments of Control of Mobile Robots course delivered by Georgia Institute of Technology on Coursera

1. Mobile Robot Simulator

The programming exercises use a simulated version of a robot called the QuickBot. The simulated QuickBot is equipped with five infrared (IR) range sensors, of which three are located in the front and two are located on its sides. The simulated QuickBot has a two-wheel difierential drive system (two wheels, two motors) with a wheel encoder for each wheel. You can build the QuickBot yourself by following the hardware videos located under the Course Resources tab.

quickbot

2. Differential-Drive, Odometry, and IR

The purpose of this week’s programming assignment is to implement the functions for the robot to move and sense.

1. Transform the outputs of our controllers to the control inputs of the mobile robot.
2. Keep track of where the robot is located.
3. Convert raw sensor values to distances.

3. Go-to-Goal PID Controller

The purpose of this week’s programming assignment is to implement a go-to-goal PID controller.

1. Implement the proportional, integral, and derivative terms of the controller.
2. Adjust the gains for performance.

4. Obstacle Avoidance

The purpose of this week’s programming assignment is to avoid any obstacles near the robot.

1.Transform the IR distance to a point in the robot’s coordinate frame.
2.Transform this point from the robot’s coordinate frame to the world coordinate frame.
3.Compute a vector that points away from any obstacles.

5. Arbitration

We will use two arbitration techniques, blending and hard switching, to drive to a goal while avoiding obstacles.

1.Blend go-to-goal and avoid-obstacle vectors in one controller.
2.Switch between go-to-goal and avoid-obstacle controllers separately.
3.Use the blended controller as an intermediary.

6. Following Walls

This week we will add a new controller to follow walls.

1.Estimate a section of a wall (obstacle) using the IR sensors.
2.Compute a vector tangential to the wall and perpendicular to the wall.
3.Combine the two vectors and steer in the direction of this new vector.

7. Navigation

This week we need to answer three questions to achieve navigation through the obstacle course:

1.Is the robot making progress towards the goal?
2.Should the robot follow the wall to the right or the left?
3.If the robot is in state “A” and event “2” becomes true, then to which state should the robot switch?

My final result as shown below:

Navigation-1

Navigation-2

Navigation-3

Navigation-4

Navigation-5

Navigation-6

Navigation-7

Navigation-8

robotics---control-of-mobile-robot's People

Contributors

2wavetech avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.