You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To log into your Autodesk account, open the left menu and click on "APS Login".
37
+
38
+

39
+
40
+

41
+
42
+
Upon successful login, you should see a notification in the bottom-right, as well as a greeting and your profile picture replacing the "APS Login" button.
Once logged in, when you open the "Spawn Asset" panel, the remote assets section will begin to search your projects and show any and all Synthesis assemblies available for importing.
51
+
52
+

53
+
54
+
After you've imported them for the first time, they will be saved for later use and won't require APS login to access so long as they stay saved in your browser.
55
+
56
+
## Need More Help?
57
+
58
+
If you need help with anything regarding Synthesis or it's related features please reach out through our
59
+
[discord sever](https://www.discord.gg/hHcF9AVgZA). It's the best way to get in contact with the community and our current developers.
The Synthesis simulator comes with code simulation already integrated. However, a development environment for what ever code your are trying to simulate will be required.
17
-
Synthesis' code simulation relies on the WPILib HALSim extensions, specifically the websocket-client extension. To enable this for your project, add the following lines to
18
-
your `build.gradle` file.
15
+
Synthesis' code simulation relies on the WPILib HALSim extensions, specifically the websocket-client extension. You'll need to make the following changes to your `build.gradle` in order to properly simulate your code in Synthesis.
16
+
17
+
### 1. Desktop Support
18
+
19
+
You'll need to enable desktop support for your project in order to run the HALSim:
20
+
21
+
```java
22
+
def includeDesktopSupport =true
23
+
```
24
+
25
+
### 2. Websocket Server Extension
26
+
27
+
In order to communicate with your browser, you'll need to enable the websocket server extension with the following:
For CAN-based device support (TalonFX, CANSparkMax, most Gyros), you'll need our own library--SyntheSim. Currently only available for Java, SyntheSim adds additional support for third party devices that don't follow WPILib's web socket specification. It's still in early development, so you'll need to clone and install the library locally in order to use it:
All of these instructions can be found in the [SyntheSim README](https://github.com/Autodesk/synthesis/blob/prod/simulation/SyntheSimJava/README.md).
64
+
65
+
SyntheSim is very much a work in progress. If there is a particular device that isn't compatible, feel free to head to our [GitHub](https://github.com/Autodesk/synthesis) to see about contributing.
66
+
67
+
### 4. HALSim GUI
68
+
69
+
This should be added by default, but in case it isn't, add this to your `build.gradle` to enable the SimGUI extension by default.
70
+
71
+
```java
72
+
wpi.sim.addGui().defaultEnabled =true
73
+
```
74
+
75
+
This will allow you to change the state of the robot, as well as hook up any joysticks you'd like to use during teleop. You must use this GUI in order
76
+
to bring your robot out of disconnected mode, otherwise we won't be able to change the state of your robot from within the app.
77
+
78
+
### 5. Start your code
79
+
80
+
To start your robot code, you can use the following simulate commands with gradle:
81
+
82
+
```bash
83
+
$ ./gradlew simulateJava
84
+
```
85
+
86
+
or for C++:
87
+
88
+
```bash
89
+
$ ./gradlew simulateNative
23
90
```
24
91
25
-
<b>NOTE:</b> The GUI extension interfaces really well and add Joystick/Controller support to your code, whereas Synthesis currently only supports controllers for non-code simulation.
26
-
If you wish to test using your controllers, I recommend using the GUI extension in conjunction.
92
+
WPILib also has a command from within VSCode you can use the start your robot code:
Once started, make sure in the SimGUI that your robot state is set to "Disabled", **not** "Disconnected".
99
+
100
+
### Spawning in a Robot
101
+
102
+
Open up [Fission](https://synthesis.autodesk.com/fission/) and spawn in a robot. Once spawned in, place it down and open the config panel. This can be
103
+
done by using the left-hand menu and navigating to your robot in the config panel, or by right-clicking on your robot and selecting the "Configure" option.
104
+
105
+
Next, switch the brain currently controlling the robot. In order to give the simulation control over the robot, the brain must be switched from "Synthesis"
106
+
to "WPILib". At the moment, only one robot can be controlled by the simulation at a time.
107
+
108
+
In the top-right, there should be a connection status indicator. If your robot program was running prior to switching to the "WPILib" brain, it should connect
109
+
quickly.
110
+
111
+
### Simulation Configuration
112
+
113
+
Under your robot in the config panel, there should be a Simulation option now. Here you can find all the settings for the code simulation.
You can enabled auto reconnect incase you are having issues with this. In order for it to take affect, you have to enable the setting, then switch back to the "Synthesis"
120
+
brain and then back again to the "WPILib" brain. This setting will be saved.
121
+
122
+
#### Wiring Panel
27
123
28
-
### Setup (Robot Side)
124
+
This panel can be used to "wire up" your robot. It will show you all the inputs and outputs available from both the simulation and robot. The handles (little circles with
125
+
labels) are colored to indicate the type of data they represent. Hover over the information icons for more information.
29
126
30
-
Inside of Synthesis, you must configure your "IO map" so we know what signals go where. You can access the configuration modal on the side bar.
31
-
Once inside the configuration modal, you can add the devices you want to add support for.
32
-
<br/>
33
-
<b>NOTE:</b> Currently, due to the way the websocket extension works, no CAN devices are supported. We plan on bringing CAN support for the 2023 Summer release or potentially earlier.
34
-
At the moment, PWM and Quadrature Encoders (encoders that use 2 DIO ports each) are supported, with more device types and sensors on the way.
127
+

35
128
36
-
## Usage
129
+
The bottom-left controls can be used to zoom in/out, fit your view to the nodes, and add junction nodes for connection many connections to many connections.
37
130
38
-
###Synthesis
131
+
#### Auto Testing
39
132
40
-
Inside of Synthesis, open up the DriverStation. Once connected, you can use it like normal. Our DriverStation is currently limited in its features, so if you need anything beyond
41
-
enabling and choosing between Telop and Auto, I recommend using the GUI extension for more functionality.
133
+
The Auto Testing panel allows for iterative testing of an autonomous routine. I'd recommend making sure that the auto reconnect option is enabled.
42
134
43
-
### Running the code Simulation
135
+

44
136
45
-
I recommend using VSCode and the WPILib Suite extension for running the code simulation. Alternatively you can use this command:
You can specify a max time, alliance station, and game data. Once you've decided on those and have place the robot where you want, you can start your auto routine.
138
+
After the specified amount of time, or when the stop button is pressed, the simulation will freeze and you can either reset to where you started, or close the panel.
47
139
48
140
## Need More Help?
49
141
50
142
If you need help with anything regarding Synthesis or it's related features please reach out through our
51
-
[discord sever](https://www.discord.gg/hHcF9AVgZA). It's the best way to get in contact with the community and our current developers.
143
+
[discord server](https://www.discord.gg/hHcF9AVgZA). It's the best way to get in contact with the community and our current developers.
0 commit comments