blob: c1cd1f7de9079371d0225967bb7eb60f64b773c7 [file] [log] [blame]
{% from 'y2024/constants/common.jinja2' import intake_upper, intake_lower %}
"common": {
"target_map": {% include 'y2024/vision/maps/target_map.json' %},
"shooter_shuttle_interpolation_table": [
// Deliberately add a bit of extra shot table on either side of the
// actual upper bounds to allow slightly more dubious shots to still be shot.
// Note: Speed over ground is untuned
{
"distance_from_goal": 4.0,
"shot_params": {
"shot_altitude_angle": 0.93,
"shot_speed_over_ground": 100000.0
}
},
{
"distance_from_goal": 6.5,
"shot_params": {
"shot_altitude_angle": 0.93,
"shot_speed_over_ground": 100000.0
}
},
{
"distance_from_goal": 8.5,
"shot_params": {
"shot_altitude_angle": 0.85,
"shot_speed_over_ground": 100000.0
}
},
{
"distance_from_goal": 10.0,
"shot_params": {
"shot_altitude_angle": 0.8,
"shot_speed_over_ground": 100000.0
}
},
{
"distance_from_goal": 15.0,
"shot_params": {
"shot_altitude_angle": 0.75,
"shot_speed_over_ground": 100000.0
}
}
],
"shooter_interpolation_table": [
{
"distance_from_goal": 0.5,
"shot_params": {
"shot_altitude_angle": 0.85,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 1.24,
"shot_params": {
"shot_altitude_angle": 0.825,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 1.904,
"shot_params": {
"shot_altitude_angle": 0.66,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 2.404,
"shot_params": {
"shot_altitude_angle": 0.59,
"shot_speed_over_ground": 16.0
}
},
// 2.2 -> high.
{
"distance_from_goal": 2.744,
"shot_params": {
"shot_altitude_angle": 0.56,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 3.274,
"shot_params": {
"shot_altitude_angle": 0.515,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 3.76,
"shot_params": {
"shot_altitude_angle": 0.50,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 4.00,
"shot_params": {
"shot_altitude_angle": 0.465,
"shot_speed_over_ground": 16.0
}
},
{
"distance_from_goal": 4.68,
"shot_params": {
"shot_altitude_angle": 0.47,
"shot_speed_over_ground": 16.0
}
}
],
"note_interpolation_table": [
{
"amperage": 6.0,
"note_params": {
"turret_offset": 0.09
}
},
{
"amperage": 10.0,
"note_params": {
"turret_offset": 0.09
}
}
],
"intake_roller_voltages": {
"spitting": -6.0,
"intaking": 9.0
},
"intake_pivot_set_points": {
"extended": 0.045,
"retracted": 1.73
},
"intake_pivot": {
"zeroing_voltage": 3.0,
"operating_voltage": 12.0,
"zeroing_profile_params": {
"max_velocity": 0.5,
"max_acceleration": 3.0
},
"default_profile_params":{
"max_velocity": 6.0,
"max_acceleration": 40.0
},
"range": {
"lower_hard": -0.2,
"upper_hard": 1.80,
"lower": {{ intake_lower }},
"upper": {{ intake_upper }}
},
"loop": {% include 'y2024/control_loops/superstructure/intake_pivot/integral_intake_pivot_plant.json' %}
},
"drivetrain": {% include 'y2024/control_loops/drivetrain/drivetrain_config.json' %},
// TODO: (niko) update the stator and supply current limits for the intake
"current_limits": {
// Values in amps
"intake_pivot_supply_current_limit": 40,
"intake_pivot_stator_current_limit": 100,
"intake_roller_supply_current_limit": 20,
"intake_roller_stator_current_limit": 100,
"transfer_roller_supply_current_limit": 40,
"transfer_roller_stator_current_limit": 50,
"drivetrain_supply_current_limit": 50,
"drivetrain_stator_current_limit": 70,
"climber_supply_current_limit": 40,
"climber_stator_current_limit": 150,
"extend_supply_current_limit": 30,
"extend_stator_current_limit": 180,
"extend_roller_supply_current_limit": 50,
"extend_roller_stator_current_limit": 180,
"turret_supply_current_limit": 30,
"turret_stator_current_limit": 100,
"altitude_supply_current_limit": 30,
"altitude_stator_current_limit": 150,
"catapult_supply_current_limit": 60,
"catapult_stator_current_limit": 250,
"retention_roller_stator_current_limit": 20,
"slower_retention_roller_stator_current_limit": 12,
"shooting_retention_roller_stator_current_limit": -20,
"retention_roller_supply_current_limit": 10
},
"transfer_roller_voltages": {
"transfer_in": 11.0,
"transfer_out": -4.0,
"extend_moving": 4.0
},
"extend_roller_voltages": {
"scoring": 6.0,
"reversing": -4.0
},
"catapult": {
"zeroing_voltage": 3.0,
"operating_voltage": 12.0,
"zeroing_profile_params": {
"max_velocity": 1.0,
"max_acceleration": 6.0
},
"default_profile_params":{
"max_velocity": 0.025,
"max_acceleration": 0.05
},
"range": {
"lower_hard": -0.05,
"upper_hard": 4.2,
"lower": 0.0,
"upper": 2.38
},
"loop": {% include 'y2024/control_loops/superstructure/catapult/integral_catapult_plant.json' %}
},
// TODO: (max) update the constants for the shooter subsystems
"altitude": {
"zeroing_voltage": 3.0,
"operating_voltage": 12.0,
"zeroing_profile_params": {
"max_velocity": 0.5,
"max_acceleration": 3.0
},
"default_profile_params":{
"max_velocity": 5.0,
"max_acceleration": 30.0
},
"range": {
"lower_hard": -0.01,
"upper_hard": 1.66,
"lower": 0.0135,
"upper": 1.57
},
"loop": {% include 'y2024/control_loops/superstructure/altitude/integral_altitude_plant.json' %}
},
"turret": {
"zeroing_voltage": 3.0,
"operating_voltage": 12.0,
"zeroing_profile_params": {
"max_velocity": 0.5,
"max_acceleration": 3.0
},
"default_profile_params":{
"max_velocity": 12.0,
"max_acceleration": 55.0
},
"range": {
"lower_hard": -4.8,
"upper_hard": 4.8,
"lower": -4.7,
"upper": 4.7
},
"loop": {% include 'y2024/control_loops/superstructure/turret/integral_turret_plant.json' %}
},
"extend": {
"zeroing_voltage": 3.0,
"operating_voltage": 12.0,
"zeroing_profile_params": {
"max_velocity": 0.5,
"max_acceleration": 3.0
},
"default_profile_params":{
"max_velocity": 2.0,
"max_acceleration": 10.0
},
"range": {
"lower_hard": -0.005,
"upper_hard": 0.47,
"lower": 0.005,
"upper": 0.46
},
"loop": {% include 'y2024/control_loops/superstructure/extend/integral_extend_plant.json' %}
},
"shooter_targets": {
"red_alliance": {
"pos": {
"rows": 3,
"cols": 1,
"storage_order": "ColMajor",
// The data field contains the x, y and z
// coordinates of the speaker on the red alliance
"data": [8.209, 1.4435, 2.0705]
},
"theta": 0.0
},
"blue_alliance": {
"pos": {
"rows": 3,
"cols": 1,
"storage_order": "ColMajor",
// The data field contains the x, y and z
// coordinates of the speaker on the blue alliance
"data": [-8.209, 1.4435, 2.0705]
},
"theta": 0.0
}
},
"shooter_shuttle_targets": {
"red_alliance": {
"pos": {
"rows": 3,
"cols": 1,
"storage_order": "ColMajor",
//TODO(Filip): Update positions
// The data field contains the x, y and z
// coordinates of the shuttle target, amp area on the red alliance
"data": [5.968526, 2.654766, 0.006045]
},
"theta": 0.0
},
"blue_alliance": {
"pos": {
"rows": 3,
"cols": 1,
"storage_order": "ColMajor",
//TODO(Filip): Update positions
// The data field contains the x, y and z
// coordinates of the shuttle target, amp area on the blue alliance
"data": [-5.968526, 2.655, 0.006]
},
"theta": 0.0
}
},
"altitude_loading_position": 0.02,
"turret_loading_position": 0.58,
"catapult_return_position": 0.0,
"min_altitude_shooting_angle": 0.4,
"max_altitude_shooting_angle": 0.94,
"retention_roller_voltages": {
"intaking": 1.5,
"retaining": 0.6,
"spitting": 6.0
},
// TODO(Filip): Update the speaker and amp shooter setpoints
"shooter_speaker_set_point": {
"turret_position": 0.13,
"altitude_position": 0.85,
"shot_velocity": 0.0
},
"shooter_podium_set_point":{
"turret_position": 0.0,
"altitude_position": 0.0,
"shot_velocity": 0.0
},
"extend_set_points": {
"trap": 0.46,
"amp": 0.35,
"catapult": 0.022,
"retracted": 0.022
},
"turret_avoid_extend_collision_position": 0.0,
"altitude_avoid_extend_collision_position": 0.3,
"autonomous_mode": "FIVE_PIECE",
"ignore_targets": {
"red": [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16],
"blue": [1, 2, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16]
}
}