diff --git a/car_fmw/src/Control.kt b/car_fmw/src/Control.kt
index 57c4ecd3610..584240a61b5 100644
--- a/car_fmw/src/Control.kt
+++ b/car_fmw/src/Control.kt
@@ -73,7 +73,6 @@ object Control {
val attempts = request.attempts
val distances = IntArray(size)
-
var i = 0
while (i < size) {
distances[i] = sonarMeasure(request.smoothing, attempts[i], angles[i], request.windowSize)
@@ -89,11 +88,9 @@ object Control {
var i = 0
while (i < attempts) {
data[i] = Sonar.getSmoothDistance(angle, windowSize)
-
if (smoothing.id == SonarRequest.Smoothing.NONE.id && data[i] != -1) {
return data[i]
}
-
i++
}
diff --git a/server/.idea/compiler.xml b/server/.idea/compiler.xml
index 96cc43efa6a..4dfdaaf6193 100644
--- a/server/.idea/compiler.xml
+++ b/server/.idea/compiler.xml
@@ -18,5 +18,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/gradle.xml b/server/.idea/gradle.xml
index 2d5721d43e3..05e52194ddf 100644
--- a/server/.idea/gradle.xml
+++ b/server/.idea/gradle.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/server/.idea/misc.xml b/server/.idea/misc.xml
index ee2a58cb493..20cd4f70c34 100644
--- a/server/.idea/misc.xml
+++ b/server/.idea/misc.xml
@@ -13,8 +13,8 @@
-
-
+
+
diff --git a/server/.idea/modules.xml b/server/.idea/modules.xml
index 5f7ca56962f..7737f17b242 100644
--- a/server/.idea/modules.xml
+++ b/server/.idea/modules.xml
@@ -3,6 +3,8 @@
+
+
\ No newline at end of file
diff --git a/server/.idea/modules/server.iml b/server/.idea/modules/server.iml
index 94a5e3f4ba6..ae202140953 100644
--- a/server/.idea/modules/server.iml
+++ b/server/.idea/modules/server.iml
@@ -1,35 +1,12 @@
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/server/src/main/java/RoomScanner/CarController.kt b/server/src/main/java/RoomScanner/CarController.kt
index b075b0e6a94..a9528065b85 100644
--- a/server/src/main/java/RoomScanner/CarController.kt
+++ b/server/src/main/java/RoomScanner/CarController.kt
@@ -24,12 +24,12 @@ class CarController(var car: Car) {
private var angle = 0.0
fun moveTo(to: Pair) {
- val oldAngle = angle
- rotateOn(estimateAngle(position, to))
+ var driveAngle = (Math.toDegrees(Math.atan2(to.first, to.second)) + 360) % 360
+ rotateOn(angleDistance(angle, driveAngle))
drive(Direction.FORWARD, Math.max(0.0, distance(position, to)).toInt() - WALL_DISTANCE)
- rotateOn(oldAngle)
- }
+ position = to
+ }
fun rotateOn(target: Double) {
val rotateAngle = angleDistance(angle, target)
@@ -46,7 +46,7 @@ class CarController(var car: Car) {
}
fun scan(angles: IntArray): List> {
- val request = SonarRequest.BuilderSonarRequest(angles, IntArray(angles.size, { 5 }), 0, SonarRequest.Smoothing.MEDIAN).build()
+ val request = SonarRequest.BuilderSonarRequest(angles, IntArray(angles.size, { 1 }), 10, SonarRequest.Smoothing.MEDIAN).build()
val data = serialize(request.getSizeNoTag(), { i -> request.writeTo(i) })
val response = CarClient.sendRequest(car, CarClient.Request.SONAR, data).get().responseBodyAsBytes
diff --git a/server/src/main/java/RoomScanner/RoomScanner.kt b/server/src/main/java/RoomScanner/RoomScanner.kt
index c0e9abcaa91..7d958564fab 100644
--- a/server/src/main/java/RoomScanner/RoomScanner.kt
+++ b/server/src/main/java/RoomScanner/RoomScanner.kt
@@ -1,16 +1,17 @@
package RoomScanner
-class RoomScanner(val controller: CarController): Thread() {
+class RoomScanner(val controller: CarController) : Thread() {
private val points = mutableListOf>()
override fun run() {
+ println("Car connected ${controller.car.host}")
while (true) {
scan()
- println("[${points.joinToString { "[${it.first}, ${it.second}]" }}}]")
+ println(plot(points))
}
}
- fun scan() {
+ private fun scan() {
val horizon = IntArray(180 / 5, { it * 5 })
val iterationPoints = mutableListOf>()
@@ -27,4 +28,6 @@ class RoomScanner(val controller: CarController): Thread() {
controller.moveTo(target)
}
+ private fun plot(points: MutableList>) =
+ "x <- c(${points.joinToString { it.first.toInt().toString() }}) \n y <- c(${points.joinToString { it.second.toInt().toString() }})"
}
diff --git a/server/src/main/java/car/client/Client.kt b/server/src/main/java/car/client/Client.kt
index 430c6d75c17..bfa76837453 100644
--- a/server/src/main/java/car/client/Client.kt
+++ b/server/src/main/java/car/client/Client.kt
@@ -13,9 +13,10 @@ import java.net.ConnectException
import java.rmi.UnexpectedException
object Client {
- val group = NioEventLoopGroup()
- val bootstrap = makeBootstrap()
- val client = DefaultAsyncHttpClient()
+ private val group = NioEventLoopGroup()
+ private val bootstrap = makeBootstrap()
+ private val client = DefaultAsyncHttpClient()
+ private val timeout = 5 * 60 * 60 * 1000
fun shutDownClient() {
group.shutdownGracefully()
@@ -38,7 +39,7 @@ object Client {
}
fun makeRequest(request: String, data: ByteArray): ListenableFuture =
- client.preparePost(request).setBody(data).execute() ?: throw UnexpectedException(request)
+ client.preparePost(request).setBody(data).setRequestTimeout(timeout).execute() ?: throw UnexpectedException(request)
private fun makeBootstrap(): Bootstrap {
val b = Bootstrap()