Swiffee - Minikame Simulator
@author Laksh Bhambhani, Megan Choy @date April 9, 2019 - May 22, 2019
This program makes a simulation of a Quadruped moving, but it can also be used to move the robot in real life. To move the robot, the user will use pre-made methods. Kids who would like to try testing a Quadruped, but don't have one, can use this simulation. It is also useful to try coding and using robots in an easy and simple way.
There is also a simulation of the Quadruped to mimic what it would look like in real life. To code, there is a simple IDE and a terminal to show how the Quadruped is working and if there are any errors. New coders can easily code with simple methods that can be used in many ways.
Open the executable jar file. If you are opening from the code, go into folder Quadruped then class SimulatorWindow and start coding with The Java API (no need to worry, you need to code in java and you definitely know this language): JAVA API or https://lakshbhambhani.github.io/SwiffeeAPI/
To see an example, go to "File" in the top left and then "Open" and open Examples.txt. You can type methods that are in the Java APi. There are also variables like booleans and integers and you can even type if statements. Find the syntax in the Java API
If there is a problem, report the bug under "Help" and then click "Report a Bug".
First, type in the code at the SwiffeeIDE and click "Run" once you are done to see the robot move. If you are connected to a bot, you can click the "Run on Bot" button and see the simulator and bot run at the same time!
|About Panel||Displays the version of the software you are using plus names of devlopers|
|Body||the blueprint class representing the body of the Quadruped|
|ControlMultithread||Tries to run XboxListener and Xbox Map Window together using multithreading|
|ControlPanel||Displays the XboxMap to user|
|ControlPanelJFrame||The window to use Xbox controller to control the bot|
|CoordinateSystem||Used to display animations in Swiffee|
|FullBody||the class instantiating the Body and Legs classes|
|Java||the analyzer of the code the user inputs|
|Legs||the blueprint class representing the legs of the Quadruped|
|LocalServer||a local server to test server commands for running the bot|
|LocalServerThread||A class for multithreading the localServer so that it doesn't affect GUI|
|LocalURLReader||Used for reading text on localServer URL|
|SettingsPanel||User can change the IP of the bot from here|
|Simulator||the panel drawing the body and legs of the Quadruped|
|SimulatorMenu||Contains the Menubar options for Swiffee|
|SimulatorWindow||the window and graphics of the Quadruped|
|URLReader||Reads the text on a URL. Helps us know whether Bot is moving or no|
|Xbox||A runnable class used for listening during Multithreading|
|XboxControl||Contains methods to use Xbox without instantiating Xbox many times|
|XboxListener||This is where we listen to Xbox inputs and process it on the bot|
Laksh works with the hardware and software regarding the robot. The classes like SFTPBean, ScptTo, and ConnectToBot are all used to send and execute code on the actual robot. He also works on the Android and IOS app to control the robot. For the simulator, he made the Java class which analyzes what the user codes. Also Xbox Listeners are made by him.
Megan works on the simulator, animations, and the other requirements like the ReadME and UML diagram. She works with the classes regarding to the simulator graphics and window and the images like Body and Legs.
JSch allows you to connect to an ssh server and use port forwarding. We use this to connect to the bot directly and access files or write files instead of connecting to the bot's server and directly triggering commands.
A library to use gamepads in Java in a better way. Cloned from William A Hartman. We use this library to listen to xbox inputs which is connected to the simulator via your computer.
Jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods. Used for connecting to Bot's server.
HTML Parser is used to get the text which is on a specific URL. Used to read the message on the bot's status page which tells you what it is doing. If bot is doing the command, then Simulator will also be forced to show the same animation.
Animations for bow, bendBack, jumpUp, jumpBack are not the best... The legs of the quadruped on the simulator can sometimes "come off" when used too much. Method pushUp only works on the robot (does nothing on the simulator).
Want to know more?
Read the Swiffee Docs
All packages in this repository are released under the MIT License.