Self Driving RC Car Code

Overview

Derp Learning

Derp Learning is a Python package that collects data, trains models, and then controls an RC car for track racing.

Hardware

You will need access to a drill and a soldering kit.

Vehicles

The following vehicles have been tested and are supported:

SparkFun Jetbot

If you prefer something smaller, slower, with zero turn radius powered by individual-wheel drive motors the Sparkfun JetBot Kit $275 includes all parts, except for the optional IMU and Dualshock 4 controller. Please follow the setup guide at the site.

  • Adafruit BNO055 9-DOF Absolute Orientation IMU $35
  • Playstation Dualshock 4 Controller $45

Traxxas-based Vehicles

Each of the following vehicles has been tested and works with the platform. 3D printed parts are TBD.

  • LaTrax Rally (1/18 scale brushed) $120

  • Traxxas Slash (1/10 scale brushed) $240

  • Traxxas E-Revo (1/16 scale brushless) $250

  • Jetson Nano $100

  • Pololu Micro Maestro 6-Channel USB Servo Controller $19

  • Dual Lock Reclosable Fastener $19

  • USB Battery $16

  • USB to Barrel Cable $7

  • USB Jumper $5

  • Brass Spacers/Offsets M2+M3 Offsets $17

  • Nylon Washers M2+M3 $8

  • Breadboard Jumper Wires $7

  • Wifi Card $20

  • Wifi Antenna $3

  • Camera $30

  • 64GB MicroSD Card $12

  • Adafruit BNO055 9-DOF Absolute Orientation IMU $35

  • Playstation Dualshock 4 Controller $45

Software

This software has been tested on Ubuntu 18.04 using Python 3.6 on both x86_64 and aarch64 architectures.

bash install.sh

Collect Data

bin/drive.py config/rally.yaml

Label Data

bin/label.py data/recording-YYYYMMDD-HHMMSS-HOSTNAME

Build a dataset and train cloning model

bin/clone.py config/brain-clone.yaml

Test model

bin/drive.py config/rally.yaml
Comments
  • Camera Calibration

    Camera Calibration

    Hi,

    I woulld like to start with camera calibration but you are looking for circles

        ret, corners = cv2.findCirclesGrid(
            gray_frame, pattern_shape, flags=cv2.CALIB_CB_ASYMMETRIC_GRID
        )
    

    which fails for me, According to the docs it should be cv2.findChessboardCorners no ?

    opened by vkuehn 2
  • Clarify messages

    Clarify messages

    • Control -> Action and State -> Controller
    • timestamps now in uint64 nanoseconds
    • revamped colors in labeler a bit with message changes from Label -> Quality
    • Added index to Camera/Imu and removed some fields that are in config or too sensor-specific
    • Modularized joystick, imu, and camera to make run simpler and use the return to exit the program upon sensor fail
    • Fixed some known issues with install (evdev and pip packages needing to be installed sequentially)
    opened by notkarol 1
  • Install Script mounts non-existent memory device on non-jetson computers

    Install Script mounts non-existent memory device on non-jetson computers

    install/install.sh currently mounts a spare memory device on the partition it's run on regardless of whether the device has that memory device. This prevents such devices from rebooting sucessfully.

    bug 
    opened by John-Ellis 1
  • IMU calibration loading

    IMU calibration loading

    Autoloading IMU calibration data does not improve the IMU calibration status. Calibration saving appears to work fine so the problem is likely in loading the saved calibrations when initializing the IMU.

    bug 
    opened by John-Ellis 1
  • Master Branch is currently Broken

    Master Branch is currently Broken

    Dev Branch is also currently broken at the moment. We need to repair Dev, validate, and merge to master so that outside users will have access to reliable working code.

    opened by John-Ellis 0
  • key programs have poor UI documentation

    key programs have poor UI documentation

    Currently several important programs lack sufficient documentation of their calling arguments.

    Label.py also would benefit from a more clear description of the keyboard interface

    enhancement 
    opened by John-Ellis 0
  • Logging to identify issues with chronic controller lag

    Logging to identify issues with chronic controller lag

    Solution to issue #1 did not fix all our problems. One of the cars often has large input lag and perhaps affects ability to train. We need better logging to dive into root cause.

    1. Uniquely identify each message by a hash or index so we can track it through the process.
    2. Log exact time every message is received in daemon_ds4.
    3. Log exact time every message is sent by daemon_ds4.
    4. Log exact time every message is received in dualshock4.py.
    5. Log how long we spend in each part of sense, plan, act (while autonomous, not-recording, and, and recording)

    We want to keep #4 below 15ms if possible. We want to identify any spikes in how long messages are buffered at any step. We want to identify fraction messages that are dropped.

    bug 
    opened by notkarol 0
Owner
Not Karol
Automation & Self-Organization
Not Karol
Simulation of Self Driving Car

In this repository, the code to use Udacity's self driving car simulator as a testbed for training an autonomous car are provided.

Shyam Das Shrestha 1 Nov 21, 2021
Self-driving car env with PPO algorithm from stable baseline3

Self-driving car with RL stable baseline3 Most of the project develop from https://github.com/GerardMaggiolino/Gym-Medium-Post Please check it out! Th

Sornsiri.P 7 Dec 22, 2022
CRISCE: Automatically Generating Critical Driving Scenarios From Car Accident Sketches

CRISCE: Automatically Generating Critical Driving Scenarios From Car Accident Sketches This document describes how to install and use CRISCE (CRItical

Chair of Software Engineering II, Uni Passau 2 Feb 9, 2022
This script scrapes and stores the availability of timeslots for Car Driving Test at all RTA Serivce NSW centres in the state.

This script scrapes and stores the availability of timeslots for Car Driving Test at all RTA Serivce NSW centres in the state. Dependencies Account wi

Balamurugan Soundararaj 21 Dec 14, 2022
Self-Supervised Pillar Motion Learning for Autonomous Driving (CVPR 2021)

Self-Supervised Pillar Motion Learning for Autonomous Driving Chenxu Luo, Xiaodong Yang, Alan Yuille Self-Supervised Pillar Motion Learning for Autono

QCraft 101 Dec 5, 2022
Graph Self-Attention Network for Learning Spatial-Temporal Interaction Representation in Autonomous Driving

GSAN Introduction Code for paper GSAN: Graph Self-Attention Network for Learning Spatial-Temporal Interaction Representation in Autonomous Driving, wh

YE Luyao 6 Oct 27, 2022
Reinforcement learning for self-driving in a 3D simulation

SelfDrive_AI Reinforcement learning for self-driving in a 3D simulation (Created using UNITY-3D) 1. Requirements for the SelfDrive_AI Gym You need Pyt

Surajit Saikia 17 Dec 14, 2021
Action Recognition for Self-Driving Cars

Action Recognition for Self-Driving Cars This repo contains the codes for the 2021 Fall semester project "Action Recognition for Self-Driving Cars" at

VITA lab at EPFL 3 Apr 7, 2022
(CVPR 2022) A minimalistic mapless end-to-end stack for joint perception, prediction, planning and control for self driving.

LAV Learning from All Vehicles Dian Chen, Philipp Krähenbühl CVPR 2022 (also arXiV 2203.11934) This repo contains code for paper Learning from all veh

Dian Chen 300 Dec 15, 2022
Code for Towards Streaming Perception (ECCV 2020) :car:

sAP — Code for Towards Streaming Perception ECCV Best Paper Honorable Mention Award Feb 2021: Announcing the Streaming Perception Challenge (CVPR 2021

Martin Li 85 Dec 22, 2022
An Artificial Intelligence trying to drive a car by itself on a user created map

An Artificial Intelligence trying to drive a car by itself on a user created map

Akhil Sahukaru 17 Jan 13, 2022
This project deploys a yolo fastest model in the form of tflite on raspberry 3b+. The model is from another repository of mine called -Trash-Classification-Car

Deploy-yolo-fastest-tflite-on-raspberry 觉得有用的话可以顺手点个star嗷 这个项目将垃圾分类小车中的tflite模型移植到了树莓派3b+上面。 该项目主要是为了记录在树莓派部署yolo fastest tflite的流程 (之后有时间会尝试用C++部署来提升

null 7 Aug 16, 2022
Indonesian Car License Plate Character Recognition using Tensorflow, Keras and OpenCV.

Monopol Indonesian Car License Plate (Indonesia Mobil Nomor Polisi) Character Recognition using Tensorflow, Keras and OpenCV. Background This applicat

Jayaku Briliantio 3 Apr 7, 2022
Car Parking Tracker Using OpenCv

Car Parking Vacancy Tracker Using OpenCv I used basic image processing methods i

Adwait Kelkar 30 Dec 3, 2022
MohammadReza Sharifi 27 Dec 13, 2022
Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONNX.

ONNX-HybridNets-Multitask-Road-Detection Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONN

Ibai Gorordo 45 Jan 1, 2023
Code for the ICME 2021 paper "Exploring Driving-Aware Salient Object Detection via Knowledge Transfer"

TSOD Code for the ICME 2021 paper "Exploring Driving-Aware Salient Object Detection via Knowledge Transfer" Usage For training, open train_test, run p

Jinming Su 2 Dec 23, 2021
Code repository for Semantic Terrain Classification for Off-Road Autonomous Driving

BEVNet Datasets Datasets should be put inside data/. For example, data/semantic_kitti_4class_100x100. Training BEVNet-S Example: cd experiments bash t

(Brian) JoonHo Lee 24 Dec 12, 2022
This repository contains the code for "Self-Diagnosis and Self-Debiasing: A Proposal for Reducing Corpus-Based Bias in NLP".

Self-Diagnosis and Self-Debiasing This repository contains the source code for Self-Diagnosis and Self-Debiasing: A Proposal for Reducing Corpus-Based

Timo Schick 62 Dec 12, 2022