Compare commits
	
		
			93 Commits
		
	
	
		
			Lanceur
			...
			e181361006
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e181361006 | |||
| 03bf04f40e | |||
|  | 876cf655f1 | ||
|  | 8e1d513b86 | ||
|  | 2a128b40fc | ||
|  | 448b92e8ab | ||
|  | 0735fdb41a | ||
|  | 4599457e14 | ||
| 899f8f3bf6 | |||
| 4076c5d368 | |||
|  | a023213a18 | ||
|  | 75c59ddbe5 | ||
|  | a7a4c4ef31 | ||
| 1facdb07e5 | |||
| ab36e8dadf | |||
|  | c6017d60b4 | ||
|  | b7aec15b74 | ||
|  | d3f7d01246 | ||
|  | 125ad2c417 | ||
| 4ddd030426 | |||
| 1fbc87cf67 | |||
|  | 035603c6eb | ||
|  | b6b2f8f5f3 | ||
| ab0439e309 | |||
| 7d2ef1017c | |||
|  | 015fec18d2 | ||
|  | d524a87319 | ||
|  | f06c9b0428 | ||
|  | 7b460fa3de | ||
|  | 908c5d0b96 | ||
|  | 46a71c5fba | ||
|  | a45f27eb7f | ||
| 2b35ef9267 | |||
| b070971185 | |||
|  | 2ca57f2556 | ||
|  | 144c9a1d71 | ||
|  | 368948b2aa | ||
|  | f7e38ca9bc | ||
|  | 1367087b14 | ||
|  | e7be2d6428 | ||
|  | 437bf16505 | ||
|  | c22c507da0 | ||
| a11b463cc2 | |||
| 910caa963e | |||
| bf63394d77 | |||
|  | 954c82a7a0 | ||
|  | 0063ce1722 | ||
|  | 810ea210b1 | ||
|  | b8894d4efd | ||
|  | 4197299808 | ||
|  | bdbcf2e38f | ||
|  | 0e4efef6ee | ||
|  | d0137d1531 | ||
| 8d93e7f24f | |||
| 4ece413126 | |||
|  | f1406f0db0 | ||
|  | 9804a3cfbf | ||
|  | 9f51699e35 | ||
|  | 1c1e8fb714 | ||
|  | 104c9195bc | ||
|  | 205da73570 | ||
| 1989806378 | |||
| fd72aaf8bd | |||
|  | 99525dc7d7 | ||
|  | 2533a3a462 | ||
|  | ed5d3bc08b | ||
|  | e9f55c9fd6 | ||
| bde1715f76 | |||
|  | 48a4f2e0f4 | ||
|  | fc75e1f997 | ||
|  | d6508d513b | ||
| 1a899887da | |||
| 7e65352246 | |||
|  | ee263139c1 | ||
|  | 938198d4e2 | ||
|  | b460501b95 | ||
|  | 5e39e6fc4d | ||
|  | 6bec6011ca | ||
| e1111511b7 | |||
| c3d4b8c43c | |||
| 4944f4662b | |||
|  | 4f6552202c | ||
|  | adb6d5554f | ||
| eca7bb1891 | |||
| 6687dc73ea | |||
|  | ea96a16864 | ||
|  | dfa05d79a7 | ||
| 650e8341ec | |||
|  | 025d9e47f0 | ||
| f0cdb9a241 | |||
| ae9e9577c2 | |||
|  | 89d155ae5e | ||
|  | 787251658c | 
							
								
								
									
										12
									
								
								.pathplanner/settings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.pathplanner/settings.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | { | ||||||
|  |   "robotWidth": 0.9, | ||||||
|  |   "robotLength": 0.9, | ||||||
|  |   "holonomicMode": true, | ||||||
|  |   "pathFolders": [], | ||||||
|  |   "autoFolders": [], | ||||||
|  |   "defaultMaxVel": 3.0, | ||||||
|  |   "defaultMaxAccel": 3.0, | ||||||
|  |   "defaultMaxAngVel": 540.0, | ||||||
|  |   "defaultMaxAngAccel": 720.0, | ||||||
|  |   "maxModuleSpeed": 4.5 | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								networktables.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								networktables.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | [] | ||||||
							
								
								
									
										92
									
								
								simgui-ds.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								simgui-ds.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | { | ||||||
|  |   "keyboardJoysticks": [ | ||||||
|  |     { | ||||||
|  |       "axisConfig": [ | ||||||
|  |         { | ||||||
|  |           "decKey": 65, | ||||||
|  |           "incKey": 68 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "decKey": 87, | ||||||
|  |           "incKey": 83 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "decKey": 69, | ||||||
|  |           "decayRate": 0.0, | ||||||
|  |           "incKey": 82, | ||||||
|  |           "keyRate": 0.009999999776482582 | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "axisCount": 3, | ||||||
|  |       "buttonCount": 4, | ||||||
|  |       "buttonKeys": [ | ||||||
|  |         90, | ||||||
|  |         88, | ||||||
|  |         67, | ||||||
|  |         86 | ||||||
|  |       ], | ||||||
|  |       "povConfig": [ | ||||||
|  |         { | ||||||
|  |           "key0": 328, | ||||||
|  |           "key135": 323, | ||||||
|  |           "key180": 322, | ||||||
|  |           "key225": 321, | ||||||
|  |           "key270": 324, | ||||||
|  |           "key315": 327, | ||||||
|  |           "key45": 329, | ||||||
|  |           "key90": 326 | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "povCount": 1 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "axisConfig": [ | ||||||
|  |         { | ||||||
|  |           "decKey": 74, | ||||||
|  |           "incKey": 76 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "decKey": 73, | ||||||
|  |           "incKey": 75 | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "axisCount": 2, | ||||||
|  |       "buttonCount": 4, | ||||||
|  |       "buttonKeys": [ | ||||||
|  |         77, | ||||||
|  |         44, | ||||||
|  |         46, | ||||||
|  |         47 | ||||||
|  |       ], | ||||||
|  |       "povCount": 0 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "axisConfig": [ | ||||||
|  |         { | ||||||
|  |           "decKey": 263, | ||||||
|  |           "incKey": 262 | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "decKey": 265, | ||||||
|  |           "incKey": 264 | ||||||
|  |         } | ||||||
|  |       ], | ||||||
|  |       "axisCount": 2, | ||||||
|  |       "buttonCount": 6, | ||||||
|  |       "buttonKeys": [ | ||||||
|  |         260, | ||||||
|  |         268, | ||||||
|  |         266, | ||||||
|  |         261, | ||||||
|  |         269, | ||||||
|  |         267 | ||||||
|  |       ], | ||||||
|  |       "povCount": 0 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "axisCount": 0, | ||||||
|  |       "buttonCount": 0, | ||||||
|  |       "povCount": 0 | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										10
									
								
								simgui.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								simgui.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | { | ||||||
|  |   "NTProvider": { | ||||||
|  |     "types": { | ||||||
|  |       "/FMSInfo": "FMSInfo" | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "NetworkTables Info": { | ||||||
|  |     "visible": true | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										75
									
								
								src/main/deploy/pathplanner/autos/mode 1.auto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								src/main/deploy/pathplanner/autos/mode 1.auto
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | { | ||||||
|  |   "version": 1.0, | ||||||
|  |   "startingPose": { | ||||||
|  |     "position": { | ||||||
|  |       "x": 5.76, | ||||||
|  |       "y": 3.93 | ||||||
|  |     }, | ||||||
|  |     "rotation": 0 | ||||||
|  |   }, | ||||||
|  |   "command": { | ||||||
|  |     "type": "sequential", | ||||||
|  |     "data": { | ||||||
|  |       "commands": [ | ||||||
|  |         { | ||||||
|  |           "type": "path", | ||||||
|  |           "data": { | ||||||
|  |             "pathName": "1" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "type": "deadline", | ||||||
|  |           "data": { | ||||||
|  |             "commands": [ | ||||||
|  |               { | ||||||
|  |                 "type": "wait", | ||||||
|  |                 "data": { | ||||||
|  |                   "waitTime": 2.0 | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "type": "named", | ||||||
|  |                 "data": { | ||||||
|  |                   "name": "lancer" | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |             ] | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "type": "path", | ||||||
|  |           "data": { | ||||||
|  |             "pathName": "2" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "type": "deadline", | ||||||
|  |           "data": { | ||||||
|  |             "commands": [ | ||||||
|  |               { | ||||||
|  |                 "type": "wait", | ||||||
|  |                 "data": { | ||||||
|  |                   "waitTime": 2.0 | ||||||
|  |                 } | ||||||
|  |               }, | ||||||
|  |               { | ||||||
|  |                 "type": "named", | ||||||
|  |                 "data": { | ||||||
|  |                   "name": "lancer" | ||||||
|  |                 } | ||||||
|  |               } | ||||||
|  |             ] | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           "type": "path", | ||||||
|  |           "data": { | ||||||
|  |             "pathName": "3" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "folder": null, | ||||||
|  |   "choreoAuto": false | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								src/main/deploy/pathplanner/navgrid.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/main/deploy/pathplanner/navgrid.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										137
									
								
								src/main/deploy/pathplanner/paths/1.path
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								src/main/deploy/pathplanner/paths/1.path
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,137 @@ | |||||||
|  | { | ||||||
|  |   "version": 1.0, | ||||||
|  |   "waypoints": [ | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 5.76, | ||||||
|  |         "y": 3.93 | ||||||
|  |       }, | ||||||
|  |       "prevControl": null, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 5.801431310952625, | ||||||
|  |         "y": 3.93 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 7.3, | ||||||
|  |         "y": 3.2979107312440648 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 6.660542519857817, | ||||||
|  |         "y": 3.2979107312440648 | ||||||
|  |       }, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 7.948552157357058, | ||||||
|  |         "y": 3.2979107312440648 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 8.005090218423552, | ||||||
|  |         "y": 4.1022792022792025 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 7.89972103271822, | ||||||
|  |         "y": 3.7203159040973657 | ||||||
|  |       }, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 8.09701804368471, | ||||||
|  |         "y": 4.435517568850902 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 8.774985754985755, | ||||||
|  |         "y": 4.9411206077872745 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 8.087653449552494, | ||||||
|  |         "y": 5.261875683656129 | ||||||
|  |       }, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 9.292079772079772, | ||||||
|  |         "y": 4.699810066476734 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 10.41, | ||||||
|  |         "y": 3.07 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 9.74022792022792, | ||||||
|  |         "y": 2.8152896486229815 | ||||||
|  |       }, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 10.747612735931797, | ||||||
|  |         "y": 3.19839212203024 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 10.4, | ||||||
|  |         "y": 5.2 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 10.388509021842355, | ||||||
|  |         "y": 5.2 | ||||||
|  |       }, | ||||||
|  |       "nextControl": null, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "rotationTargets": [ | ||||||
|  |     { | ||||||
|  |       "waypointRelativePos": 1, | ||||||
|  |       "rotationDegrees": 0.0, | ||||||
|  |       "rotateFast": false | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "waypointRelativePos": 2, | ||||||
|  |       "rotationDegrees": 76.0, | ||||||
|  |       "rotateFast": false | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "waypointRelativePos": 3, | ||||||
|  |       "rotationDegrees": 90.0, | ||||||
|  |       "rotateFast": false | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "waypointRelativePos": 4, | ||||||
|  |       "rotationDegrees": 90.0, | ||||||
|  |       "rotateFast": false | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "constraintZones": [], | ||||||
|  |   "eventMarkers": [], | ||||||
|  |   "globalConstraints": { | ||||||
|  |     "maxVelocity": 3.0, | ||||||
|  |     "maxAcceleration": 3.0, | ||||||
|  |     "maxAngularVelocity": 540.0, | ||||||
|  |     "maxAngularAcceleration": 720.0 | ||||||
|  |   }, | ||||||
|  |   "goalEndState": { | ||||||
|  |     "velocity": 0, | ||||||
|  |     "rotation": 90.55, | ||||||
|  |     "rotateFast": false | ||||||
|  |   }, | ||||||
|  |   "reversed": false, | ||||||
|  |   "folder": null, | ||||||
|  |   "previewStartingState": { | ||||||
|  |     "rotation": 0, | ||||||
|  |     "velocity": 0 | ||||||
|  |   }, | ||||||
|  |   "useDefaultConstraints": true | ||||||
|  | } | ||||||
							
								
								
									
										52
									
								
								src/main/deploy/pathplanner/paths/2.path
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/main/deploy/pathplanner/paths/2.path
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  | { | ||||||
|  |   "version": 1.0, | ||||||
|  |   "waypoints": [ | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 10.4, | ||||||
|  |         "y": 5.2 | ||||||
|  |       }, | ||||||
|  |       "prevControl": null, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 9.705754985754986, | ||||||
|  |         "y": 4.745773979107312 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 9.3, | ||||||
|  |         "y": 4.0 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 9.936805143100598, | ||||||
|  |         "y": 4.758914817072607 | ||||||
|  |       }, | ||||||
|  |       "nextControl": null, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "rotationTargets": [], | ||||||
|  |   "constraintZones": [], | ||||||
|  |   "eventMarkers": [], | ||||||
|  |   "globalConstraints": { | ||||||
|  |     "maxVelocity": 3.0, | ||||||
|  |     "maxAcceleration": 3.0, | ||||||
|  |     "maxAngularVelocity": 540.0, | ||||||
|  |     "maxAngularAcceleration": 720.0 | ||||||
|  |   }, | ||||||
|  |   "goalEndState": { | ||||||
|  |     "velocity": 0, | ||||||
|  |     "rotation": 90.0, | ||||||
|  |     "rotateFast": false | ||||||
|  |   }, | ||||||
|  |   "reversed": false, | ||||||
|  |   "folder": null, | ||||||
|  |   "previewStartingState": { | ||||||
|  |     "rotation": 90.60460638654384, | ||||||
|  |     "velocity": 0 | ||||||
|  |   }, | ||||||
|  |   "useDefaultConstraints": true | ||||||
|  | } | ||||||
							
								
								
									
										95
									
								
								src/main/deploy/pathplanner/paths/3.path
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								src/main/deploy/pathplanner/paths/3.path
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,95 @@ | |||||||
|  | { | ||||||
|  |   "version": 1.0, | ||||||
|  |   "waypoints": [ | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 9.3, | ||||||
|  |         "y": 4.0 | ||||||
|  |       }, | ||||||
|  |       "prevControl": null, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 9.062260208926876, | ||||||
|  |         "y": 3.550712250712251 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 8.545166191832859, | ||||||
|  |         "y": 3.2749287749287745 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 9.07375118708452, | ||||||
|  |         "y": 3.2749287749287745 | ||||||
|  |       }, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 8.004601461786502, | ||||||
|  |         "y": 3.2749287749287745 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 7.441748878923768, | ||||||
|  |         "y": 4.964798206278027 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 7.957769732906826, | ||||||
|  |         "y": 4.951218710120577 | ||||||
|  |       }, | ||||||
|  |       "nextControl": { | ||||||
|  |         "x": 7.005091708933264, | ||||||
|  |         "y": 4.976289184435672 | ||||||
|  |       }, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "anchor": { | ||||||
|  |         "x": 5.76, | ||||||
|  |         "y": 3.93 | ||||||
|  |       }, | ||||||
|  |       "prevControl": { | ||||||
|  |         "x": 6.374633781763827, | ||||||
|  |         "y": 4.277503736920778 | ||||||
|  |       }, | ||||||
|  |       "nextControl": null, | ||||||
|  |       "isLocked": false, | ||||||
|  |       "linkedName": null | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "rotationTargets": [ | ||||||
|  |     { | ||||||
|  |       "waypointRelativePos": 1, | ||||||
|  |       "rotationDegrees": 30.0, | ||||||
|  |       "rotateFast": false | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "waypointRelativePos": 2, | ||||||
|  |       "rotationDegrees": 0.0, | ||||||
|  |       "rotateFast": false | ||||||
|  |     } | ||||||
|  |   ], | ||||||
|  |   "constraintZones": [], | ||||||
|  |   "eventMarkers": [], | ||||||
|  |   "globalConstraints": { | ||||||
|  |     "maxVelocity": 3.0, | ||||||
|  |     "maxAcceleration": 3.0, | ||||||
|  |     "maxAngularVelocity": 540.0, | ||||||
|  |     "maxAngularAcceleration": 720.0 | ||||||
|  |   }, | ||||||
|  |   "goalEndState": { | ||||||
|  |     "velocity": 0, | ||||||
|  |     "rotation": 0.8151092400891717, | ||||||
|  |     "rotateFast": false | ||||||
|  |   }, | ||||||
|  |   "reversed": false, | ||||||
|  |   "folder": null, | ||||||
|  |   "previewStartingState": { | ||||||
|  |     "rotation": 89.62831416675282, | ||||||
|  |     "velocity": 0 | ||||||
|  |   }, | ||||||
|  |   "useDefaultConstraints": true | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								src/main/deploy/swerve/controllerproperties.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/main/deploy/swerve/controllerproperties.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | { | ||||||
|  |   "angleJoystickRadiusDeadband": 0.5, | ||||||
|  |   "heading": { | ||||||
|  |     "p": 0.4, | ||||||
|  |     "i": 0, | ||||||
|  |     "d": 0.01 | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/backleft.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/backleft.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | { | ||||||
|  |   "location": { | ||||||
|  |     "front": -12.375, | ||||||
|  |     "left": 12.375 | ||||||
|  |   }, | ||||||
|  |   "absoluteEncoderOffset":209.443, | ||||||
|  |   "drive": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 8, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "angle": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 9, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "inverted": { | ||||||
|  |     "angle": true, | ||||||
|  |     "drive": false | ||||||
|  |   }, | ||||||
|  |   "conversionFactor": { | ||||||
|  |     "angle": 0, | ||||||
|  |     "drive": 0 | ||||||
|  |   }, | ||||||
|  |   "encoder": { | ||||||
|  |     "type": "cancoder", | ||||||
|  |     "id": 6, | ||||||
|  |     "canbus": null | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/backright.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/backright.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | { | ||||||
|  |   "location": { | ||||||
|  |     "front": -12.375, | ||||||
|  |     "left": -12.375 | ||||||
|  |   }, | ||||||
|  |   "absoluteEncoderOffset": 5.537, | ||||||
|  |   "drive": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 11, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "angle": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 12, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "inverted": { | ||||||
|  |     "angle": true, | ||||||
|  |     "drive": false | ||||||
|  |   }, | ||||||
|  |   "conversionFactor": { | ||||||
|  |     "angle": 0, | ||||||
|  |     "drive": 0 | ||||||
|  |   }, | ||||||
|  |   "encoder": { | ||||||
|  |     "type": "cancoder", | ||||||
|  |     "id": 7, | ||||||
|  |     "canbus": null | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/frontleft.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/frontleft.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | { | ||||||
|  |   "location": { | ||||||
|  |     "front": 12.375, | ||||||
|  |     "left": 12.375 | ||||||
|  |   }, | ||||||
|  |   "absoluteEncoderOffset":258.223 , | ||||||
|  |   "drive": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 2, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "angle": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 3, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "inverted": { | ||||||
|  |     "angle": true, | ||||||
|  |     "drive": false | ||||||
|  |   }, | ||||||
|  |   "conversionFactor": { | ||||||
|  |     "angle": 0, | ||||||
|  |     "drive": 0 | ||||||
|  |   }, | ||||||
|  |   "encoder": { | ||||||
|  |     "type": "cancoder", | ||||||
|  |     "id": 4, | ||||||
|  |     "canbus": null | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								src/main/deploy/swerve/modules/frontright.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/main/deploy/swerve/modules/frontright.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | { | ||||||
|  |   "location": { | ||||||
|  |     "front": 12.375, | ||||||
|  |     "left": -12.375 | ||||||
|  |   }, | ||||||
|  |   "absoluteEncoderOffset": 110.215, | ||||||
|  |   "drive": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 18, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "angle": { | ||||||
|  |     "type": "talonFX", | ||||||
|  |     "id": 17, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "inverted": { | ||||||
|  |     "angle": true, | ||||||
|  |     "drive": false | ||||||
|  |   }, | ||||||
|  |   "conversionFactor": { | ||||||
|  |     "angle": 0, | ||||||
|  |     "drive": 0 | ||||||
|  |   }, | ||||||
|  |   "encoder": { | ||||||
|  |     "type": "cancoder", | ||||||
|  |     "id": 5, | ||||||
|  |     "canbus": null | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										16
									
								
								src/main/deploy/swerve/modules/physicalproperties.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/main/deploy/swerve/modules/physicalproperties.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | { | ||||||
|  |   "optimalVoltage": 12, | ||||||
|  |   "wheelGripCoefficientOfFriction": 1.19, | ||||||
|  |   "currentLimit": { | ||||||
|  |     "drive": 40, | ||||||
|  |     "angle": 20 | ||||||
|  |   }, | ||||||
|  |   "conversionFactor": { | ||||||
|  |     "angle": 16.8, | ||||||
|  |     "drive": 0.04 | ||||||
|  |   }, | ||||||
|  |   "rampRate": { | ||||||
|  |     "drive": 0.25, | ||||||
|  |     "angle": 0.25 | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										16
									
								
								src/main/deploy/swerve/modules/pidfproperties.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/main/deploy/swerve/modules/pidfproperties.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | { | ||||||
|  |   "drive": { | ||||||
|  |     "p": 0.0020645, | ||||||
|  |     "i": 0, | ||||||
|  |     "d": 0, | ||||||
|  |     "f": 0, | ||||||
|  |     "iz": 0 | ||||||
|  |   }, | ||||||
|  |   "angle": { | ||||||
|  |     "p": 0.01, | ||||||
|  |     "i": 0, | ||||||
|  |     "d": 0, | ||||||
|  |     "f": 0, | ||||||
|  |     "iz": 0 | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								src/main/deploy/swerve/swervedrive.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/main/deploy/swerve/swervedrive.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | { | ||||||
|  |   "imu": { | ||||||
|  |     "type": "pigeon", | ||||||
|  |     "id": 0, | ||||||
|  |     "canbus": null | ||||||
|  |   }, | ||||||
|  |   "invertedIMU": false, | ||||||
|  |   "modules": [ | ||||||
|  |     "frontleft.json", | ||||||
|  |     "frontright.json", | ||||||
|  |     "backleft.json", | ||||||
|  |     "backright.json" | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								src/main/java/frc/robot/Commands/Desaccumuler.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								src/main/java/frc/robot/Commands/Desaccumuler.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Commands; | ||||||
|  | import edu.wpi.first.wpilibj2.command.Command; | ||||||
|  | import frc.robot.Subsystems.Accumulateur; | ||||||
|  |  | ||||||
|  | public class Desaccumuler extends Command { | ||||||
|  |   private Accumulateur accumulateur; | ||||||
|  |   /** Creates a new Desaccumuler. */ | ||||||
|  |   public Desaccumuler(Accumulateur accumulateur){ | ||||||
|  |     this.accumulateur = accumulateur; | ||||||
|  |     addRequirements(accumulateur); | ||||||
|  |     // Use addRequirements() here to declare subsystem dependencies. | ||||||
|  |   } | ||||||
|  |   // Called when the command is initially scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void initialize() { | ||||||
|  |    | ||||||
|  |   } | ||||||
|  |   // Called every time the scheduler runs while the command is scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void execute() { | ||||||
|  |     if(!accumulateur.photocell() || !accumulateur.photocell2()){accumulateur.desaccumule(0.1);} | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   // Called once the command ends or is interrupted. | ||||||
|  |   @Override | ||||||
|  |   public void end(boolean interrupted) { | ||||||
|  |    accumulateur.desaccumule(0); | ||||||
|  |   } | ||||||
|  |   // Returns true when the command should end. | ||||||
|  |   @Override | ||||||
|  |   public boolean isFinished() { | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										53
									
								
								src/main/java/frc/robot/Commands/FollowAprilTag.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/main/java/frc/robot/Commands/FollowAprilTag.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Commands; | ||||||
|  | import edu.wpi.first.wpilibj2.command.Command; | ||||||
|  | import frc.robot.Subsystems.Lanceur; | ||||||
|  | import frc.robot.Subsystems.Limelight3G; | ||||||
|  |  | ||||||
|  | public class FollowAprilTag extends Command { | ||||||
|  |  | ||||||
|  |   private Limelight3G enlignement; | ||||||
|  |   private Lanceur lanceur; | ||||||
|  |   /** Creates a new Limelight3g. */ | ||||||
|  |   public FollowAprilTag(Limelight3G enlignement, Lanceur lanceur) { | ||||||
|  |     // Use addRequirements() here to declare subsystem dependencies. | ||||||
|  |     this.lanceur = lanceur; | ||||||
|  |     this.enlignement = enlignement; | ||||||
|  |     addRequirements(lanceur, enlignement); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // Called when the command is initially scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void initialize() {} | ||||||
|  |  | ||||||
|  |   // Called every time the scheduler runs while the command is scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void execute() { | ||||||
|  |  | ||||||
|  |      | ||||||
|  |      if (enlignement.getv()==1)   | ||||||
|  |       { | ||||||
|  |         lanceur.tourelRotation(0,0, enlignement.getx()/30); | ||||||
|  |       } | ||||||
|  |      | ||||||
|  |     else | ||||||
|  |     { | ||||||
|  |       lanceur.tourelRotation(0, 0, 0); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // Called once the command ends or is interrupted. | ||||||
|  |   @Override | ||||||
|  |   public void end(boolean interrupted) { | ||||||
|  |     lanceur.tourelRotation(0, 0, 0); | ||||||
|  |   } | ||||||
|  |   // Returns true when the command should end. | ||||||
|  |   @Override | ||||||
|  |   public boolean isFinished() { | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										48
									
								
								src/main/java/frc/robot/Commands/LEDactive.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/main/java/frc/robot/Commands/LEDactive.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Commands; | ||||||
|  |  | ||||||
|  | import edu.wpi.first.wpilibj2.command.Command; | ||||||
|  | import frc.robot.Subsystems.Accumulateur; | ||||||
|  | import frc.robot.Subsystems.LED; | ||||||
|  |  | ||||||
|  | public class LEDactive extends Command { | ||||||
|  |   private Accumulateur accumulateur; | ||||||
|  |   private LED led; | ||||||
|  |   /** Creates a new LEDactive. */ | ||||||
|  |   public LEDactive(Accumulateur accumulateur, LED led) { | ||||||
|  |     this.accumulateur = accumulateur; | ||||||
|  |     this.led = led; | ||||||
|  |     addRequirements(accumulateur,led); | ||||||
|  |     // Use addRequirements() here to declare subsystem dependencies. | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // Called when the command is initially scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void initialize() {} | ||||||
|  |  | ||||||
|  |   // Called every time the scheduler runs while the command is scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void execute() { | ||||||
|  |     if(accumulateur.photocell()) | ||||||
|  |     led.led(0, 255, 0); | ||||||
|  |     else{ | ||||||
|  |       led.led(25, 25, 100); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |    | ||||||
|  |  | ||||||
|  |   // Called once the command ends or is interrupted. | ||||||
|  |   @Override | ||||||
|  |   public void end(boolean interrupted) { | ||||||
|  |     led.led(25, 25, 100); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // Returns true when the command should end. | ||||||
|  |   @Override | ||||||
|  |   public boolean isFinished() { | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -3,37 +3,38 @@ | |||||||
| // the WPILib BSD license file in the root directory of this project. | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
| package frc.robot.Commands; | package frc.robot.Commands; | ||||||
|  |  | ||||||
| import edu.wpi.first.wpilibj2.command.Command; | import edu.wpi.first.wpilibj2.command.Command; | ||||||
|  | import edu.wpi.first.wpilibj2.command.WaitCommand; | ||||||
|  | import frc.robot.Subsystems.Accumulateur; | ||||||
| import frc.robot.Subsystems.Lanceur; | import frc.robot.Subsystems.Lanceur; | ||||||
|  |  | ||||||
| public class Lancer extends Command { | public class Lancer extends Command { | ||||||
|   private Lanceur lanceur; |   private Lanceur lanceur; | ||||||
|  |   private Accumulateur accumulateur; | ||||||
|   /** Creates a new Lancer. */ |   /** Creates a new Lancer. */ | ||||||
|   public Lancer(Lanceur lanceur) { |   public Lancer(Lanceur lanceur,Accumulateur accumulateur) { | ||||||
|     this.lanceur = lanceur; |     this.lanceur = lanceur; | ||||||
|     addRequirements(lanceur); |     this.accumulateur = accumulateur; | ||||||
|  |     addRequirements(lanceur, accumulateur); | ||||||
|     // Use addRequirements() here to declare subsystem dependencies. |     // Use addRequirements() here to declare subsystem dependencies. | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // Called when the command is initially scheduled. |   // Called when the command is initially scheduled. | ||||||
|   @Override |   @Override | ||||||
|   public void initialize() { |   public void initialize() { | ||||||
|     lanceur.setPID(0, 0, 0); |     lanceur.PIDlanceur(0, 0, 0); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // Called every time the scheduler runs while the command is scheduled. |   // Called every time the scheduler runs while the command is scheduled. | ||||||
|   @Override |   @Override | ||||||
|   public void execute() { |   public void execute() { | ||||||
|     lanceur.lance(0.5); |     lanceur.lance(); | ||||||
|  |     accumulateur.Petitlanceur(0.7); | ||||||
|  |     accumulateur.desaccumule(0.2); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // Called once the command ends or is interrupted. |   // Called once the command ends or is interrupted. | ||||||
|   @Override |   @Override | ||||||
|   public void end(boolean interrupted) { |   public void end(boolean interrupted) { | ||||||
|     lanceur.lance(0); |     lanceur.lance(0); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // Returns true when the command should end. |   // Returns true when the command should end. | ||||||
|   @Override |   @Override | ||||||
|   public boolean isFinished() { |   public boolean isFinished() { | ||||||
|   | |||||||
							
								
								
									
										42
									
								
								src/main/java/frc/robot/Commands/Tourel.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								src/main/java/frc/robot/Commands/Tourel.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Commands; | ||||||
|  |  | ||||||
|  | import edu.wpi.first.wpilibj2.command.Command; | ||||||
|  | import frc.robot.Subsystems.Lanceur; | ||||||
|  |  | ||||||
|  | public class Tourel extends Command { | ||||||
|  |   private Lanceur lanceur; | ||||||
|  |   /** Creates a new Tourel. */ | ||||||
|  |   public Tourel(Lanceur lanceur) { | ||||||
|  |     this.lanceur = lanceur; | ||||||
|  |     // Use addRequirements() here to declare subsystem dependencies. | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // Called when the command is initially scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void initialize() {} | ||||||
|  |  | ||||||
|  |   // Called every time the scheduler runs while the command is scheduled. | ||||||
|  |   @Override | ||||||
|  |   public void execute() { | ||||||
|  |     if(lanceur.limitswitch1()){ | ||||||
|  |      lanceur.touchagedelimitswitch1(0); | ||||||
|  |     } | ||||||
|  |     else if(lanceur.limitswitch2()){ | ||||||
|  |      lanceur.touchagedelimitswitch2(0); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // Called once the command ends or is interrupted. | ||||||
|  |   @Override | ||||||
|  |   public void end(boolean interrupted) {} | ||||||
|  |  | ||||||
|  |   // Returns true when the command should end. | ||||||
|  |   @Override | ||||||
|  |   public boolean isFinished() { | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										47
									
								
								src/main/java/frc/robot/Commands/Tracker_Couleur_Forme.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/main/java/frc/robot/Commands/Tracker_Couleur_Forme.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | // // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | // package frc.robot.Commands; | ||||||
|  |  | ||||||
|  | // import edu.wpi.first.wpilibj2.command.Command; | ||||||
|  | // import frc.robot.Subsystems.Limelight3G; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // public class Tracker_Couleur_Forme extends Command { | ||||||
|  | //   /** Creates a new Tracker_Couleur_Forme. */ | ||||||
|  | //   private Limelight3G pipeline; | ||||||
|  | //   public Tracker_Couleur_Forme(Limelight3G tracker_couleur, Limelight3G tracker_forme) { | ||||||
|  | //     // Use addRequirements() here to declare subsystem dependencies. | ||||||
|  | //     this.pipeline = pipeline; | ||||||
|  | //     this.tracker_couleur = tracker_couleur; | ||||||
|  | //     this.tracker_forme = tracker_forme; | ||||||
|  | //   } | ||||||
|  |  | ||||||
|  | //   // Called when the command is initially scheduled. | ||||||
|  | //   @Override | ||||||
|  | //   public void initialize() {} | ||||||
|  |  | ||||||
|  | //   // Called every time the scheduler runs while the command is scheduled. | ||||||
|  | //   @Override | ||||||
|  | //   public void execute() { | ||||||
|  | //     if (pipeline == 1) { | ||||||
|  | //       Limelight3G.tracker_couleur; | ||||||
|  | //     } | ||||||
|  | //     else if (pipeline == 2){ | ||||||
|  | //       Limelight3G.tracker_forme; | ||||||
|  | //     } | ||||||
|  |      | ||||||
|  |      | ||||||
|  | //   } | ||||||
|  |  | ||||||
|  | //   // Called once the command ends or is interrupted. | ||||||
|  | //   @Override | ||||||
|  | //   public void end(boolean interrupted) {} | ||||||
|  |  | ||||||
|  | //   // Returns true when the command should end. | ||||||
|  | //   @Override | ||||||
|  | //   public boolean isFinished() { | ||||||
|  | //     return false; | ||||||
|  | //   } | ||||||
|  | // } | ||||||
| @@ -4,17 +4,59 @@ | |||||||
|  |  | ||||||
| package frc.robot; | package frc.robot; | ||||||
|  |  | ||||||
|  | import com.pathplanner.lib.auto.AutoBuilder; | ||||||
|  | import com.pathplanner.lib.auto.NamedCommands; | ||||||
|  |  | ||||||
|  | import edu.wpi.first.math.MathUtil; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; | ||||||
|  | import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; | ||||||
| import edu.wpi.first.wpilibj2.command.Command; | import edu.wpi.first.wpilibj2.command.Command; | ||||||
| import edu.wpi.first.wpilibj2.command.Commands; | import edu.wpi.first.wpilibj2.command.Commands; | ||||||
|  | import edu.wpi.first.wpilibj2.command.RunCommand; | ||||||
|  | import edu.wpi.first.wpilibj2.command.button.CommandXboxController; | ||||||
|  | import frc.robot.Commands.Desaccumuler; | ||||||
|  | import frc.robot.Commands.FollowAprilTag; | ||||||
|  | import frc.robot.Commands.Lancer; | ||||||
|  | import frc.robot.Subsystems.Accumulateur; | ||||||
|  | import frc.robot.Subsystems.Drive; | ||||||
|  | import frc.robot.Subsystems.Lanceur; | ||||||
|  | import frc.robot.Subsystems.Limelight3G; | ||||||
|  |  | ||||||
| public class RobotContainer { | public class RobotContainer { | ||||||
|  |   private final SendableChooser<Command> autoChooser; | ||||||
|  |   Lanceur lanceur= new Lanceur(); | ||||||
|  |   Accumulateur accumulateur = new Accumulateur(); | ||||||
|  |   Limelight3G limelight3G = new Limelight3G(); | ||||||
|  |   Drive drive = new Drive(); | ||||||
|  |   ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard"); | ||||||
|  |   CommandXboxController manette = new CommandXboxController(0); | ||||||
|   public RobotContainer() { |   public RobotContainer() { | ||||||
|  |      NamedCommands.registerCommand("lancer", new Lancer(lanceur, accumulateur)); | ||||||
|  |     autoChooser = AutoBuilder.buildAutoChooser(); | ||||||
|  |     dashboard.addCamera("limelight3G", "limelight3G","limelight.local:5800") | ||||||
|  |     .withSize(3,3) | ||||||
|  |     .withPosition(5,0); | ||||||
|  |     dashboard.addCamera("limelight3", "limelight3","limelight.local:5800") | ||||||
|  |     .withSize(3,3) | ||||||
|  |     .withPosition(2,0);   | ||||||
|     configureBindings(); |     configureBindings(); | ||||||
|  |     drive.setDefaultCommand(new RunCommand(()->{ | ||||||
|  |      drive.drive(-MathUtil.applyDeadband(manette.getRightX(),0.2), MathUtil.applyDeadband(-manette.getRightY(),0.2), MathUtil.applyDeadband(-manette.getRightX(), 0.2)); | ||||||
|  |     },drive)); | ||||||
|  |     dashboard.add("autochooser",autoChooser) | ||||||
|  |       .withSize(1,1) | ||||||
|  |       .withPosition(6,0); | ||||||
|   } |   } | ||||||
|    |    | ||||||
|   private void configureBindings() {} |   private void configureBindings() { | ||||||
|  |  | ||||||
|  |     manette.x().whileTrue(new Lancer(lanceur,accumulateur)); | ||||||
|  |     manette.leftBumper().toggleOnTrue(new FollowAprilTag(limelight3G, lanceur)); | ||||||
|  |     manette.a().whileTrue(new Desaccumuler(accumulateur)); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   public Command getAutonomousCommand() { |   public Command getAutonomousCommand() { | ||||||
|     return Commands.print("No autonomous command configured"); |     return autoChooser.getSelected(); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								src/main/java/frc/robot/Subsystems/Accumulateur.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/main/java/frc/robot/Subsystems/Accumulateur.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Subsystems; | ||||||
|  | import edu.wpi.first.networktables.GenericEntry; | ||||||
|  | import edu.wpi.first.wpilibj.DigitalInput; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; | ||||||
|  | import edu.wpi.first.wpilibj2.command.SubsystemBase; | ||||||
|  | import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX; | ||||||
|  | public class Accumulateur extends SubsystemBase { | ||||||
|  |    | ||||||
|  |   /** Creates a new Accumulateur. */ | ||||||
|  |   public Accumulateur() {dashboard.addBoolean("photocell", this::photocell).withSize(1, 1).withPosition(0, 1); | ||||||
|  |      dashboard.addBoolean("photocell2", this::photocell).withSize(1, 1).withPosition(1, 1); | ||||||
|  |     } | ||||||
|  |   ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard"); | ||||||
|  |    | ||||||
|  |   private GenericEntry vitesse = | ||||||
|  |       dashboard.add("vitesseacc", 0.1) | ||||||
|  |       .withSize(1, 1) | ||||||
|  |       .withPosition(0, 0) | ||||||
|  |       .getEntry();  | ||||||
|  |        | ||||||
|  |   final WPI_TalonSRX strap = new WPI_TalonSRX(0); | ||||||
|  |   final WPI_TalonSRX roueRouge = new WPI_TalonSRX(10); | ||||||
|  |   final DigitalInput photocell = new DigitalInput(20); | ||||||
|  |   final DigitalInput photocell2 = new DigitalInput(21); | ||||||
|  |   public void encodeur(){ | ||||||
|  |   } | ||||||
|  |   public boolean photocell(){ | ||||||
|  |     return photocell.get(); | ||||||
|  |   } | ||||||
|  |   public boolean photocell2(){ | ||||||
|  |     return photocell2.get(); | ||||||
|  |   } | ||||||
|  |   public void desaccumule(double vitesse){ | ||||||
|  |     strap.set(vitesse); | ||||||
|  |      | ||||||
|  |   } | ||||||
|  |   public void Petitlanceur(double vitesse){ | ||||||
|  |     roueRouge.set(vitesse); | ||||||
|  |   } | ||||||
|  |    | ||||||
|  |   public void desaccumule(){ | ||||||
|  |     desaccumule(vitesse.getDouble(0.9)); | ||||||
|  |   } | ||||||
|  |   @Override | ||||||
|  |   public void periodic() { | ||||||
|  |     // This method will be called once per scheduler run | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										48
									
								
								src/main/java/frc/robot/Subsystems/Drive.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/main/java/frc/robot/Subsystems/Drive.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Subsystems; | ||||||
|  | import java.io.File; | ||||||
|  | import java.io.IOException; | ||||||
|  | import com.ctre.phoenix6.hardware.Pigeon2; | ||||||
|  | import edu.wpi.first.math.geometry.Translation2d; | ||||||
|  | import edu.wpi.first.math.kinematics.SwerveModulePosition; | ||||||
|  | import edu.wpi.first.wpilibj.Filesystem; | ||||||
|  | import edu.wpi.first.wpilibj2.command.SubsystemBase; | ||||||
|  | import swervelib.SwerveDrive; | ||||||
|  | import swervelib.parser.SwerveParser; | ||||||
|  |  | ||||||
|  | public class Drive extends SubsystemBase { | ||||||
|  |  | ||||||
|  |     SwerveDrive swerveDrive; | ||||||
|  |  | ||||||
|  |   File swerveJsonDirectory = new File(Filesystem.getDeployDirectory(),"swerve"); | ||||||
|  |    | ||||||
|  |   Pigeon2 Gyro = new Pigeon2(0); | ||||||
|  |     | ||||||
|  |   public void drive(double x, double y, double zRotation){ | ||||||
|  |     swerveDrive.drive(new Translation2d(x*5, y*5), zRotation*4, true, false); | ||||||
|  |   } | ||||||
|  |    | ||||||
|  |   public Drive() { | ||||||
|  |      try { | ||||||
|  |       this.swerveDrive = new SwerveParser(swerveJsonDirectory).createSwerveDrive(5); | ||||||
|  |       swerveDrive.setHeadingCorrection(true); | ||||||
|  |     } catch (IOException e) { | ||||||
|  |       e.printStackTrace(); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   public void restgyroscope(){ | ||||||
|  |     Gyro.reset(); | ||||||
|  |   } | ||||||
|  |   public SwerveModulePosition[] distance(){ | ||||||
|  |     return swerveDrive.getModulePositions(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |    | ||||||
|  |   @Override | ||||||
|  |   public void periodic() { | ||||||
|  |     // This method will be called once per scheduler run | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										22
									
								
								src/main/java/frc/robot/Subsystems/LED.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/main/java/frc/robot/Subsystems/LED.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Subsystems; | ||||||
|  |  | ||||||
|  | import com.ctre.phoenix.led.CANdle; | ||||||
|  |  | ||||||
|  | import edu.wpi.first.wpilibj2.command.SubsystemBase; | ||||||
|  |  | ||||||
|  | public class LED extends SubsystemBase { | ||||||
|  |   /** Creates a new LED. */ | ||||||
|  |   public LED() {} | ||||||
|  |   CANdle led = new CANdle(0); | ||||||
|  |   public void led(int R, int G, int B){ | ||||||
|  |     led.setLEDs(R, G, B); | ||||||
|  |   } | ||||||
|  |   @Override | ||||||
|  |   public void periodic() { | ||||||
|  |     // This method will be called once per scheduler run | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -6,28 +6,83 @@ package frc.robot.Subsystems; | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | import com.ctre.phoenix.motorcontrol.FeedbackDevice; | ||||||
|  | import com.ctre.phoenix.motorcontrol.StatusFrameEnhanced; | ||||||
| import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX; | import com.ctre.phoenix.motorcontrol.can.WPI_TalonSRX; | ||||||
|  |  | ||||||
| import com.revrobotics.CANSparkMax; | import com.revrobotics.CANSparkMax; | ||||||
| import com.revrobotics.CANSparkLowLevel.MotorType; | import com.revrobotics.CANSparkLowLevel.MotorType; | ||||||
|  |  | ||||||
|  | import edu.wpi.first.networktables.GenericEntry; | ||||||
|  | import edu.wpi.first.wpilibj.DigitalInput; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; | ||||||
| import edu.wpi.first.wpilibj2.command.SubsystemBase; | import edu.wpi.first.wpilibj2.command.SubsystemBase; | ||||||
|  |  | ||||||
|  |  | ||||||
| public class Lanceur extends SubsystemBase { | public class Lanceur extends SubsystemBase { | ||||||
|   /** Creates a new Lanceur. */ |   /** Creates a new Lanceur. */ | ||||||
|   public Lanceur() {} |   public Lanceur() { | ||||||
|  |    dashboard.addBoolean("limitswitch1", this::limitswitch1) | ||||||
|  |    .withSize(0,0).withPosition(1,2); | ||||||
|  |    dashboard.addBoolean("limitswitch2", this::limitswitch2) | ||||||
|  |    .withSize(0,0).withPosition(0,3); | ||||||
|  |    dashboard.addDouble("rottourel", this::distancetourel) | ||||||
|  |     .withSize(0,0).withPosition(1, 0); | ||||||
|  | } | ||||||
|  |   ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard"); | ||||||
|    |    | ||||||
|   final WPI_TalonSRX lanceur1 = new WPI_TalonSRX(0); |   final WPI_TalonSRX lanceur1 = new WPI_TalonSRX(0); | ||||||
|   final WPI_TalonSRX lanceur2 = new WPI_TalonSRX(1); |   final WPI_TalonSRX lanceur2 = new WPI_TalonSRX(1); | ||||||
|   final CANSparkMax tourel = new CANSparkMax(2, MotorType.kBrushed); |   final CANSparkMax tourelle = new CANSparkMax(2, MotorType.kBrushless); | ||||||
|  |   final DigitalInput limitswitch1 = new DigitalInput(0); | ||||||
|  |   final DigitalInput limitswitch2 = new DigitalInput(1); | ||||||
|  |   private GenericEntry vitesse = | ||||||
|  |         dashboard.add("vitesselanceur", 0.2)  | ||||||
|  |         .withSize(0,0) | ||||||
|  |         .withPosition(0, 2) | ||||||
|  |         .getEntry(); | ||||||
|  |          | ||||||
|  |   public void encodeur(double distance){ | ||||||
|  |     lanceur1.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative); | ||||||
|  |     lanceur2.configSelectedFeedbackSensor(FeedbackDevice.CTRE_MagEncoder_Relative); | ||||||
|  |     lanceur1.setStatusFramePeriod(StatusFrameEnhanced.Status_2_Feedback0, 1); | ||||||
|  |   } | ||||||
|  |   public void touchagedelimitswitch1(double distance){ | ||||||
|  |     tourelle.getEncoder().setPosition(distance); | ||||||
|  |   } | ||||||
|  |   public void touchagedelimitswitch2(double distance){ | ||||||
|  |     tourelle.getEncoder().setPosition(distance); | ||||||
|  |   } | ||||||
|  |   public void masterslave(){ | ||||||
|  |     lanceur2.follow(lanceur1); | ||||||
|  |     lanceur2.setInverted(true); | ||||||
|  |   } | ||||||
|   public void lance(double vitesse){ |   public void lance(double vitesse){ | ||||||
|     lanceur1.set(vitesse); |     lanceur1.set(vitesse); | ||||||
|     lanceur2.set(-vitesse); |  | ||||||
|   } |   } | ||||||
|   public void tourelRotation(double vitesse){ |   public void lance(){   | ||||||
|     tourel.set(vitesse); |     lance(vitesse.getDouble(0.2)); | ||||||
|   } |   } | ||||||
|   public void setPID(double p, double i, int d) { |   public void tourelRotation(double x, double y, double rotation){ | ||||||
|  |     tourelle.set(rotation); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public double vitessetourel(){ | ||||||
|  |    return (tourelle.getEncoder().getVelocity());  | ||||||
|  |   } | ||||||
|  |   public double distancetourel(){ | ||||||
|  |     return (tourelle.getEncoder().getPosition()); | ||||||
|  |   } | ||||||
|  |   public void PIDlanceur(double p, double i, double d) { | ||||||
|  |    lanceur1.config_kP(0, p); | ||||||
|  |    lanceur1.config_kI(0, i); | ||||||
|  |    lanceur1.config_kD(0, d); | ||||||
|  |   } | ||||||
|  |   public boolean limitswitch1(){ | ||||||
|  |     return limitswitch1.get(); | ||||||
|  |   } | ||||||
|  |    public boolean limitswitch2(){ | ||||||
|  |     return limitswitch2.get(); | ||||||
|   }  |   }  | ||||||
|   @Override |   @Override | ||||||
|   public void periodic() { |   public void periodic() { | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								src/main/java/frc/robot/Subsystems/Limelight3G.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/main/java/frc/robot/Subsystems/Limelight3G.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | |||||||
|  | // Copyright (c) FIRST and other WPILib contributors. | ||||||
|  | // Open Source Software; you can modify and/or share it under the terms of | ||||||
|  | // the WPILib BSD license file in the root directory of this project. | ||||||
|  |  | ||||||
|  | package frc.robot.Subsystems; | ||||||
|  |  | ||||||
|  | import edu.wpi.first.wpilibj2.command.SubsystemBase; | ||||||
|  | import edu.wpi.first.net.PortForwarder; | ||||||
|  | import edu.wpi.first.networktables.NetworkTable; | ||||||
|  | import edu.wpi.first.networktables.NetworkTableEntry; | ||||||
|  | import edu.wpi.first.networktables.NetworkTableInstance; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; | ||||||
|  | import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; | ||||||
|  |  | ||||||
|  | public class Limelight3G extends SubsystemBase { | ||||||
|  |   ShuffleboardTab dashboard = Shuffleboard.getTab("dashboard"); | ||||||
|  |   NetworkTable table = NetworkTableInstance.getDefault().getTable("limelight"); | ||||||
|  |   NetworkTableEntry tx = table.getEntry("tx"); | ||||||
|  |   NetworkTableEntry ty = table.getEntry("ty"); | ||||||
|  |   NetworkTableEntry pipeline = table.getEntry("pipeline"); | ||||||
|  |   NetworkTableEntry tv = table.getEntry("tv"); | ||||||
|  |   NetworkTableEntry camMode = table.getEntry("camMode"); | ||||||
|  |   NetworkTableEntry tid = table.getEntry("tid"); | ||||||
|  |  | ||||||
|  |   /** Creates a new Limelight. */ | ||||||
|  |   public Limelight3G() { | ||||||
|  |     dashboard.addDouble("tv", this::getv).withSize(0, 0).withPosition(1,3); | ||||||
|  |     for (int port = 5800; port <= 5807; port++) { | ||||||
|  |       PortForwarder.add(port, "limelight.local", port); | ||||||
|  |   }} | ||||||
|  |   public  double getx(){ | ||||||
|  |     return tx.getDouble(0);  | ||||||
|  |   } | ||||||
|  |   public double gety(){ | ||||||
|  |     return ty.getDouble(0); | ||||||
|  |   } | ||||||
|  |   public double getv(){ | ||||||
|  |     return tv.getDouble(0); | ||||||
|  |   } | ||||||
|  |   public void setpipeline(){ | ||||||
|  |      pipeline.setNumber(0); | ||||||
|  |   } | ||||||
|  |   public void setcamMode(){ | ||||||
|  |     camMode.setNumber(0); | ||||||
|  |   } | ||||||
|  |   public double getTid(){ | ||||||
|  |     return tid.getDouble(0); | ||||||
|  |   } | ||||||
|  |   @Override | ||||||
|  |   public void periodic() { | ||||||
|  |     // This method will be called once per scheduler run | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								vendordeps/PathplannerLib.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								vendordeps/PathplannerLib.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | { | ||||||
|  |     "fileName": "PathplannerLib.json", | ||||||
|  |     "name": "PathplannerLib", | ||||||
|  |     "version": "2024.2.8", | ||||||
|  |     "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786", | ||||||
|  |     "frcYear": "2024", | ||||||
|  |     "mavenUrls": [ | ||||||
|  |         "https://3015rangerrobotics.github.io/pathplannerlib/repo" | ||||||
|  |     ], | ||||||
|  |     "jsonUrl": "https://3015rangerrobotics.github.io/pathplannerlib/PathplannerLib.json", | ||||||
|  |     "javaDependencies": [ | ||||||
|  |         { | ||||||
|  |             "groupId": "com.pathplanner.lib", | ||||||
|  |             "artifactId": "PathplannerLib-java", | ||||||
|  |             "version": "2024.2.8" | ||||||
|  |         } | ||||||
|  |     ], | ||||||
|  |     "jniDependencies": [], | ||||||
|  |     "cppDependencies": [ | ||||||
|  |         { | ||||||
|  |             "groupId": "com.pathplanner.lib", | ||||||
|  |             "artifactId": "PathplannerLib-cpp", | ||||||
|  |             "version": "2024.2.8", | ||||||
|  |             "libName": "PathplannerLib", | ||||||
|  |             "headerClassifier": "headers", | ||||||
|  |             "sharedLibrary": false, | ||||||
|  |             "skipInvalidPlatforms": true, | ||||||
|  |             "binaryPlatforms": [ | ||||||
|  |                 "windowsx86-64", | ||||||
|  |                 "linuxx86-64", | ||||||
|  |                 "osxuniversal", | ||||||
|  |                 "linuxathena", | ||||||
|  |                 "linuxarm32", | ||||||
|  |                 "linuxarm64" | ||||||
|  |             ] | ||||||
|  |         } | ||||||
|  |     ] | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user