Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 package org.ros.android.android_tutorial_teleop;
00018
00019 import com.google.common.collect.Lists;
00020
00021 import android.os.Bundle;
00022 import android.view.Menu;
00023 import android.view.MenuInflater;
00024 import android.view.MenuItem;
00025 import org.ros.address.InetAddressFactory;
00026 import org.ros.android.RosActivity;
00027 import org.ros.android.view.VirtualJoystickView;
00028 import org.ros.android.view.visualization.VisualizationView;
00029 import org.ros.android.view.visualization.layer.CameraControlLayer;
00030 import org.ros.android.view.visualization.layer.LaserScanLayer;
00031 import org.ros.android.view.visualization.layer.Layer;
00032 import org.ros.android.view.visualization.layer.OccupancyGridLayer;
00033 import org.ros.android.view.visualization.layer.PathLayer;
00034 import org.ros.android.view.visualization.layer.PosePublisherLayer;
00035 import org.ros.android.view.visualization.layer.PoseSubscriberLayer;
00036 import org.ros.android.view.visualization.layer.RobotLayer;
00037 import org.ros.node.NodeConfiguration;
00038 import org.ros.node.NodeMainExecutor;
00039
00047 public class MainActivity extends RosActivity {
00048
00049 private VirtualJoystickView virtualJoystickView;
00050 private VisualizationView visualizationView;
00051
00052 public MainActivity() {
00053 super("Teleop", "Teleop");
00054 }
00055
00056 @Override
00057 public boolean onCreateOptionsMenu(Menu menu) {
00058 MenuInflater inflater = getMenuInflater();
00059 inflater.inflate(R.menu.settings_menu, menu);
00060 return true;
00061 }
00062
00063 @Override
00064 public boolean onOptionsItemSelected(MenuItem item) {
00065 switch (item.getItemId()) {
00066 case R.id.virtual_joystick_snap:
00067 if (!item.isChecked()) {
00068 item.setChecked(true);
00069 virtualJoystickView.EnableSnapping();
00070 } else {
00071 item.setChecked(false);
00072 virtualJoystickView.DisableSnapping();
00073 }
00074 return true;
00075 default:
00076 return super.onOptionsItemSelected(item);
00077 }
00078 }
00079
00080 @Override
00081 public void onCreate(Bundle savedInstanceState) {
00082 super.onCreate(savedInstanceState);
00083 setContentView(R.layout.main);
00084 virtualJoystickView = (VirtualJoystickView) findViewById(R.id.virtual_joystick);
00085 visualizationView = (VisualizationView) findViewById(R.id.visualization);
00086 visualizationView.getCamera().jumpToFrame("map");
00087 visualizationView.onCreate(Lists.<Layer>newArrayList(new CameraControlLayer(),
00088 new OccupancyGridLayer("map"), new PathLayer("move_base/NavfnROS/plan"), new PathLayer(
00089 "move_base_dynamic/NavfnROS/plan"), new LaserScanLayer("base_scan"),
00090 new PoseSubscriberLayer("simple_waypoints_server/goal_pose"), new PosePublisherLayer(
00091 "simple_waypoints_server/goal_pose"), new RobotLayer("base_footprint")));
00092 }
00093
00094 @Override
00095 protected void init(NodeMainExecutor nodeMainExecutor) {
00096 visualizationView.init(nodeMainExecutor);
00097 NodeConfiguration nodeConfiguration =
00098 NodeConfiguration.newPublic(InetAddressFactory.newNonLoopback().getHostAddress(),
00099 getMasterUri());
00100 nodeMainExecutor
00101 .execute(virtualJoystickView, nodeConfiguration.setNodeName("virtual_joystick"));
00102 nodeMainExecutor.execute(visualizationView, nodeConfiguration.setNodeName("android/map_view"));
00103 }
00104 }