Skip to content

Latest commit

 

History

History
100 lines (86 loc) · 3.59 KB

README.md

File metadata and controls

100 lines (86 loc) · 3.59 KB

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.