From 28121fe85382fc633abd8c35a128ef1e6d0dc441 Mon Sep 17 00:00:00 2001 From: Daniel Stonier Date: Mon, 23 Feb 2015 22:08:30 +0900 Subject: [PATCH] [make_a_map] updated and compiling for indigo. This updates the api for indigo with the changes discussed in #42. --- .../android_apps/make_a_map/MainActivity.java | 32 +++++++++++++++---- .../make_a_map/ViewControlLayer.java | 19 ++++------- settings.gradle | 2 +- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/MainActivity.java b/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/MainActivity.java index a1f48ab..27d114f 100644 --- a/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/MainActivity.java +++ b/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/MainActivity.java @@ -36,7 +36,10 @@ import map_store.SaveMapResponse; import com.github.rosjava.android_remocons.common_tools.apps.RosAppActivity; +import com.google.common.collect.Lists; + import org.ros.android.view.RosImageView; +import org.ros.android.view.visualization.layer.Layer; import org.ros.namespace.NameResolver; import org.ros.node.NodeConfiguration; import org.ros.node.NodeMainExecutor; @@ -291,17 +294,22 @@ protected void init(NodeMainExecutor nodeMainExecutor) { viewControlLayer.addListener(new CameraControlListener() { @Override - public void onZoom(double focusX, double focusY, double factor) { + public void onZoom(float focusX, float focusY, float factor) { } + @Override + public void onDoubleTap(float x, float y) { + + } + @Override public void onTranslate(float distanceX, float distanceY) { } @Override - public void onRotate(double focusX, double focusY, double deltaAngle) { + public void onRotate(float focusX, float focusY, double deltaAngle) { } }); @@ -310,11 +318,21 @@ public void onRotate(double focusX, double focusY, double deltaAngle) { String scanTopic = remaps.get(getString(R.string.scan_topic)); String robotFrame = (String) params.get("robot_frame", getString(R.string.robot_frame)); - mapView.addLayer(viewControlLayer); - mapView.addLayer(new OccupancyGridLayer(appNameSpace.resolve(mapTopic).toString())); - mapView.addLayer(new LaserScanLayer(appNameSpace.resolve(scanTopic).toString())); - mapView.addLayer(new RobotLayer(robotFrame)); - NtpTimeProvider ntpTimeProvider = new NtpTimeProvider( + OccupancyGridLayer occupancyGridLayer = new OccupancyGridLayer(appNameSpace.resolve(mapTopic).toString()); + LaserScanLayer laserScanLayer = new LaserScanLayer(appNameSpace.resolve(scanTopic).toString()); + RobotLayer robotLayer = new RobotLayer(robotFrame); + + mapView.onCreate( + Lists.newArrayList( + viewControlLayer, + occupancyGridLayer, + laserScanLayer, + robotLayer + ) + ); + + + NtpTimeProvider ntpTimeProvider = new NtpTimeProvider( InetAddressFactory.newFromHostString("192.168.0.1"), nodeMainExecutor.getScheduledExecutorService()); ntpTimeProvider.startPeriodicUpdates(1, TimeUnit.MINUTES); diff --git a/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/ViewControlLayer.java b/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/ViewControlLayer.java index 81a2e23..be59097 100644 --- a/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/ViewControlLayer.java +++ b/make_a_map/src/main/java/com/github/rosjava/android_apps/make_a_map/ViewControlLayer.java @@ -20,7 +20,6 @@ import java.util.concurrent.ExecutorService; import android.content.Context; -import android.os.Handler; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.ScaleGestureDetector; @@ -30,7 +29,6 @@ import com.github.rosjava.android_remocons.common_tools.apps.AppParameters; import org.ros.android.view.RosImageView; -import org.ros.android.view.visualization.Camera; import org.ros.android.view.visualization.RotateGestureDetector; import org.ros.android.view.visualization.VisualizationView; import org.ros.android.view.visualization.layer.CameraControlLayer; @@ -38,7 +36,6 @@ import org.ros.concurrent.ListenerGroup; import org.ros.concurrent.SignalRunnable; import org.ros.node.ConnectedNode; -import org.ros.rosjava_geometry.FrameTransformTree; /** * @author murase@jsk.imi.i.u-tokyo.ac.jp (Kazuto Murase) @@ -73,7 +70,6 @@ public ViewControlLayer(final Context context, final ViewGroup mainLayout, final ViewGroup sideLayout, final AppParameters params) { - super(context,executorService); this.context = context; @@ -163,9 +159,8 @@ private void swapViews() { } @Override - public void onStart(ConnectedNode connectedNode, Handler handler, - FrameTransformTree frameTransformTree, final Camera camera) { - handler.post(new Runnable() { + public void onStart(final VisualizationView view, ConnectedNode connectedNode) { + view.post(new Runnable() { @Override public void run() { translateGestureDetector = @@ -174,7 +169,7 @@ public void run() { public boolean onScroll(MotionEvent event1, MotionEvent event2, final float distanceX, final float distanceY) { if (mapViewGestureAvaiable) { - camera.translate(-distanceX, distanceY); + view.getCamera().translate(-distanceX, distanceY); listeners.signal(new SignalRunnable() { @Override public void run(CameraControlListener listener) { @@ -193,9 +188,9 @@ public void run(CameraControlListener listener) { public boolean onRotate(MotionEvent event1, MotionEvent event2, final double deltaAngle) { if (mapViewGestureAvaiable) { - final double focusX = (event1.getX(0) + event1.getX(1)) / 2; - final double focusY = (event1.getY(0) + event1.getY(1)) / 2; - camera.rotate(focusX, focusY, deltaAngle); + final float focusX = (event1.getX(0) + event1.getX(1)) / 2; + final float focusY = (event1.getY(0) + event1.getY(1)) / 2; + view.getCamera().rotate(focusX, focusY, deltaAngle); listeners.signal(new SignalRunnable() { @Override public void run(CameraControlListener listener) { @@ -222,7 +217,7 @@ public boolean onScale(ScaleGestureDetector detector) { final float focusX = detector.getFocusX(); final float focusY = detector.getFocusY(); final float factor = detector.getScaleFactor(); - camera.zoom(focusX, focusY, factor); + view.getCamera().zoom(focusX, focusY, factor); listeners.signal(new SignalRunnable() { @Override public void run(CameraControlListener listener) { diff --git a/settings.gradle b/settings.gradle index bdfda07..cef5d94 100644 --- a/settings.gradle +++ b/settings.gradle @@ -16,7 +16,7 @@ include 'teleop' include 'map_nav' -/* include 'make_a_map' +/* include 'map_manager' */