Arxterra Now Supports Waypoint Navigation

ArxRobot version Alpha 0.1.62 has been uploaded to Google Play at https://play.google.com/apps/testing/air.com.arxterra.arxrobot.

Changes include:

  • Added support for Waypoint Navigation. If you program your Arduino to take current GPS location and heading data, and navigate to a desired location, ArxRobot will:
    • Provide current coordinates from its GPS sensor.
    • Provide heading information from its motion sensors.
    • Relay waypoint coordinates and various route management commands as the pilot triggers them at the Control Panel.
  • Added watchdog messaging between ArxRobot and Arduino to help detect disconnects more quickly.

To inform ArxRobot that your Arduino is programmed to take advantage of the Waypoint Navigation feature, you must enable and configure it at the Capabilities screen during ArxRobot startup.

ArxRobot enabling waypoint navigation

When you write your Arduino code (see an example at https://github.com/arxterra/arxrobot-firmware), you can choose between 3 different data types for the coordinates that ArxRobot sends with the WAYPOINT_COORD and WAYPOINT_MOVE commands. Your selection will depend upon the capabilities of the Arduino you are using and your desired balance between numerical precision and the accuracy (or lack thereof) of the GPS data you expect to receive.

Our current example code uses the 32-bit floating point data type, because most Arduinos available at this time do not support a 64-bit floating point data type. The following list includes a brief description and the config settings for each type.

  • 32-bit floating point or “float”
    • The current default
    • Units: degrees
    • Numerical precision equivalent to a resolution of about 11 meters at the equator
    • Settings:
      • Waypoint Coords as Floats: ON
      • Waypoint Floats as 32-bit: ON
  • 64-bit floating point or “double”
    • Units: degrees
    • Not usable on most Arduinos at this time. What is called a “double” is actually 32-bit. See http://arduino.cc/en/Reference/Double
    • Numerical precision the best we offer
    • All our coordinates are stored in this data type on the Control Panel and ArxRobot and in all messaging between them
    • Settings:
      • Waypoint Coords as Floats: ON
      • Waypoint Floats as 32-bit: OFF
  • 32-bit integer or ‘long”
    • Units: decimicrodegrees
    • See http://sloblog.io/~pdc/kbGgQRBcYsk/latitude-and-longitude-in-32-bits for more about this option
    • Numerical precision equivalent to a resolution of about 1 centimeter at the equator
    • Settings:
      • Waypoint Coords as Floats: OFF
      • Waypoint Floats as 32-bit: (ignored)

The Control Panel required a lot of new features to work with this. Your browser may be caching an older version. Be sure to check the lower left corner of the window, and hit “refresh” if it says anything less than version Alpha 0.1.32.

Arxterra Control Panel version indicator

When you board your Robot, the Control Panel has a new section in the Controls pod that appears only when Waypoint Navigation is enabled. It lets you choose whether or not the Autopilot is engaged. You can create and manage waypoints at any time and they will be sent immediately to the Arduino, regardless of which mode you are in. But the Arduino should not move on its own until it receives a WAYPOINTS_ON command.

Travel Mode selector

We hope the rest of the Control Panel operations are fairly self-explanatory. The question marks are tooltip triggers, and some labels also have tooltips on them. But most importantly, when in doubt about what a button does, hover over it and there will usually be a tooltip to help you out.

Arxterra Controls tooltip

Click to create a waypoint.

Click map to create waypoint

Then you can drag it around…

Drag waypoint

Or change the numbers directly if you like.

Edit waypoint coordinates

When you’re happy with it, click Create.

Newly created waypoint

To make a change, drag the waypoint marker to a new position or just click on it. In either case, the edit window pops open again for you to make any needed adjustments and confirm the change. Or you can delete the waypoint.

Modify existing waypoint

Operations on an entire route are accessed via the Controls pod menu. The second row, labeled “Route Management,” appears only when Waypoint Navigation is enabled.

Route management

You can import and export in JSON format, or delete the route. Again, tooltips are your friend when you get ready to do this the first time.

Import route

Export route

Delete route

If you already have a list of lat/long coordinates you want to use, create 2 or 3 random waypoints on the map. Export that route by clicking the export button while holding down the Control (Command on Mac) key, so the file will be saved with line returns and indentation to make it more readable. Open the file in a plain text editor and see how it is done. If you carefully follow the pattern you see there and make a file just like it with your own coordinates, you should be able to import it into the Control Panel.

Finally, here is an example of how you can use our Custom Command feature to add autopiloting refinements. Suppose you want to be able to adjust the Robot’s speed while it is tracking down your waypoints. You can create a custom command to deal with that, and then have the Arxterra system display a slider for you to use, including the label and tooltip you want it to display, the numerical range of values your Arduino is expecting to receive, the command ID number to use, etc.

Autopilot speed custom control example

You add your code to the Arduino sketch, then let ArxRobot know about it via the Custom Command configuration screen. See how that is done in Creating Custom Commands With the Arxterra Application.

ArxRobot Alpha 0.1.25 Posted

ArxRobot version Alpha 0.1.25 has been uploaded to Google Play at https://play.google.com/apps/testing/air.com.arxterra.arxrobot

From now on, the version name should be visible at the lower right corner of the ArxRobot window.  If your Android device does not offer to update your app within a reasonable time, please go to the URL above.

The following are some highlights of what has changed since the previous update:

  • Added a Connection Configuration View with server presets in place of hard-coded server address (normally you will still want to accept the default, but now we have more flexibility for development, testing and demonstrations).
  • Implemented storing your Robot Capabilities settings in App Storage on the Android device.  User eventually will be allowed to choose between storing capabilities there or in Arduino EEPROM.  Currently the EEPROM option is disabled.
  • User can now post Robot avatar images online for the Control Panel to display in the map pop-up and in the position array.  In the Login View on ArxRobot, the user enters the absolute http path to the web directory where these are stored.  5 PNG files are expected (with transparency, 400×400 pixels or smaller).  They must use the following naming convention:  beauty.png (for the map pop-up), front.png, iso.png, right.png and top.png.  Two relative path options, “pathfinder” and “rosco”, are also available if you want to let the Control Panel use its stock images of one of those prototypes.
  • Added contextual help to the Login View, with tooltips that appear if you press and hold wherever you see a highlighted question mark [?].
  • We upgraded our SmartFoxServer installation, which has a new IP address.  To get the latest version of the Control Panel and Server, please be sure to start your Control Panel session from the Arxterra.com website and avoid using old bookmarks you might have made during previous sessions.

We expect to be releasing another ArxRobot and Control Panel update in the next couple days, which will add the Custom Controls API we promised to those with walking bots that need to be able to change posture and gait.

ArxRobot App now available for alpha testing!

Be the first to test out the Arxterra Telerobotics Platform Android App! We are expanding our list of known mobile devices which have been confirmed to work. Help start your own community!
To become an official ArxRobot tester, please email: arxterra@gmail.com with and state your phone model and operating system verson!

Thanks!
favicon

Rosco and Pathfinder Arduino Code Versions Available

Arxterra has released the current beta versions of Arduino code for our telerobotics plaform. The Rosco Code utilizes and Arduino uno and android OS 3.0 and higher. For those of you with Android phones OS 2.3 and higher we suggest you take a look at the pathfinder Arduino code, which can be used in conjunction with and Arduino mega ADK. We haven’t had the chance to work with the USB host shield but it should be simple for all you makers our there. Any takers?

Code is available at www.github.com/arxterra