Skip to content

LemLib/LemLib

Repository files navigation


Welcome to LemLib! This open-source PROS template aims to introduce common algorithms like Pure Pursuit and Odometry for new and experienced teams alike.

The creation of this template was inspired by EZ-Template and OkapiLib. We aim to develop a library that strikes a balance between ease-of-use, akin to that of EZ-Template, and comprehensive functionality, similar to that of OkapiLib.

Want a place to chat with the devs and other users? Join our Discord server.

License

This project is licensed under the MIT license. Check LICENSE for more details.

Features

  • Generic PID class
  • Odometry
  • Odom turn to face point
  • Boomerang controller
  • Pure Pursuit
  • Motion Chaining
  • Driver Control

Example Project

You can find a fully annotated example project here.

Tutorials

The tutorials provide a detailed walkthrough through all the features of LemLib. It covers everything from installation to Path Following:

FAQ

1. Help! Why is my controller vibrating? If your controller vibrated more than once, your inertial sensor calibration failed. Check if its connected to the right port and try again.

2. What drivetrains are supported? Only tank/differential. This is not going to change until other drivetrains are competitive.

3. Do I need tracking wheels? No, but it is recommended. You should absolutely have a horizontal tracking wheel if you don't have traction wheels, and you have to spend extra effort tuning your movements to prevent any wheel slip.

4. Do I need an inertial sensor? No, but it is highly recommended. The one exception to this would be if you have 2 parallel tracking wheels which are tuned well and are perfectly square. LemLib will work without it, but the accuracy will be compromised.

5. Do I need an SD card? As of v0.5.0, no SD card is necessary.

6. What are the units? The units are inches and degrees. In a future release, Qunits will be used so you can use whatever units you like.

7. Is LemLib V5RC legal? Yes. Per the RECF student-centred policy, in the context of third-party libraries.

Students should be able to understand and explain the code used on their robots

In other words, you need to know how LemLib works. You don't need to know the details like all the math, just more or less how the algorithm works. If you want to learn more about LemLib, you can look through the documentation and ask questions on our Discord server.

Documentation

Check out the Documentation.

Contributing

Want to contribute? Please read CONTRIBUTING.md and join our Discord server.

Code of Conduct

See the Code of Conduct on how to behave like an adult.