Skip to content

Commit d35ed75

Browse files
committed
Update keyboard control
1 parent 427c6a6 commit d35ed75

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed

Car-Module/js/car.js

+7
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ function updateMotion() {
6767
fuzzyControl();
6868
else if (geneticRun)
6969
geneticAlgorithm();
70+
else if (psoRun)
71+
particleSwarmOptimization();
7072
setTimeout(updateMotion, 1000 / speed);
7173
}
7274

@@ -168,6 +170,11 @@ document.onkeydown = function (e) {
168170
geneticStart();
169171
break;
170172

173+
case 80:
174+
// Particle Swarm Optimization (P)
175+
psoStart();
176+
break;
177+
171178
case 32:
172179
case 77:
173180
// Start/Stop (Space & M)

Fuzzy-Control-System/js/fuzzy.js

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function fuzzyStart(parameter) {
1414
if (fuzzyRun) {
1515
document.getElementById('fuzzyStart').innerHTML = 'Stop (F)';
1616
geneticStart('stop');
17+
psoStart('stop');
1718
startMotion('start');
1819
} else {
1920
document.getElementById('fuzzyStart').innerHTML = 'Start (F)';

Genetic-Algorithm/js/algorithm.js

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ function geneticStart(parameter) {
2626
if (geneticRun) {
2727
document.getElementById('geneticStart').innerHTML = 'Stop (G)';
2828
fuzzyStart('stop');
29+
psoStart('stop');
2930
startMotion('start');
3031
} else {
3132
document.getElementById('geneticStart').innerHTML = 'Start (G)';
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
var psoRun = false;
2+
var swarmSize = 512;
3+
4+
function psoStart(parameter) {
5+
switch (parameter) {
6+
case 'start':
7+
psoRun = true;
8+
break;
9+
case 'stop':
10+
psoRun = false;
11+
break;
12+
default:
13+
psoRun = !psoRun;
14+
}
15+
if (psoRun) {
16+
document.getElementById('psoStart').innerHTML = 'Stop (P)';
17+
fuzzyStart('stop');
18+
geneticStart('stop');
19+
startMotion('start');
20+
} else {
21+
document.getElementById('psoStart').innerHTML = 'Start (P)';
22+
startMotion('stop');
23+
}
24+
}
25+
26+
function particleSwarmOptimization() {
27+
/*var output = 0;
28+
if (dimension == 3) {
29+
output = bestGene.rbf.getOutput([distanceCenter, distanceRight, distanceLeft]);
30+
} else if (dimension == 5) {
31+
output = bestGene.rbf.getOutput([posX, posY, distanceCenter, distanceRight, distanceLeft]);
32+
}
33+
angleWheel = (output * 80.0) - 40;
34+
readAngleWheel();*/
35+
}

index.html

+6
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@
6565
<label for="mutationRate">Mutation Rate:</label>
6666
<input id="mutationRate" type="text" value="0.5" style="width:20px" oninput="updateMutationRate(this.value)" />
6767
</p>
68+
<p>Particle Swarm Optimization:
69+
<button id="psoTrain" onclick="psoTrain()">Train</button>
70+
<button id="psoStart" onclick="psoStart()" disabled="disabled">Start (P)</button>
71+
</p>
6872
<p>
6973
<textarea id="data4D" style="display:none"></textarea>
7074
<textarea id="data6D" style="display:none"></textarea>
@@ -93,6 +97,8 @@
9397
<script src="./Genetic-Algorithm/js/RBF.js"></script>
9498
<script src="./Genetic-Algorithm/js/gene.js"></script>
9599
<script src="./Genetic-Algorithm/js/algorithm.js"></script>
100+
<script src="./Particle-Swarm-Optimization/js/particle.js"></script>
101+
<script src="./Particle-Swarm-Optimization/js/swarm.js"></script>
96102
<script src="./Car-Module/js/scene.js"></script>
97103
<script src="./Car-Module/js/sensor.js"></script>
98104
<script src="./Car-Module/js/car.js"></script>

0 commit comments

Comments
 (0)