Giter VIP home page Giter VIP logo

android_apps's People

Contributors

adamantivm avatar bit-pirate avatar corot avatar dwlee avatar ernestmc avatar florgrosso avatar gerkey avatar kazutomurase avatar stonier avatar talregev avatar velveteenrobot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android_apps's Issues

MasterChecker check rapp manager availability

The new robot app manager is aware and controls access to remote controllers and has both Invite and Status services to reflect that.

The master checker should check the status handle and:

  • highlight the image in some way if it is busy.
  • block entering to the list apps activity if it is busy (toast message?).

Duplicate finish requests

Listener getting duplicate requests for both the listener and robot remocon.

Duplicate finish request for ActivityRecord...com.github.robotics_in_concert.rocon_android.robot_remocon/.RobotRemocon

Map navigation crashes when it reads a big map

For example, Willow maps.

OccupancyGridLayer, lines 104 and 105 it check for a maximum size of 1024x1024 with Preconditions.checkArgument, what throws an exception if the map is bigger.

Provide instead a polite message and ask to choose another map. Also, the hardcoded 1024 should be a parameter.

Map_Nav got error.. please help (other apps too except for teleop)

I tried to clone 'indigo''s brach.
I noticed that the 'addLayer' part was removed from visualization view and I replaced the code
as stated in #42
However, after I replaced
mapView.addLayer(viewControlLayer);
mapView.addLayer(occupancyGridLayer);
mapView.addLayer(laserScanLayer);
mapView.addLayer(pathLayer);
mapView.addLayer(mapPosePublisherLayer);
mapView.addLayer(initialPoseSubscriberLayer);

to

    mapView.onCreate(Lists.<Layer>newArrayList(viewControlLayer,occupancyGridLayer,laserScanLayer,pathLayer,mapPosePublisherLayer,initialPoseSubscriberLayer));

I get the following error:
Process: com.github.rosjava.android_apps.map_nav.indigo, PID: 10757
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalStateException: setRenderer has already been called for this instance.
at android.opengl.GLSurfaceView.checkRenderThreadState(GLSurfaceView.java:1935)
at android.opengl.GLSurfaceView.setEGLConfigChooser(GLSurfaceView.java:470)
at android.opengl.GLSurfaceView.setEGLConfigChooser(GLSurfaceView.java:539)
at org.ros.android.view.visualization.VisualizationView.onCreate(VisualizationView.java:81)
at com.github.rosjava.android_apps.map_nav.MainActivity.init(MainActivity.java:161)
at org.ros.android.RosActivity$2.doInBackground(RosActivity.java:204)
at org.ros.android.RosActivity$2.doInBackground(RosActivity.java:201)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
at java.lang.Thread.run(Thread.java:818) 

Originally I assumed that it is because "mapview.oncreate(Lists.newArrayList());" was declared in oncreate method

After I erased that code, new error came up saying:

Process: com.github.rosjava.android_apps.map_nav.indigo, PID: 14839
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.opengl.GLSurfaceView$GLThread.surfaceCreated()' on a null object reference
at android.opengl.GLSurfaceView.surfaceCreated(GLSurfaceView.java:629)
at android.view.SurfaceView.updateWindow(SurfaceView.java:712)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:209)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1014)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2560)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1487)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7450)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)
at android.view.Choreographer.doCallbacks(Choreographer.java:695)
at android.view.Choreographer.doFrame(Choreographer.java:631)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

I tried checking every single libraries that are stated in error logs but I still cannot figure out what seems to be the problem.. Does any one have any idea?
Any suggestion would be appreciated..
If someone knows a directory that works, please do tell me.

My furthest and only assumption is that library is not directed properly..

Move rapp launching info from android app to app manager for direct connections

For direct connections the app manager currently uses the default app hardcoded into the android app (e.g. https://github.com/ros-java/android_apps/blob/hydro-devel/teleop/src/main/res/values/strings.xml).

This information is not used when using the robot remocon. If at some points it turns out that direct connections are essential, we should find a way to configure default rapps for android apps in the app manager.

Error importing the project

Hello,

When following the tutorial , I got this error:
Error:Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle.

I'm not behind an HTTP proxy. Is the android_apps repository still available ?

Package string from managing applications

Implement the full package string in the intent from a managing application of a RosAppActivity application.

This lets us hand back control without having to hardcode it to a single particular activity (I think).

How can I use make a map APP?

I have rplidar A2. and I want use the APP: make a map?
I run gmapping in my ubuntu .
but in android is nothing map .
I want to save map. but have some Error:
No such service /save_map of type world_canvas_msgs/SaveMap
please help me thx.

Build map_nav got errors

I got following errors in building map_nav module in Android Studio.

Error:(161, 16) error: cannot find symbol method addLayer(ViewControlLayer)
Error:(162, 16) error: cannot find symbol method addLayer(OccupancyGridLayer)
Error:(163, 16) error: cannot find symbol method addLayer(LaserScanLayer)
Error:(164, 16) error: cannot find symbol method addLayer(PathLayer)
Error:(165, 16) error: cannot find symbol method addLayer(MapPosePublisherLayer)
Error:(166, 16) error: cannot find symbol method addLayer(InitialPoseSubscriberLayer)

I post the same problem in ros answer as well. Plz help!! Thanks!!

http://answers.ros.org/question/220324/building-android_apps-errors-on-android-studio/

Teleop Code Structure

Hi guys.

I'm working on the code structure of the teleop of turtlebot (hydro).

Is there anyway possible to find out what code is being sent out when i shift the joystick up, down, left, etc?

I understand that the joystick it self is being imported from:

import org.ros.android.view.VirtualJoystickView;

From the best of my knowledge, I can't really figure out which part of the whole source code actually has the code that I'm looking for

I would like to play around with GUI itself. Well, let's say just inserting a 4 directional buttons (up, down, left, right) to move to the turtlebot.

What is the code that is needed to be sent out here?

How may i go about doing this?

Any help will be greatly appreciated. Thank you! :)

ROS teleop app to control custom robots?

Hi, I'm wondering whether ROS teleop can be used to control custom robots, instead of just the turtlebot? Because when I ran the app, I got the following error message:

03-20 09:11:42.048: E/AndroidRuntime(20661): Process: com.github.rosjava.android_apps.teleop, PID: 20661
03-20 09:11:42.048: E/AndroidRuntime(20661): org.ros.exception.RosRuntimeException: org.ros.exception.ServiceNotFoundException: No such service /turtlebot/start_app of type rocon_app_manager_msgs/StartApp
03-20 09:11:42.048: E/AndroidRuntime(20661):    at com.github.rosjava.android_apps.application_management.AppManager.startApp(AppManager.java:138)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at com.github.rosjava.android_apps.application_management.AppManager.onStart(AppManager.java:202)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:506)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:503)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at org.ros.concurrent.EventDispatcher.loop(EventDispatcher.java:43)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at org.ros.concurrent.CancellableLoop.run(CancellableLoop.java:56)
03-20 09:11:42.048: E/AndroidRuntime(20661): Caused by: org.ros.exception.ServiceNotFoundException: No such service /turtlebot/start_app of type rocon_app_manager_msgs/StartApp
03-20 09:11:42.048: E/AndroidRuntime(20661):    at org.ros.internal.node.DefaultNode.newServiceClient(DefaultNode.java:356)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at org.ros.internal.node.DefaultNode.newServiceClient(DefaultNode.java:372)
03-20 09:11:42.048: E/AndroidRuntime(20661):    at com.github.rosjava.android_apps.application_management.AppManager.startApp(AppManager.java:134)
03-20 09:11:42.048: E/ActivityManager(643): App crashed! Process: com.github.rosjava.android_apps.teleop

It seems that it's looking for a turtlebot specific service /turtlebot/start_app. I'm wondering whether such dependency is needed. Thanks

Dashboard not working on concerted robots.

Android apps cannot read diagnostics messages from concerts. This a known behavior, and cannot be fixed by now until reviewing concert working. So I label this as enhancement instead of bug

Use finish() instead of onDestroy()

Convert all the apps in this repo to use finish() instead of onDestroy().

Shouldn't call onDestroy() directly - all the apps in this repo are. This results in multiple calls to onDestroy() and subsequently multiple stop app calls. Refer to #3.

Rebase master off stable hydro dependencies

Master is a moving target that we can't commit development time to keep up with as we don't have anyone continuously working on the android code.

To avoid confusion, base our development branch off the core hydro branches and update to igloo when the cores have stable igloo branches as well.

  • Delete master branch
  • Create hydro-devel branch.

Put RosAppActivity on a diet

Lots of code that was basically detecting its own instance (ros app or app chooser or app chooser returning from an application) and creating alot of forked pathways in the class itself. Since not much of it is actually shared, we decided to split the classes as it is a hell of alot easier to debug.

Now just have to trim out the fat that we're not using in RosAppActivity.

Recent problem with android_apps

All of the sudden I've started getting this error, when trying to compile/build android_apps:

  • What went wrong:
    A problem occurred evaluating project ':application_management'.

    Could not create plugin of type 'LibraryPlugin'.

Timeout on image_transport tutorial

Hello!

I'm trying to test the android_tutorial_image_transport to receive video on my android. I've set up ROS_IP accordingly and I'm able to connect to the master but no video is received and I get the following error:

E/UpdatePublisherRunnable﹕ org.ros.internal.node.xmlrpc.XmlRpcTimeoutException: org.apache.xmlrpc.client.TimingOutCallback$TimeoutException: No response after waiting for 10000 milliseconds.

What could be causing this and is there as way to fix it? Thanks in advance!

Indigo camera update required

Most of the apps utilised the old Camera class which got updated for indigo. This stops map_nav, make_a_map, map_manager from compiling.

  • Camera -> XYOthographicCamera.
  • camera.toMetricCoordinates() -> camera.toCameraFrame()
  • FrameName->GraphName
  • draw(gl) -> draw(view, gl)
  • onStart(node, handler, frametree, camera) -> onStart(view, node)
  • camera -> view.getCamera()
  • frameTransformTree -> view.getFrameTransformTree()
  • view.addLayer() -> view.onCreate(Lists.<Layer>newArrayList(layer_a, layer_b));
  • handler.post() -> view.pose()

Map nav requires update for tf2 updates

/opt/android/src/android_apps/map_nav/src/main/java/com/github/ros_java/android_apps/map_nav/MapPosePublisherLayer.java:119: error: method toPoseStampedMessage in class Transform cannot be applied to given types;
                                        poseStamped = fixedPose.toPoseStampedMessage(
                                                               ^
  required: FrameName,Time,PoseStamped

Relevant update in rosjava_core: rosjava/rosjava_core@3e1bafa

Dashboard agnosticity

Need a new idea for the dashboard so folks don't have to 'magically' download the dashboard they need.

Off the top:

  • An install step just like the app install step to get the right dashboard corresponding to the robot.
  • OR completely generalise the dashboards with compatible protocols.

Probably implement the latter with an option for the former if a robot implements a custom dashboard. What were kazuto's plans?

Map_Nav add layer error.. cannot draw map and set pose, lase and etc at same time

While I was trying to build map_nav, I noticed that add layer part has several errors.

As I touched mini view at upper right side (the occupancy layer preview), the map just disappears

and only arrows and paths appears.

I tried to fix this problem by loading separate "main activity" and two layouts.

Initially, the map appears in large scale and camera view appears in small scale (first layout, swaped view in xml file).

If I touch the camera preview at upper right side, MainActivity is loaded again with different layout (the one that is in git hub, camera view in larger scale and map in smaller scale).

This method succeeded in loading map, however, the arrow and paths did not appear.

If I press the map for a long time, arrows and paths appears and simultaneously, another arrow appears at the position I long pressed but map still disappears.

So far, I figured out that I cannot call "occupancylayout" class and "lase", "path", " initial pose" classes at the same time. In another words, if the GLsurfaceview draws laser, path and initial pose, occupancy class is not called.

However, occasionally, highly rarely, occupancylayer class is called and map is shown in a short amount of time.

Does anyone have solution to original problem or to my solution?
mapView.addLayer(occupancyGridLayer);
mapView.addLayer(laserScanLayer);
mapView.addLayer(pathLayer);
mapView.addLayer(mapPosePublisherLayer);
mapView.addLayer(initialPoseSubscriberLayer);
mapView.addLayer(viewControlLayer)

Thank you.

Modularise RosAppActivity and RemoconActivity

Alot of startup logic that redirects the flow depending on whether its an app or remocon - ultimately making the rosappactivity difficult to work with. Not much of it is correlated, so probably better to split the two.

Direct connections failing

Cannot start listener directly with an app manager in pairing mode or standalone mode.

This is a probably by-product of the recent standalone-paired-concert overhaul by Jorge.

teleop: add a way to manage Virtual Joystick ranges

It would be very useful if the ranges of the topic "cmd_vel" should be customizable.

As far as I know, the virtual joypad emits normalized values for X and Y axis in the range [-1,+1]
It's ok for robots that have maximum forward speed of 1.0 m/sec and maximum rotation speed of 1 rad/sec, but there exists robots faster and robots slower.

What I'm suggesting is to add 2 text fields (or 2 sliders) to adjust the muximum forward and rotation values... the value from the two field (or sliders) must simply be multiplied to the value extracted by the movement of the joypad.

Values are calculated here:
https://github.com/ros-android/android_app_manager/blob/master/src/ros/android/views/JoystickView.java#L136
https://github.com/ros-android/android_app_manager/blob/master/src/ros/android/views/JoystickView.java#L137

Change visualization way of robot pose in make_a_map and map_nav

Currently, Make A Map app and Map Nav app show the robot pose via getting robot frame from tf message. This way is able to be useful in single robot environment. However, Using tf message is impossible in multi-robot environment like concert because tf message can not be sharable.
To more detail, when android app tries to show pose of specific robot among multi-robot using tf message, it can not know what robot pose should be shown from tf message because all robots publish the same frame name into tf message. Thus, we should use robot_pose_publisher to display robot pose in android app regardless of single robot and multi robot run time environments like qt_make_a_map.

What is purpose of using NtpTimeProvider?

I updated android apps because of upgrading android core into indigo. I found some strange code(following part). It led periodic socket error, however, its error did not make a trouble, so I commented this part because it annoyed me. I was wondering purpose of following part.

//      NtpTimeProvider ntpTimeProvider = new NtpTimeProvider(
//              InetAddressFactory.newFromHostString("192.168.0.1"),
//              nodeMainExecutor.getScheduledExecutorService());
//      ntpTimeProvider.startPeriodicUpdates(1, TimeUnit.MINUTES);
//      nodeConfiguration.setTimeProvider(ntpTimeProvider);

App crashes on start

I am connected via wifi with the turtlebot. Enter the robot URI in the app and click connect. And the app crashes.. Anything? turtlebot is running hydro

Thanks

map_nav not compile

android_apps/map_nav/src/main/java/com.github.rosjava.android_apps.map_nav/MapPosePublisherLayer.java:10: error: package move_base_msgs does not exist
import move_base_msgs.MoveBaseActionGoal;

It doesn't recognize move_base_msgs, even i has at repository folder with jars: org/ros/rosjava_messges/move_base_msgs
and at build.gradle of map_nav i have this line:
compile 'org.ros.rosjava_messages:move_base_msgs:[1.11,1.12)'
and it compile and don't say that this package are missing.

MapNav add activity?

I'm trying to add new activity called "SecondMainActivity"

This activity does exact same function as MainActivity in MainActivity except location of RosImageView and Visualization view are changed with each other.

Apparently, I have to register SecondMainActivity in Mainfest however, I failed because "SecondMainActivity" is not in the package "com.github.rosjava.android_apps.map_nav"

Could you please help..?

The reason why I am doing this is because when I click the visualization view(small rectangle shape on right upper part, AKA mapview) the map disappears and only an arrow is shown...

So rather than fixing the source library, I chose to make new activity which I think would be more easier.

Illegal call to VisualizationView.onCreate

In map_nav's MainActivity (and propably in the other apps, too) the call to VisualizationView.onCreate is made in the Activity's init method and not in onCreate, as demanded by the documentation of VisualizationView. Furthermore VisualizationView.init isn't called at all.

This might work under some circumstances, but when running the current head of the indigo branch on an Android 4.0 device, the app crashed every time on startup throwing a NullPointerException in SurfaceView.updateWindow. The stack didn't include any custom/rosjava methods.
Calling VisualzationView.onCreate and init in the designated methods fixed the problem.

I'd submit a pull request, but the fix needs some architectural changes in the layers, which you might want to do yourself.

How to manage multiple app versions?

These Android apps here have been around for a while now and we got to a point where we need to start thinking about how to handle different versions of the same app in order to support multiple versions of ROS.

Currently we use Google Play and unfortunately it doesn't allow publishing of multiple versions of the same app (i.e. package name), unless it has to do with hardware requirements (It offers a fix amount of filters; look here for details: Android Developers).

So for now we probably have no other option then publishing multiple versions of the same app as different apps, e.g. Android Teleop Groovy, Android Teleop Hydro. For the package name - that's the important part - this answer from StackOverflow recommends to just append the version name to the existing package name, e.g. com.github.ros_java.android_apps.teleop.groovy.

Anyone knows a better solution than the above?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.