Skip to content
Tom Tzook edited this page Sep 4, 2017 · 14 revisions

Welcome to the FlashLib wiki!

In this wiki we will be reviewing the FlashLib library - its features and functionalities, advanteges and disadvanteges; and learn about robot development.

Intoduction

FlashLib is a robotics software development library for Java and C++. It provides various tools and features for developers, making the creation of robotics solutions much easier.

Initially, FlashLib was developed specifically for use in the FIRST Robotics Competition (FRC), but over time it has grown and can now provide the same services for non-FRC robots.

FlashLib is an open-source library. Our main aim for the library is community development, and as such, we welcome anyone who wants to contribute. We have several guidlines for contibution, which were placed to avoid misunderstandings or some other issues. The guidlines are specified in CONTRIBUTING.md. In addition, we use a BSD license and hence FlashLib is free for both academic and commercial use.

Features

FlashLib provides several main features that make up its core, and several utility features and other small helping features.

Main Features

  • Dyanmic Vision System: A image processing system which allows users to quickly and easily perform vision operations. Essentially, users can easily perform vision operations even with limited image processing knowledge. The system itself can work togather with any vision library possible.
  • Communication Management System: A communications system which allows users to conduct conversations between hundreds of different objects without having to worry about data managing, or verification. The system can transfer data in any way wanted, making it extremely flexible.
  • Robot Scheduling System: Provides robot developers with a simple way to manage multiple systems on one robot. Users can performs a multitude of actions and tasks on a single robot without having to worry about managing and scheduling the operations of it all.
  • Flashboard: A dashboard for robot operators with dynamic control creation and built-in vision operations. Allows users to easily display robot data, perform off-robot image processing, track robot functionallities and more!

Other Features

  • Mathmatical functions: FlashLib contains an array of Math functions, like: Vectors, Matrices, Interpolations and more.
  • Generic Systems: Generic drive systems, like: Tank drive, Mecanum drive, Omni drive, etc.
  • Algorithms: Algorithms for sensor-based or vision-based motion.
  • Cameras: Camera interfacing using openCV.
  • Human Interface Devices: Human control using joystick and controllers.
  • Log: A basic log for robot operation tracking.
  • Constants Handling: The ConstantsHandler provides a simple way of saving and accessing data.
  • And many more!

In Development

  • HAL: The FlashLib Hardware Abstraction Layer provides abstract control of IO for several platforms, thus allowing easy development for multiple robotic platforms. Seveal built-in implementation will be provided, but it might be necessary to manually implement depending on the used platform.
  • Robot Control Station: A software for remote control of robots. Allows use of Human Interface Devices and operations tracking for non-FRC robots.