Giter VIP home page Giter VIP logo

project-l's Introduction

Project L

A Competitive, Capable robot based on Mecanum and Lidar.


Table of Contents

  1. Introduction
  2. Hardware
  3. Software
  4. TODO
  5. Goals

Introduction

Project L is a Custom General Purpose Robot designed with automation, expandability and speed in mind. It is based on a 4-wheel drive chassis with mecanum wheels. It is designed to be able to navigate and perform tasks autonomously, and to be interactive and easily expanded upon in software and hardware.

Hardware

L is equipped with a 4-Wheel Mecanum Drive, as well as a LiDAR Sensor for navigation and a 5 DOF Robot Arm for manipulation.


Software

L runs on an integrated computer (RasPI or Orin Nano), and features a high level control interface for the hardware as seen in the Robot class and the HAL (Hardware Abstraction Layer). It communicates using NetworkTables, which automatically gives it support for FRC Dashboards (Shuffleboard is preffered) and Libraries. The main files to run are main.py, which goes in the robot itself, and remote.py, which is the remote control and management app.


TODO:

Drive:

  • Linking PCB Build
  • Get the damn parts

Power:

  • Power Regulation and Distribution block: A block that takes in 12V and outputs every power connection. Includes Battery voltage monitoring and cutoff. Uses an arduino to transmit data.

Interfacing:

  • Encoder Handling
  • [-] Video Feed (we got FastCam handler)
  • Arm Control
  • [-] Lidar Handling
  • Drive Communication
  • Drive Handling
  • Voltage Monitoring
  • Ultrasonic Interface
  • MPU-9250 Integration

Software:

  • [-] Networking (Network Tables!)
  • Sensor Interface
  • [-] Proper Mapping
  • [-] Autonomous
  • Low Level -> High Level Interface
  • Given Path Following
  • A*/RRT Path Planning
  • SLAM (See BreezySLAM)
  • Drive Integration
  • [-] HMI-Like Control Interface using Shuffleboard
  • Pure Pursuit
  • Test out the code
  • Frontier Exploration (and adopt Transient Maps in general :/)

Expansion:

  • Find out how to enable expansion (the hal is pretty nifty in that sense imo)

Comms:

  • Local Communication (Drive -> Pi <- PDB) (It's now all in one (rosmaster board :))
  • Remote Communication (Pi -> Driver Station) (pynetworktables)
  • Long-Term Data Storage (Maps, Logs, etc.) (TODO: create a robot state file to save the bot's state at a certain point)

Base:

  • Get the damn base
  • Expandability Standard

Goals

  • [-] Automatic Navigation
  • Speed
  • [-] A-B Navigation on prerecorded map
  • [-] SLAM
  • [-] Path Planning
  • [-] Task Creation Framework (Have to properly implement PolyTask)

Links


Notes:

  • We should be figuring out how to integrate dot-by-dot path following. This allows for bezier curves and smooth paths.

Current development:

  • PID (Speed and Positioning)
  • Path Following (Pure Pursuit or Custom Algorithm)
  • PolyTask (da bestest :)
  • Communications (pynetworktables or local server, we'll see)
  • GUI
  • Odometry and Positioning (Unify encoder position with lidar position plz thx :)
  • CHECK THE TODOs
  • Fix Odometry so that we have a travel and global position.
  • Standardize Maps to work with meters, so that simulation and real-to-digital conversion can be easier and more comprehensible.

project-l's People

Contributors

superfast852 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.