Difference between pages "SDK System Overview" and "Field Service Menu (FSM)"

(Difference between pages)
Jump to: navigation , search
(Environment Variables)
 
(Accessing the FSM)
 
Line 1: Line 1:
 +
 +
<div class="title-block">
 +
<span style="font-size:120%;">'''The Field Service Menu (FSM) is a pre-boot configuration menu that allows the user to do advanced tasks such as check network interface configuration, change the robot computer's hostname, and run low-level hardware checks.'''</span>
 +
</div>
 +
 +
{{TOClimit|limit=2}}
  
 
<div class="content-block">
 
<div class="content-block">
  
== System Overview ==
 
  
The Intera SDK provides a software interface allowing researchers of all disciplines to develop custom applications to run on their Rethink Robot.
+
== Overview ==
 +
The primary purpose of the Field Service Menu (FSM) is to give the user access to low-level, computer configuration options on the robot, especially:
 +
* Edit Hostname
 +
* Edit Network Configuration
 +
** Set Static IP/DNS
 +
** Set NTP Servers
 +
** Set ROS naming convention
 +
* Edit Timezone
 +
* Change Run Mode (Intera v. SDK Mode)
  
The SDK interfaces with the robot via [http://www.ros.org ROS] (Robot Operating System).  The robot provides a stand-alone ROS Master to which any development workstation can connect and control the robot via the various [[API Reference|ROS APIs]]. 
+
The FSM also provides the ability to run low-level hardware tests to do light-weight verification of hardware components that sit below the robot application software level.
&nbsp;
 
 
 
[[File:Intera_SDK_System_Overview.png|800px]]
 
  
 
</div>
 
</div>
Line 15: Line 25:
 
<div class="content-block">
 
<div class="content-block">
  
== Robot Hardware Foundations ==
+
== Quickstart - FSM Activation / Deactivation ==
 +
 
 +
=== Accessing the FSM ===
 +
The FSM can only be accessed by hitting a specific key combination during robot boot-up:
 +
 
 +
#  Turn off Sawyer with the Power button. Wait for complete shutdown (no lights, no noise).
 +
#  Plug in a USB keyboard to one of Sawyer's USB ports (on the Controller).
 +
#  You will need to hit <code><Ctrl+F></code> on the keyboard during the boot-up to trigger the FSM:
 +
#* Turn Sawyer back on by hitting the Power button.
 +
#* During start up of the robot provide an onscreen counter to user showing the window of time to boot into the FSM. This is when the following Bold Red Text appears in the upper left of the screen:
 +
'''Boot into FSM 5...4...3...2..1.'''
 +
#* ... During this countdown, on your keyboard, start repeatedly hitting the key combination <code><Ctrl+F></code> 
 +
#*:      ''(Hit and hold the <code>Ctrl</code> key, press down on the <code>F</code> key, release, press down on the <code>F</code> key again, release both and repeat)''.
 +
#  Repeat this key combination until you see the FSM screen come up: 
 +
#* If you hit a screen that says "Loading...", you missed your chance.
  
To learn more about what sensors and motors are on the robot and how to use them, see:
+
Use the Up/Down arrow keys to change menu selections, and the Enter key to go into a menu or select an option.
 +
 
 +
==== Exiting: Disabling the FSM ====
 +
 
 +
'''Important:''' Once the FSM is activated, you must choose what the next boot sequence will be from the front page of the FSM.
 +
 
 +
To disable the FSM from reappearing next boot:
 +
 
 +
#  From the front FSM screen, choose Next Boot in: "Intera-SDK" to boot back into the SDK mode.
 +
'''Important:''' In version 5.0.4.16 of the Sawyer SDK, the boot into Intera choice will be password protected.  You can only boot into the SDK or the FSM. 
 +
#  Now, if you press the Reboot button the system will boot into the selected mode.
  
*; [[Hardware Components|Sawyer Components]]
 
  
When you have run through the Installation procedures and you've established communication with your robot, it is time to start getting familiar with the SDK interface.  This page will walk you through the basics of using the SDK.
 
 
</div>
 
</div>
  
 
<div class="content-block">
 
<div class="content-block">
  
== Development Environment ==
+
== Menu Functions ==
 +
After the FSM has been activated, the top level of the Field Service Menu provides access to seven sub-menus and shutdown/reboot options.
  
Throughout the Wiki, Tutorials, and SDK, we refer to the "SDK Shell" and your "ROS Workspace" or "Environment"These are simple environment concepts and configurations that are useful to have a basic understanding of when using the SDK and ROS.
+
=== Configuration Menu ===
 +
This menu provides access to Sawyer's hostname, timezone, and network configuration informationInformation here is useful for setting up Sawyer on your [[Networking|Network]].
  
=== ROS Workspace ===
 
  
Your "ROS Workspace" (also called a "[http://wiki.ros.org/catkin/workspaces Catkin Workspace]" in the ROS world), is the '''<code>~/ros_ws/</code>''' directory you setup in the Installation Tutorials. Inside the <code>src/</code> sub-directory, you can create or checkout source code as ROS Packages, which you can then compile and link against via the <code>devel/</code> or <code>install/</code> sub-directories.
+
* '''Hostname''' - Rename your Sawyer (i.e. change robot computer's hostname)
 +
*: Changing the Hostname will also change Sawyer's network identity name.
 +
*: Upon reboot, Sawyer will then be accessible via the new name followed by 'Hostname.local', rather than by the serial number (default hostname)
 +
* '''IP Type''' - Change the network addressing method from Dynamic IP to Static IP
 +
* '''ROS Naming Type''' - Change how the master publishes node locations
 +
*: Options are:
 +
** ROS_IP
 +
** ROS_HOSTNAME
 +
** ROS_HOSTNAME.local
 +
*: See the [[Networking]] page for more information on network configurations.
  
=== [[SDK Shell]] ===
+
''Tip:'' Make sure to Save Changes after editing any Configuration options, and then Shutdown or Reboot Sawyer from the FSM main menu to apply the changes.
  
The SDK Shell is a term we use to refer to a session in a [http://en.wikipedia.org/wiki/Shell_(computing) shell], or Terminal, with the ROS Environment Variables properly configured to point to your ROS Workspace, the Robot, and your computer's ROS ID.
+
===='''Date, Time, Timezone, NTP Servers'''====
  
=== Environment Variables ===
 
  
The [http://wiki.ros.org/ROS/EnvironmentVariables ROS Environment Variables] have three important functions:
+
* '''Timezone''' - Set the robot's clock to your local timezone.
*; Identifying your robot and Workstation on the ROS Network, based on your [[Networking|Network Configuration]].
+
*: This will primarily affect the time listed in the log files.
*; Pointing to the path of the ROS Packages, tools, and programs, when you use rosrun (execute programs).
+
* '''[[Time_and_NTP | NTP Servers]]''' - Set your pool of NTP servers
*; Linking to the libraries and workspaces when compiling source code.
+
*: Configuring this field is essential if Sawyer is not connected to the Internet, and you wish to time-synchronize things like camera sensor data from your workstation to the robot's data.
  
If you are new to the ROS world, it is highly recommended you take the time to go through the Beginner Level [http://wiki.ros.org/ROS/Tutorials#Core_ROS_Tutorials Core ROS Tutorials]. My personal recommendation is to at least do:
+
</div>
  
*; The first few Configure through 'Understanding ROS' tutorials - ''('''Remember:''' we use <code>~/ros_ws/</code> instead of <code>~/catkin_ws/</code> but they are exactly the same)''.
+
<div class="content-block">
*;Also, the '[http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29 Writing a Simple Publisher and Subscriber]' tutorials can be pretty useful when it comes to writing your first ROS program for the ROS newbie.
 
  
</div>
+
== Diagnostic Functions ==
 +
 
 +
=== MFG Tests ===
 +
 
 +
The Tests menu provides a number of low-level hardware tests that can be run to verify the embedded hardware throughout Sawyer.
 +
 
 +
* To run a test, select the test from the menu and follow the on-screen instructions.
 +
 
 +
=== Export Logs to USB ===
 +
 
 +
* Exports the current logs to a FAT32-formatted USB connected to the ''outside USB plug'' to the Controller.
  
<div class="content-block">
+
=== Export Registration Data to USB ===
  
== Writing Programs ==
+
* Exports the robot registration data to a FAT32 USB connected to the Controller.
At the core of the SDK are the interfaces provided to control and access all of the robot's motors and sensors.  These sections describe the hardware components of the robot and the foundation API layers upon which the SDK - and your programs - are built. These sections describe the ''Components of the Robot'', and the ''Interfaces'' to control them.  
 
  
=== SDK Foundations (Interfaces) ===
+
=== Run External Diagnostics ===
  
The SDK provides interfaces that control the robot hardware layer via the Robot Operating System (ROS) to any other computers on the robot's networkBy using the ROS network layer API, any client library or program that can "speak ROS" can control the robot directly. By using the foundation ROS interface layer, the robot can be controlled and programmed in any Programming Language that supports ROS.  This has led to a number of user-created interface libraries in different languages.  In addition, the Intera Interface provides a Python Class-based interface library, which wraps many of the ROS interfaces in Python Classes.
+
* Runs Rethink specific external diagnostic tools from a USBA customer will be supplied this tests from Rethink if it becomes necessary.
  
=== ROS Interface ===
+
=== Shutdown ===
  
The ROS Interface is the foundation upon which all interaction with the robot passes through and all other interface layers are built upon.  The ROS layer is accessible over the network via any of the standard [http://wiki.ros.org/Client%20Libraries ROS Client Libraries] such as [http://wiki.ros.org/rospy rospy (Python)] or [http://wiki.ros.org/roscpp roscpp (C++)].
+
* Shuts down Sawyer - next boot sequence will be specified through the Next boot in: choice.
  
*; [[API Reference|ROS API Reference]]
+
=== Reboot ===
*: The ROS API describes the base interface layer for direct access from the command line or any language.
 
  
=== Python Interface ===
+
* Reboots Sawyer - next boot sequence will be specified through the Next boot in: choice.
  
The SDK also offers a Python API via the <code>intera_interface</code> module.  This module wraps the ROS Interfaces in component-based Python Classes.  The SDK Examples are written using this library in order to demonstrate how to use the robot interfaces.
+
=== Serial numbers ===
*; [[Robot Interface|Robot Interface Overview]]
 
*: Gives a basic introduction to each class and component in the Python interface library 'intera_interface'.
 
  
*; [http://api.rethinkrobotics.com Code API]
+
* The arm and controller serial numbers can be obtained through the front page of the FSM.
*: View the generated Python Code API docs for the intera_interface module.
 
  
 
</div>
 
</div>

Revision as of 16:09, 6 March 2018

The Field Service Menu (FSM) is a pre-boot configuration menu that allows the user to do advanced tasks such as check network interface configuration, change the robot computer's hostname, and run low-level hardware checks.


Overview

The primary purpose of the Field Service Menu (FSM) is to give the user access to low-level, computer configuration options on the robot, especially:

  • Edit Hostname
  • Edit Network Configuration
    • Set Static IP/DNS
    • Set NTP Servers
    • Set ROS naming convention
  • Edit Timezone
  • Change Run Mode (Intera v. SDK Mode)

The FSM also provides the ability to run low-level hardware tests to do light-weight verification of hardware components that sit below the robot application software level.

Quickstart - FSM Activation / Deactivation

Accessing the FSM

The FSM can only be accessed by hitting a specific key combination during robot boot-up:

  1. Turn off Sawyer with the Power button. Wait for complete shutdown (no lights, no noise).
  2. Plug in a USB keyboard to one of Sawyer's USB ports (on the Controller).
  3. You will need to hit <Ctrl+F> on the keyboard during the boot-up to trigger the FSM:
    • Turn Sawyer back on by hitting the Power button.
    • During start up of the robot provide an onscreen counter to user showing the window of time to boot into the FSM. This is when the following Bold Red Text appears in the upper left of the screen:

Boot into FSM 5...4...3...2..1.

    • ... During this countdown, on your keyboard, start repeatedly hitting the key combination <Ctrl+F>
      (Hit and hold the Ctrl key, press down on the F key, release, press down on the F key again, release both and repeat).
  1. Repeat this key combination until you see the FSM screen come up:
    • If you hit a screen that says "Loading...", you missed your chance.

Use the Up/Down arrow keys to change menu selections, and the Enter key to go into a menu or select an option.

Exiting: Disabling the FSM

Important: Once the FSM is activated, you must choose what the next boot sequence will be from the front page of the FSM.

To disable the FSM from reappearing next boot:

  1. From the front FSM screen, choose Next Boot in: "Intera-SDK" to boot back into the SDK mode.

Important: In version 5.0.4.16 of the Sawyer SDK, the boot into Intera choice will be password protected. You can only boot into the SDK or the FSM.

  1. Now, if you press the Reboot button the system will boot into the selected mode.


Menu Functions

After the FSM has been activated, the top level of the Field Service Menu provides access to seven sub-menus and shutdown/reboot options.

Configuration Menu

This menu provides access to Sawyer's hostname, timezone, and network configuration information. Information here is useful for setting up Sawyer on your Network.


  • Hostname - Rename your Sawyer (i.e. change robot computer's hostname)
    Changing the Hostname will also change Sawyer's network identity name.
    Upon reboot, Sawyer will then be accessible via the new name followed by 'Hostname.local', rather than by the serial number (default hostname).
  • IP Type - Change the network addressing method from Dynamic IP to Static IP
  • ROS Naming Type - Change how the master publishes node locations
    Options are:
    • ROS_IP
    • ROS_HOSTNAME
    • ROS_HOSTNAME.local
    See the Networking page for more information on network configurations.

Tip: Make sure to Save Changes after editing any Configuration options, and then Shutdown or Reboot Sawyer from the FSM main menu to apply the changes.

Date, Time, Timezone, NTP Servers

  • Timezone - Set the robot's clock to your local timezone.
    This will primarily affect the time listed in the log files.
  • NTP Servers - Set your pool of NTP servers
    Configuring this field is essential if Sawyer is not connected to the Internet, and you wish to time-synchronize things like camera sensor data from your workstation to the robot's data.

Diagnostic Functions

MFG Tests

The Tests menu provides a number of low-level hardware tests that can be run to verify the embedded hardware throughout Sawyer.

  • To run a test, select the test from the menu and follow the on-screen instructions.

Export Logs to USB

  • Exports the current logs to a FAT32-formatted USB connected to the outside USB plug to the Controller.

Export Registration Data to USB

  • Exports the robot registration data to a FAT32 USB connected to the Controller.

Run External Diagnostics

  • Runs Rethink specific external diagnostic tools from a USB. A customer will be supplied this tests from Rethink if it becomes necessary.

Shutdown

  • Shuts down Sawyer - next boot sequence will be specified through the Next boot in: choice.

Reboot

  • Reboots Sawyer - next boot sequence will be specified through the Next boot in: choice.

Serial numbers

  • The arm and controller serial numbers can be obtained through the front page of the FSM.