GithubHelp home page GithubHelp logo

amanavvk / caros Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 44.26 MB

CMake 66.74% C++ 32.27% C 0.57% Python 0.43%
graphslam opnecv ros kernelized-correlation-filter kanade-lucas-tomasi tracking-learning-and-detection

caros's Introduction

Autonomous car using ROS

Ubuntu 20.04 ROS C++ Python

Description

My customised implementation of autonomous car using Robot Operating System (ROS). Also applicable for autonomous trucking system.

Levels of autonomy:

  • Level 0 - Complete manual mode (no automation)
  • Level 1 - hands on/shared control
  • Level 2 - hands off
  • Level 3 - eyes off
  • Level 4 - mind off
  • Level 5 - steering wheel optional

ADAS that are considered From level 3 to 5, the amount of control the vehicle has increases.

level 5 being where the vehicle is fully autonomous.

Self driving car architecture

Sensors

  • Camera, Lidar, Radar, Sonar, IMU, GPS, Odometry

Sensor Selection Criteria

  • Range
  • Resolution
  • Robustness in different environments
  • Perception of environment
  • Speed
  • Cost
  • Size
  • Computational requirements

Perception

2d object detector:

  • I/P: Image
  • O/P: Detections msg

3d object detector:

  • I/P: LaserScan
  • O/P: 3D_Detections msg

free space detector:

  • I/P: LaserScan
  • O/P: FreeSpace msg

lane detector:

  • I/P: Image
  • O/P: Lane msg

sign detector and classifier:

  • I/P: Image
  • O/P: Sign msg

Localization & Mapping

Implementation

  • Extended kalman filter
  • Uncented kalman filter
  • Monte carlo localization
  • Occupancy grid mapping
  • GraphSLAM & FastSLAM

Planning

Route planning:

  • I/P: Road Network Data, User destination, Online traffic information;
  • O/P: Waypoints

Behaviour planning:

  • I/P: Waypoints from route_planning_node, Road topology, Static and dynamic objects from object_tracker_node, traffic sign from traffic_sign_detector_node, Traffic rules
  • O/P: Strategy

Motion planning:

  • I/P: Strategy from behaviour_planning_node, Estimated pose from localizer_node, collision free space from free_space_detector_node
  • O/P: Trajectory
  • Deep reinforcement learning based path planning

Control

Local Feedback Control:

  • I/P: Trajectory from motion_planning_node
  • O/P: Steering angle, throttle and brake commands

PID controller:

  • I/P: Commands from local feedback controller, Sensor data
  • O/P: Actuator control commands

Visual and environmental monitoring

  • Automotive head-up display (auto-HUD) safely displays essential system information to a driver at a vantage point that does not require the driver to look down or away from the road.

  • Automotive navigation system use digital mapping tools, such as the global positioning system (GPS) and traffic message channel (TMC), to provide drivers with up to date traffic and navigation information.

  • Automotive night vision systems enable the vehicle to detect obstacles, including pedestrians, in a nighttime setting or heavy weather situation when the driver has low visibility. These systems can various technologies, including infrared sensors, GPS, Lidar, and Radar, to detect pedestrians and non-human obstacles.

  • Glare-free high beam use Light Emitting Diodes, more commonly known as LEDs, to cut two or more cars from the light distribution. This allows oncoming vehicles coming in the opposite direction not to be affected by the light of the high-beams.

  • Omniview technology improves a driver's visibility by offering a 360-degree viewing system. This system can accurately provide 3D peripheral images of the car's surroundings through video display outputted to the driver. Omniview technology uses the input of four cameras and a bird's eye technology to provide a composite 3D model of the surroundings.

  • Traffic sign recognition (TSR) systems can recognize common traffic signs, such as a “stop” sign or a “turn ahead” sign, through image processing techniques. This system takes into account the sign's shape, such as hexagons and rectangles, and the color to classify what the sign is communicating to the driver.

  • Vehicular communication systems come in three forms: vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), and vehicle-to-everything (V2X). V2V systems allow vehicles to exchange information with each other about their current position and upcoming hazards. V2I systems occur when the vehicle exchanges information with nearby infrastructure elements, such as street signs. V2X systems occur when the vehicle monitors its environment and takes in information about possible obstacles or pedestrians in its path.


Notes

Self driving car is widely developed technology and large toolbox and state of the art ideas available, Need to make right decisions according to needs.

Below are some of the features of car with ADAS. I will try to also implement this in the project.

  • Parking sensors
  • Surround-view
  • Traffic sign recognition
  • Lane departure warning
  • Night vision
  • Blind spot information system
  • Rear-cross traffic alert
  • Forward-collision warning
  • Adaptive cruise control
  • Emergency brake assist
  • Automatic emergency brake assist
  • Lane-keeping
  • Lane centering
  • Highway assist
  • Autonomous obstacle avoidance
  • Autonomous parking.

caros's People

Contributors

amanavvk avatar

Stargazers

 avatar

Watchers

 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.