LightLib
PROS library for VEX V5: EKF/MCL localization, RAMSETE path following, high-level chassis API
Loading...
Searching...
No Matches
chassisScales.hpp
Go to the documentation of this file.
1/*
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 */
6#pragma once
7
12#include <initializer_list>
13#include <stdexcept>
14#include <vector>
15
16namespace okapi {
18 public:
55 ChassisScales(const std::initializer_list<QLength> &idimensions,
56 double itpr,
57 const std::shared_ptr<Logger> &ilogger = Logger::getDefaultLogger());
58
72 ChassisScales(const std::initializer_list<double> &iscales,
73 double itpr,
74 const std::shared_ptr<Logger> &ilogger = Logger::getDefaultLogger());
75
77 QLength wheelTrack;
80 double straight;
81 double turn;
82 double middle;
83 double tpr;
84
85 protected:
86 static void validateInputSize(std::size_t inputSize, const std::shared_ptr<Logger> &logger);
87};
88} // namespace okapi
static void validateInputSize(std::size_t inputSize, const std::shared_ptr< Logger > &logger)
ChassisScales(const std::initializer_list< double > &iscales, double itpr, const std::shared_ptr< Logger > &ilogger=Logger::getDefaultLogger())
The scales a ChassisController needs to do all of its closed-loop control.
ChassisScales(const std::initializer_list< QLength > &idimensions, double itpr, const std::shared_ptr< Logger > &ilogger=Logger::getDefaultLogger())
The scales a ChassisController needs to do all of its closed-loop control.
static std::shared_ptr< Logger > getDefaultLogger()