Coder Social home page Coder Social logo

android_remocons's Introduction

RosJava

Metapackage for the official rosjava repositories.

See the rosjava_core readme for more details.

android_remocons's People

Contributors

bit-pirate avatar corot avatar damonkohler avatar dwlee avatar isyou avatar jihoonl avatar stonier avatar talregev avatar

Stargazers

 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

android_remocons's Issues

robot_remocon: not showing robot & laptop battery status

That is also true for the apps launched by the remocon.
However, when starting the apps directly - and connecting to the private master - the battery statuses are shown.

Maybe this is due to unflipped topics for the battery statuses?

Out of memory error

Switching between running app, robot remocon app list and back again is causing it to go out of memory.

12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon E/dalvikvm-heap﹕ Out of memory on a 65552-byte allocation.
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ "pool-33-thread-24" prio=5 tid=667 RUNNABLE
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ | group="main" sCount=0 dsCount=0 obj=0x43ece310 self=0x6abc4098
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ | sysTid=3824 nice=0 sched=0/0 cgrp=apps handle=1572155112
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ | state=R schedstat=( 0 0 0 ) utm=28 stm=3 core=0
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at java.nio.MemoryBlock.allocate(MemoryBlock.java:126)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at java.nio.ReadWriteDirectByteBuffer.<init>(ReadWriteDirectByteBuffer.java:46)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:68)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.SocketSendBufferPool$Preallocation.<init>(SocketSendBufferPool.java:158)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.SocketSendBufferPool.<init>(SocketSendBufferPool.java:40)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.AbstractNioWorker.<init>(AbstractNioWorker.java:123)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.NioWorker.<init>(NioWorker.java:44)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.NioWorkerPool.createWorker(NioWorkerPool.java:34)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.NioWorkerPool.createWorker(NioWorkerPool.java:26)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.AbstractNioWorkerPool.<init>(AbstractNioWorkerPool.java:58)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.NioWorkerPool.<init>(NioWorkerPool.java:29)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.<init>(NioServerSocketChannelFactory.java:131)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.<init>(NioServerSocketChannelFactory.java:115)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.ros.internal.transport.tcp.TcpRosServer.start(TcpRosServer.java:78)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.ros.internal.node.server.SlaveServer.start(SlaveServer.java:83)
12-30 00:25:27.522    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.ros.internal.node.DefaultNode.<init>(DefaultNode.java:150)
12-30 00:25:27.532    1452-3824/com.github.rosjava.android_remocons.robot_remocon I/dalvikvm﹕ at org.ros.node.DefaultNodeFactory.newNode(DefaultNodeFactory.java:41)
12-30 00:25:27.532    1452-3824/? I/dalvikvm﹕ at org.ros.node.DefaultNodeMainExecutor$2.run(DefaultNodeMainExecutor.java:139)
12-30 00:25:27.532    1452-3824/? I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-30 00:25:27.532    1452-3824/? I/dalvikvm﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-30 00:25:27.532    1452-3824/? I/dalvikvm﹕ at java.lang.Thread.run(Thread.java:856)
12-30 00:25:27.532    1452-3824/? I/dalvikvm﹕ [ 12-30 00:25:27.552  1902: 1932 I/ThermalDaemon ]
    Sensor 'tsens_tz_sensor9' - alarm cleared 1 at 60.0 degC

Run time exception error about no service

when we start the talker app, the app is died.
following error message

01-16 15:15:35.668   30529-2086/com.github.rosjava.android_remocons.robot_remocon D/ApplicationManagement﹕ start app service client created [/cybernetic_pirate/start_app]
01-16 15:15:35.743   30529-2086/com.github.rosjava.android_remocons.robot_remocon W/ApplicationManagement﹕ start app service not found [/cybernetic_pirate/start_app]
01-16 15:15:35.743   30529-2086/com.github.rosjava.android_remocons.robot_remocon W/dalvikvm﹕ threadid=86: thread exiting with uncaught exception (group=0x414df2a0)
01-16 15:15:35.743   30529-2086/com.github.rosjava.android_remocons.robot_remocon E/AndroidRuntime﹕ FATAL EXCEPTION: pool-21-thread-61
    org.ros.exception.RosRuntimeException: org.ros.exception.ServiceNotFoundException: No such service /cybernetic_pirate/start_app of type rocon_app_manager_msgs/StartApp
            at com.github.rosjava.android_apps.application_management.AppManager.startApp(AppManager.java:138)
            at com.github.rosjava.android_apps.application_management.AppManager.onStart(AppManager.java:203)
            at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:506)
            at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:503)
            at org.ros.concurrent.EventDispatcher.loop(EventDispatcher.java:43)
            at org.ros.concurrent.CancellableLoop.run(CancellableLoop.java:56)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)
     Caused by: org.ros.exception.ServiceNotFoundException: No such service /cybernetic_pirate/start_app of type rocon_app_manager_msgs/StartApp
            at org.ros.internal.node.DefaultNode.newServiceClient(DefaultNode.java:356)
            at org.ros.internal.node.DefaultNode.newServiceClient(DefaultNode.java:372)
            at com.github.rosjava.android_apps.application_management.AppManager.startApp(AppManager.java:134)
            at com.github.rosjava.android_apps.application_management.AppManager.onStart(AppManager.java:203)
            at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:506)
            at org.ros.internal.node.DefaultNode$5.run(DefaultNode.java:503)
            at org.ros.concurrent.EventDispatcher.loop(EventDispatcher.java:43)
            at org.ros.concurrent.CancellableLoop.run(CancellableLoop.java:56)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
            at java.lang.Thread.run(Thread.java:856)

NFC should be in robot chooser?

NFC could actually provide ESSID and rocon remocon information as well so you wouldn't even need to fire up the remocon to initiate it.

Does that mean it is redundant having it in the robot chooser?

Headless launcher recompile

This needs recompiling to match all the possible name/msg updates and refactorings.

  • Add it to settings.gradle
  • Watch it compile and fail and say fork!
  • Fix it!

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.

Nfc writer README

Could use a README.md in the package folder explaining how to use it.

Nfc protocol compatibility

Working device:

  • Android v4.1 (Galaxy S3, Galaxy Nexus)

Not working:

  • Android v4.2 (Nexus10 tablet)
  • Android v4.0 (GzOne)

Don't block if already remote controlling a robot

Currently just checks a robot status to see if it's remote controlled and will block access to that robot if it's true.

This is true, even when that remote controller is the android itself (i.e. the paired master). This will happen is crash situations and also if auto-invite is on.

Solution: Remocon should check its own gateway name and see if that matches the status provided name and allow anyway.

Master re-connection without killing running apps

In some use cases the robot will move out of the reach of the paired android device. We had such a use case during ICRA, when wanted the turtlebot to follow people and robots even outside the reach of our AP. This only worked, if we started the robot app manually on the robot.

Hence, t would be nice, if

  • the robot app keeps running, i.e. not being shutdown because connection to the paired master is lost
  • on re-connection the remocon detects that a robot app is running and starts the corresponding android app without the robot app being shutdown

robot_remocon crashes when pairing master not fully ready

There is some delay between the paring master (public) is available (robot_remocon finds it) and it being fully configured/ready. I currently believe this is the time interval when the pushing and pulling is going on. If the robot_remocon connects during that time it crashes 100% of the time.

Invitations

Add invitation initiation and handling to the remocon.

Provide warning if no ROS_IP

When there is no ROS_IP configuration, the android remoticon crashes and burns.

Its always confusing, so show a popup instead reminding the user to set their ROS_IP.

  • Exception: UnresolvedAddressException
  • Location: AppManager.java
try {
    Log.i("RosAndroid", "List app service client created" + listTopic);
    listAppsClient = connectedNode.newServiceClient(listTopic,
        GetAppList._TYPE);
} catch (ServiceNotFoundException e) {
    throw new RosRuntimeException(e);
}

Pass parameters from rapp to android app

This was leftover from a bygone age, not sure it's being used anymore. Example:

display: Talker
description: Default ros style talker tutorial
platform: linux.ros.*
launch: rocon_apps/talker.launch
interface: rocon_apps/talker.interface
icon: rocon_apps/rocon_bubble.png
pairing_clients:
 - type: android
   manager:
     api-level: 9
     intent-action: com.github.ros_java.android_apps.listener.Listener
   app:
     gravityMode: 0
     base_control_topic: /cmd_vel

Dont know if even the api-level is getting checked. I suspect the app variables are parameters to pass to the app, which would be quite useful.

Remove all vestiges of control URL

Doesn't exist anymore (it's legacy from old PR2 android client) but will make robot remocon fail if it's not null in the MasterId object that stores the master connection data of a robot.

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.