| namespace frc971.zeroing; |
| |
| table HallEffectZeroingConstants { |
| // The absolute position of the lower edge of the hall effect sensor. |
| lower_hall_position:double (id: 0); |
| // The absolute position of the upper edge of the hall effect sensor. |
| upper_hall_position:double (id: 1); |
| // The difference in scaled units between two hall effect edges. This is the |
| // number of units/cycle. |
| index_difference:double (id: 2); |
| // Number of cycles we need to see the hall effect high. |
| hall_trigger_zeroing_length:uint64 (id: 3); |
| // Direction the system must be moving in order to zero. True is positive, |
| // False is negative direction. |
| zeroing_move_direction:bool (id: 4); |
| } |
| |
| table PotAndIndexPulseZeroingConstants { |
| // The number of samples in the moving average filter. |
| average_filter_size:uint64 (id: 0); |
| // The difference in scaled units between two index pulses. |
| index_difference:double (id: 1); |
| // The absolute position in scaled units of one of the index pulses. |
| measured_index_position:double (id: 2); |
| // Value between 0 and .5 which determines a fraction of the index_diff |
| // you want to use. |
| allowable_encoder_error:double (id: 3); |
| } |
| |
| table EncoderPlusIndexZeroingConstants { |
| // The amount of index pulses in the joint's range of motion. |
| index_pulse_count:int (id: 0); |
| // The difference in scaled units between two index pulses. |
| index_difference:double (id: 1); |
| // The absolute position in scaled units of one of the index pulses. |
| measured_index_position:double (id: 2); |
| // The index pulse that is known, going from lowest in the range of motion to |
| // highest (Starting at 0). |
| known_index_pulse:int (id: 3); |
| // Value between 0 and 0.5 which determines a fraction of the index_diff |
| // you want to use. If an index pulse deviates by more than this amount from |
| // where we expect to see one then we flag an error. |
| allowable_encoder_error:double (id: 4); |
| } |
| |
| table PotAndAbsoluteEncoderZeroingConstants { |
| // The number of samples in the moving average filter. |
| average_filter_size:uint64 (id: 0); |
| // The distance that the absolute encoder needs to complete a full rotation. |
| one_revolution_distance:double (id: 1); |
| // Measured absolute position of the encoder when at zero. |
| measured_absolute_position:double (id: 2); |
| |
| // Treshold for deciding if we are moving. moving_buffer_size samples need to |
| // be within this distance of each other before we use the middle one to zero. |
| zeroing_threshold:double (id: 3); |
| // Buffer size for deciding if we are moving. |
| moving_buffer_size:uint64 (id: 4); |
| |
| // Value between 0 and 1 indicating what fraction of one_revolution_distance |
| // it is acceptable for the offset to move. |
| allowable_encoder_error:double (id: 5); |
| } |
| |
| table RelativeEncoderZeroingConstants {} |
| |
| table ContinuousAbsoluteEncoderZeroingConstants { |
| // The number of samples in the moving average filter. |
| average_filter_size:uint64 (id: 0); |
| // The distance that the absolute encoder needs to complete a full rotation. |
| // It is presumed that this will always be 2 * pi for any subsystem using this |
| // class, unless you have a continuous system that for some reason doesn't |
| // have a logical period of 1 revolution in radians. |
| one_revolution_distance:double (id: 1); |
| // Measured absolute position of the encoder when at zero. |
| measured_absolute_position:double (id: 2); |
| |
| // Threshold for deciding if we are moving. moving_buffer_size samples need to |
| // be within this distance of each other before we use the middle one to zero. |
| zeroing_threshold:double (id: 3); |
| // Buffer size for deciding if we are moving. |
| moving_buffer_size:uint64 (id: 4); |
| |
| // Value between 0 and 1 indicating what fraction of a revolution |
| // it is acceptable for the offset to move. |
| allowable_encoder_error:double (id: 5); |
| } |
| |
| table AbsoluteEncoderZeroingConstants { |
| // The number of samples in the moving average filter. |
| average_filter_size:uint64 (id: 0); |
| // The distance that the absolute encoder needs to complete a full rotation. |
| one_revolution_distance:double (id: 1); |
| // Measured absolute position of the encoder when at zero. |
| measured_absolute_position:double (id: 2); |
| // Position of the middle of the range of motion in output coordinates. |
| middle_position:double (id: 3); |
| |
| // Threshold for deciding if we are moving. moving_buffer_size samples need to |
| // be within this distance of each other before we use the middle one to zero. |
| zeroing_threshold:double (id: 4); |
| // Buffer size for deciding if we are moving. |
| moving_buffer_size:uint64 (id: 5); |
| |
| // Value between 0 and 1 indicating what fraction of one_revolution_distance |
| // it is acceptable for the offset to move. |
| allowable_encoder_error:double (id: 6); |
| } |
| |
| table AbsoluteAndAbsoluteEncoderZeroingConstants { |
| // The number of samples in the moving average filter. |
| average_filter_size:uint64 (id: 0); |
| // The distance that the absolute encoder needs to complete a full rotation. |
| one_revolution_distance:double (id: 1); |
| // Measured absolute position of the encoder when at zero. |
| measured_absolute_position:double (id: 2); |
| |
| // The distance that the single turn absolute encoder needs to complete a full |
| // rotation. |
| single_turn_one_revolution_distance:double (id: 3); |
| // Measured absolute position of the single turn encoder when at zero. |
| single_turn_measured_absolute_position:double (id: 4); |
| // Position of the middle of the range of motion in output coordinates. |
| single_turn_middle_position:double (id: 5); |
| |
| // Threshold for deciding if we are moving. moving_buffer_size samples need to |
| // be within this distance of each other before we use the middle one to zero. |
| zeroing_threshold:double (id: 6); |
| // Buffer size for deciding if we are moving. |
| moving_buffer_size:uint64 (id: 7); |
| |
| // Value between 0 and 1 indicating what fraction of one_revolution_distance |
| // it is acceptable for the offset to move. |
| allowable_encoder_error:double (id: 8); |
| } |