Difference between pages "Field Service Menu (FSM)" and "Workstation Setup"

(Difference between pages)
Jump to: navigation , search
(Quickstart - FSM Activation / Deactivation)
 
(Install Intera Robot SDK)
 
Line 1: Line 1:
  
 
<div class="title-block">
 
<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>
+
<span style="font-size:120%;">'''This tutorial describes the setup of a development workstation'''</span>
 
</div>
 
</div>
  
Line 8: Line 8:
 
<div class="content-block">
 
<div class="content-block">
  
 +
== Required Hardware ==
 +
* 1 Sawyer Robot
 +
* 1 Development Workstation (Meeting [[System_requirements | Minimum System Requirements]])
 +
</div>
 +
<div class="content-block">
 +
 +
== Install Ubuntu ==
 +
 +
 +
<tabs>
 +
<tab name="Ubuntu 16.04 (Recommended)">
 +
Follow the standard Ubuntu Installation Instructions for '''16.04''' (Desktop):
 +
* Download the Installer Image file, by picking the "[http://releases.ubuntu.com/xenial/ Desktop CD]" image appropriate for your machine:
 +
** [http://releases.ubuntu.com/xenial/ubuntu-16.04.3-desktop-amd64.iso 64-bit (AMD64) .iso image (recommended)] / [http://releases.ubuntu.com/xenial/ubuntu-16.04.3-desktop-i386.iso 32-bit (Intel x86) .iso image]
 +
 +
* Create an Ubuntu LiveUSB installer by burning the installer image onto a USB stick.
 +
** [http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows Windows] / [http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-mac-osx Mac OS X] / [http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-ubuntu Ubuntu]
 +
* Follow the [https://help.ubuntu.com/community/GraphicalInstall Ubuntu Installation Instructions]
 +
</tab>
 +
 +
<tab name="Ubuntu 14.04">
 +
Follow the standard Ubuntu Installation Instructions for '''14.04''' (Desktop):
 +
* Download the Installer Image file, by picking the "[http://releases.ubuntu.com/trusty/ Desktop CD]" image appropriate for your machine:
 +
** [http://releases.ubuntu.com/trusty/ubuntu-14.04.5-desktop-amd64.iso 64-bit (AMD64) .iso image (recommended)] / [http://releases.ubuntu.com/trusty/ubuntu-14.04.5-desktop-i386.iso 32-bit (Intel x86) .iso image]
 +
 +
* Create an Ubuntu LiveUSB installer by burning the installer image onto a USB stick.
 +
** [http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows Windows] / [http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-mac-osx Mac OS X] / [http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-ubuntu Ubuntu]
 +
* Follow the [https://help.ubuntu.com/community/GraphicalInstall Ubuntu Installation Instructions]
 +
</tab>
 +
</tabs>
 +
 +
</div>
 +
 +
<div class="content-block">
  
== Overview ==
+
== Open Terminal App ==
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:
+
Search your computer for the Terminal package, and open it:
* 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.
+
[[File:terminal.png|500px]]
  
 +
The rest of the workstation setup tutorial will take place in by typing commands in this terminal prompt.
 
</div>
 
</div>
  
 
<div class="content-block">
 
<div class="content-block">
 +
== Install ROS ==
 +
<tabs>
 +
<tab name="ROS Kinetic for Ubuntu 16.04 (Recommended)">
 +
=== Configure Ubuntu repositories ===
 +
 +
Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow [https://help.ubuntu.com/community/Repositories/Ubuntu the Ubuntu guide] for instructions on doing this.<br />
 +
 +
''Likely, they are already configured properly, and you only need to confirm the configuration.''
 +
 +
=== Setup your sources.list ===
 +
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list'
 +
</syntaxhighlight>
 +
 +
=== Setup your keys ===
 +
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
 +
</syntaxhighlight>
 +
 +
=== Update to Latest Software Lists ===
 +
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get update
 +
</syntaxhighlight>
 +
 +
=== Install ROS Kinetic Desktop Full ===
 +
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get install ros-kinetic-desktop-full
 +
</syntaxhighlight>
 +
 +
=== Initialize rosdep ===
 +
 +
rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo rosdep init
 +
$ rosdep update
 +
</syntaxhighlight>
 +
 +
=== Install rosinstall ===
 +
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get install python-rosinstall
 +
</syntaxhighlight>
 +
</tab>
 +
 +
<tab name="ROS Indigo for Ubuntu 14.04">
 +
 +
=== Configure Ubuntu repositories ===
 +
 +
Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow [https://help.ubuntu.com/community/Repositories/Ubuntu the Ubuntu guide] for instructions on doing this.<br />
 +
 +
''Likely, they are already configured properly, and you only need to confirm the configuration.''
 +
 +
=== Setup your sources.list ===
  
== Quickstart - FSM Activation / Deactivation ==
+
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
 +
</syntaxhighlight>
  
=== Accessing the FSM ===
+
=== Setup your keys ===
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).
+
<syntaxhighlight lang="bash" enclose="div">
#  Plug in a USB keyboard to one of Sawyer's USB ports (on the Controller).
+
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
#  You will need to hit <code><Ctrl+F></code> on the keyboard during the boot-up to trigger the FSM:
+
</syntaxhighlight>
#* 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.
 
  
Use the Up/Down arrow keys to change menu selections, and the Enter key to go into a menu or select an option.
+
=== Update to Latest Software Lists ===
  
==== Exiting: Disabling the FSM ====
+
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get update
 +
</syntaxhighlight>
  
'''Important:''' Once the FSM is activated, you must choose what the next boot sequence will be from the front page of the FSM.
+
=== Install ROS Indigo Desktop Full ===
  
To disable the FSM from reappearing next boot: 
+
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get install ros-indigo-desktop-full
 +
</syntaxhighlight>
  
#  From the front FSM screen, choose Next Boot in: "Intera-SDK" to boot back into the SDK mode.
+
'''NOTE:''' You may get a prompt about 'hddtemp' during the installation. You can safely answer 'No'.
'''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.
 
  
 +
=== Initialize rosdep ===
  
 +
rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo rosdep init
 +
$ rosdep update
 +
</syntaxhighlight>
 +
 +
=== Install rosinstall ===
 +
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get install python-rosinstall
 +
</syntaxhighlight>
 +
</tab>
 +
</tabs>
 
</div>
 
</div>
  
 
<div class="content-block">
 
<div class="content-block">
  
== Menu Functions ==
+
== Create Development Workspace ==
After the FSM has been activated, the top level of the Field Service Menu provides access to seven sub-menus and shutdown/reboot options.
+
<tabs>
 +
<tab name="ROS Kinetic for Ubuntu 16.04 (Recommended)">
 +
=== Create ROS Workspace ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ mkdir -p ~/ros_ws/src
 +
# ros_ws (short for ROS Workspace)
 +
</syntaxhighlight>
 +
 
 +
=== Source ROS and Build ===
 +
 
 +
'''ROS Kinetic'''
 +
 
 +
=== Source ROS Setup ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ source /opt/ros/kinetic/setup.bash
 +
</syntaxhighlight>
 +
 
 +
=== Build ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws
 +
$ catkin_make
 +
</syntaxhighlight>
 +
</tab>
 +
 
 +
<tab name="ROS Indigo for Ubuntu 14.04">
 +
=== Create ROS Workspace ===
  
=== Configuration Menu ===
+
<syntaxhighlight lang="bash" enclose="div">
This menu provides access to Sawyer's hostname, timezone, and network configuration information.  Information here is useful for setting up Sawyer on your [[Networking|Network]]. 
+
$ mkdir -p ~/ros_ws/src
 +
# ros_ws (short for ROS Workspace)
 +
</syntaxhighlight>
  
 +
=== Source ROS and Build ===
  
* '''Hostname''' - Rename your Sawyer (i.e. change robot computer's hostname)
+
'''ROS Indigo (Supported)'''
*: 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.
+
=== Source ROS Setup ===
  
===='''Date, Time, Timezone, NTP Servers'''====
+
<syntaxhighlight lang="bash" enclose="div">
 +
$ source /opt/ros/indigo/setup.bash
 +
</syntaxhighlight>
  
 +
=== Build ===
  
* '''Timezone''' - Set the robot's clock to your local timezone.
+
<syntaxhighlight lang="bash" enclose="div">
*: This will primarily affect the time listed in the log files.
+
$ cd ~/ros_ws
* '''[[Time_and_NTP | NTP Servers]]''' - Set your pool of NTP servers
+
$ catkin_make
*: 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.
+
</syntaxhighlight>
 +
</tab>
 +
</tabs>
  
 
</div>
 
</div>
Line 90: Line 212:
 
<div class="content-block">
 
<div class="content-block">
  
== Diagnostic Functions ==
+
== Install Intera SDK Dependencies ==
 +
 
 +
<tabs>
 +
<tab name="ROS Kinetic for Ubuntu 16.04 (Recommended)">
 +
=== Install SDK Dependencies ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get update
 +
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-kinetic-control-msgs ros-kinetic-joystick-drivers ros-kinetic-xacro ros-kinetic-tf2-ros ros-kinetic-rviz ros-kinetic-cv-bridge ros-kinetic-actionlib ros-kinetic-actionlib-msgs ros-kinetic-dynamic-reconfigure ros-kinetic-trajectory-msgs ros-kinetic-rospy-message-converter
 +
</syntaxhighlight>
 +
</tab>
 +
 
 +
<tab name="ROS Indigo for Ubuntu 14.04">
 +
=== Install SDK Dependencies ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ sudo apt-get update
 +
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-indigo-control-msgs ros-indigo-joystick-drivers ros-indigo-xacro ros-indigo-tf2-ros ros-indigo-rviz ros-indigo-cv-bridge ros-indigo-actionlib ros-indigo-actionlib-msgs ros-indigo-dynamic-reconfigure ros-indigo-trajectory-msgs ros-indigo-rospy-message-converter
 +
</syntaxhighlight>
 +
</tab>
 +
</tabs>
 +
 
 +
</div>
  
=== MFG Tests ===
+
<div class="content-block">
  
The Tests menu provides a number of low-level hardware tests that can be run to verify the embedded hardware throughout Sawyer.
+
== Install Intera Robot SDK ==
  
* To run a test, select the test from the menu and follow the on-screen instructions.
+
<tabs>
 +
<tab name="Intera 5.1 ROS Kinetic for Ubuntu 16.04 (Recommended)">
 +
=== Download the SDK on your Workstation ===
 +
 
 +
Checkout all required Github Repositories into your ROS workspace source directory:
 +
Use git clone or download the packages directly from Github:
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws/src
 +
$ wstool init .
 +
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
 +
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
 +
$ wstool update
 +
</syntaxhighlight>
 +
 
 +
=== Source ROS Setup ===
 +
To use ROS Kinetic to use RSDK, use command below:
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
# ROS Kinetic
 +
$ source /opt/ros/kinetic/setup.bash
 +
</syntaxhighlight>
 +
 
 +
=== Build ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws
 +
$ catkin_make
 +
</syntaxhighlight>
 +
</tab>
 +
 
 +
<tab name="ROS Indigo for Ubuntu 14.04">
 +
=== Download the SDK on your Workstation ===
 +
 
 +
Checkout all required Github Repositories into your ROS workspace source directory:
 +
Use git clone or download the packages directly from Github:
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws/src
 +
$ wstool init .
 +
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
 +
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
 +
$ wstool update
 +
</syntaxhighlight>
 +
 
 +
=== Source ROS Setup ===
 +
To use ROS Indigo to use RSDK, use command below:
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
# ROS Indigo
 +
$ source /opt/ros/indigo/setup.bash
 +
</syntaxhighlight>
 +
 
 +
=== Build ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws
 +
$ catkin_make
 +
</syntaxhighlight>
 +
</tab>
 +
 
 +
<tab name="Intera 5.2 Beta">
 +
=== Download the SDK on your Workstation ===
 +
 
 +
Checkout all required Github Repositories into your ROS workspace source directory:
 +
Use git clone or download the packages directly from Github:
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws/src
 +
$ wstool init .
 +
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
 +
$ cd sawyer_robot
 +
$ git checkout release-5.2.0
 +
$ cd ..
 +
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
 +
$ wstool update
 +
</syntaxhighlight>
 +
 
 +
=== Source ROS Setup ===
 +
To use ROS Kinetic to use RSDK, use command below:
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
# ROS Kinetic
 +
$ source /opt/ros/kinetic/setup.bash
 +
</syntaxhighlight>
 +
 
 +
=== Build ===
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws
 +
$ catkin_make
 +
</syntaxhighlight>
 +
</tab>
 +
 
 +
</tabs>
 +
 
 +
</div>
 +
 
 +
<div class="content-block">
 +
 
 +
== Configure Robot Communication/ROS Workspace ==
 +
This step describes the configuration and setup of your [http://wiki.ros.org/ROS/EnvironmentVariables ROS environment]. This section assumes you have linked your workstation to the robot via Ethernet.<br/>
 +
 
 +
'''Important Note:''' Connect to the robot via the ethernet port on the outside of the Controller.  Connecting to the ethernet port inside the Controller door will not work (this is a diagnostic port that is only accessible by Rethink Employees).
 +
 
 +
[[File:Ethernet_Port.png]]
 +
 
 +
 
 +
See [[Networking | Network Setup]] for recommended network configurations.
 +
 
 +
=== intera.sh ROS Environment Setup ===
 +
 
 +
The intera.sh script is a convenience script which allows for intuitive modification of the core ROS environment components. This user edited script will allow for the quickest and easiest ROS setup.
 +
 
 +
Further information and a detailed description is available on the [[SDK_Shell]] page.
 +
 
 +
=== Copy the intera.sh script ===
 +
 
 +
The intera.sh file already exists in intera_sdk repo, copy the file into your ros workspace.
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cp ~/ros_ws/src/intera_sdk/intera.sh ~/ros_ws
 +
</syntaxhighlight>
 +
 
 +
=== Customize the intera.sh script ===
 +
 
 +
Please edit the intera.sh shell script making the necessary modifications to describe your development PC.
 +
 
 +
Using your favorite editor ([https://wiki.gnome.org/Apps/Gedit gedit] used for example)
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws
 +
$ gedit intera.sh
 +
</syntaxhighlight>
 +
 
 +
=== Edit the 'robot_hostname' field ===
 +
Your robot's hostname is defaulted as the '''Controller's Serial Number''' and NOT the Robot's Serial Number. The serial number can be located on the back of the robot's controller box. Unless you intend to modify the default [[Networking]] configuration, leave the ".local" suffix on the end of the Controller's Serial Number in the '''robot_hostname.local''' field.<br/>
 +
 
 +
=== Edit the 'your_ip' field ===
 +
 
 +
Modify where 'your_ip' is either your computer's hostname or the IP address of your PC. We advise against using WiFi connections between your robot and workstation.
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
your_ip="192.168.XXX.XXX"
 +
</syntaxhighlight>
 +
 
 +
Useful command for identifying your IP address:
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ ifconfig
 +
# Result will be contained in the 'inet addr' field (Ubuntu).
 +
</syntaxhighlight>
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed">
 +
Alternatively, you may choose to use the hostname of your development PC rather than the PC's IP address.  For instructions, press Expand on the right.
 +
<div class="mw-collapsible-content">
 +
You may edit the 'your_hostname' field (only if not using 'your_ip'):
 +
<syntaxhighlight lang="bash" enclose="div">
 +
your_hostname="my_computer.local
 +
</syntaxhighlight>
 +
 
 +
 
 +
'''Important:''' This hostname must be resolvable to Sawyer. To test if your hostname is resolvable to Sawyer, please visit the development PC [[Hostname Validation]] page.
 +
 
 +
'''Important:''' Only set either ROS_IP '''*OR*''' ROS_HOSTNAME.
 +
 
 +
Setting of both ROS_IP and ROS_HOSTNAME will result in ROS_HOSTNAME taking priority, resulting in confusing environment setups. Comment out the unused method using the '#' as leading character.
 +
 
 +
</div>
 +
</div>
 +
 
 +
=== Verify 'ros_version' field ===
 +
 
 +
Verify that the the 'ros_version' field matches the ROS version you are running:
 +
 
 +
This field will default to "indigo". To use another ROS version, update:
 +
<tabs>
 +
<tab name="ROS Kinetic for Ubuntu 16.04 (Recommended)">
 +
<syntaxhighlight lang="bash" enclose="div">
 +
ros_version="kinetic"
 +
</syntaxhighlight>
 +
</tab>
 +
<tab name="ROS Indigo for Ubuntu 14.04">
 +
<syntaxhighlight lang="bash" enclose="div">
 +
ros_version="indigo"
 +
</syntaxhighlight>
 +
</tab>
 +
</tabs>
 +
 
 +
=== Save and Close intera.sh script ===
 +
 
 +
Please save and close the intera.sh script.
 +
 
 +
=== Initialize your SDK environment ===
 +
 
 +
From this point forward, your ROS environment setup should be as simple as sourcing the intera.sh script from the root of your Catkin workspace:
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ cd ~/ros_ws
 +
$ ./intera.sh
 +
</syntaxhighlight>
 +
 
 +
</div>
 +
 
 +
<div class="content-block">
 +
 
 +
== Verify Environment ==
 +
 
 +
A useful command for viewing and validating your ROS environment setup is:
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ env | grep ROS
 +
</syntaxhighlight>
 +
 
 +
The important fields at this point: 
 +
 
 +
'''ROS_MASTER_URI''' - This should now contain your robot's hostname. 
 +
 
 +
'''ROS_IP''' - This should contain your workstation's IP address.
 +
 
 +
or
 +
 
 +
'''ROS_HOSTNAME''' - If not using the workstation's IP address, the ROS_HOSTNAME field should contain your PC's hostname.  Otherwise, this field should not be available.
 +
 
 +
Try to get rostopic list from robot by typing following command:
 +
<syntaxhighlight lang="bash" enclose="div">
 +
$ rostopic list
 +
</syntaxhighlight>
 +
 
 +
You can see the rostopic list from the command line output similar as following:
 +
 
 +
[[File:Rostopic_list.png|400px]]
 +
 
 +
</div>
 +
 
 +
 
 +
<div class="content-block">
  
=== Export Logs to USB ===
+
== Setup Rviz ==
  
* Exports the current logs to a FAT32-formatted USB connected to the ''outside USB plug'' to the Controller.
+
We can also setup Rviz to view robot model, start Rviz from a properly initialized environment using:
  
=== Export Registration Data to USB ===
+
<syntaxhighlight lang="bash" enclose="div">
 +
$ rosrun rviz rviz
 +
</syntaxhighlight>
  
* Exports the robot registration data to a FAT32 USB connected to the Controller.
+
Set the Fixed Frame as <code>/base</code>
  
=== Run External Diagnostics ===
+
Info: The ‘Fixed Frame’ provides a static, base reference for your visualization. Any sensor data that comes in to rviz will be transformed into that reference frame so it can be properly displayed in the virtual world.
  
* Runs Rethink specific external diagnostic tools from a USB.  A customer will be supplied this tests from Rethink if it becomes necessary.
+
[[File:Rviz_Fixed_Frame.png|600px]]
  
=== Shutdown ===
+
Add robot model into Rviz by clicking add button, then select robot model in the list, press OK to add.
  
* Shuts down Sawyer - next boot sequence will be specified through the Next boot in: choice.
 
  
=== Reboot ===
+
[[File:Rviz_Add_Model.png|300px]]
  
* Reboots Sawyer - next boot sequence will be specified through the Next boot in: choice.
 
  
=== Serial numbers ===
+
Now you can visualize your robot on Rivz! Next : [[Hello Robot]]
  
* The arm and controller serial numbers can be obtained through the front page of the FSM.
 
  
 
</div>
 
</div>

Revision as of 14:32, 13 March 2018

This tutorial describes the setup of a development workstation

Required Hardware

Install Ubuntu

Follow the standard Ubuntu Installation Instructions for 16.04 (Desktop):

Follow the standard Ubuntu Installation Instructions for 14.04 (Desktop):

Open Terminal App

Search your computer for the Terminal package, and open it:

Terminal.png

The rest of the workstation setup tutorial will take place in by typing commands in this terminal prompt.

Install ROS

Configure Ubuntu repositories

Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow the Ubuntu guide for instructions on doing this.

Likely, they are already configured properly, and you only need to confirm the configuration.

Setup your sources.list

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list'

Setup your keys

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

Update to Latest Software Lists

$ sudo apt-get update

Install ROS Kinetic Desktop Full

$ sudo apt-get install ros-kinetic-desktop-full

Initialize rosdep

rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.

$ sudo rosdep init
$ rosdep update

Install rosinstall

$ sudo apt-get install python-rosinstall

Configure Ubuntu repositories

Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow the Ubuntu guide for instructions on doing this.

Likely, they are already configured properly, and you only need to confirm the configuration.

Setup your sources.list

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'

Setup your keys

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

Update to Latest Software Lists

$ sudo apt-get update

Install ROS Indigo Desktop Full

$ sudo apt-get install ros-indigo-desktop-full

NOTE: You may get a prompt about 'hddtemp' during the installation. You can safely answer 'No'.

Initialize rosdep

rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.

$ sudo rosdep init
$ rosdep update

Install rosinstall

$ sudo apt-get install python-rosinstall

Create Development Workspace

Create ROS Workspace

$ mkdir -p ~/ros_ws/src
# ros_ws (short for ROS Workspace)

Source ROS and Build

ROS Kinetic

Source ROS Setup

$ source /opt/ros/kinetic/setup.bash

Build

$ cd ~/ros_ws
$ catkin_make

Create ROS Workspace

$ mkdir -p ~/ros_ws/src
# ros_ws (short for ROS Workspace)

Source ROS and Build

ROS Indigo (Supported)

Source ROS Setup

$ source /opt/ros/indigo/setup.bash

Build

$ cd ~/ros_ws
$ catkin_make

Install Intera SDK Dependencies

Install SDK Dependencies

$ sudo apt-get update
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-kinetic-control-msgs ros-kinetic-joystick-drivers ros-kinetic-xacro ros-kinetic-tf2-ros ros-kinetic-rviz ros-kinetic-cv-bridge ros-kinetic-actionlib ros-kinetic-actionlib-msgs ros-kinetic-dynamic-reconfigure ros-kinetic-trajectory-msgs ros-kinetic-rospy-message-converter

Install SDK Dependencies

$ sudo apt-get update
$ sudo apt-get install git-core python-argparse python-wstool python-vcstools python-rosdep ros-indigo-control-msgs ros-indigo-joystick-drivers ros-indigo-xacro ros-indigo-tf2-ros ros-indigo-rviz ros-indigo-cv-bridge ros-indigo-actionlib ros-indigo-actionlib-msgs ros-indigo-dynamic-reconfigure ros-indigo-trajectory-msgs ros-indigo-rospy-message-converter

Install Intera Robot SDK

Download the SDK on your Workstation

Checkout all required Github Repositories into your ROS workspace source directory: Use git clone or download the packages directly from Github:

$ cd ~/ros_ws/src
$ wstool init .
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
$ wstool update

Source ROS Setup

To use ROS Kinetic to use RSDK, use command below:

# ROS Kinetic
$ source /opt/ros/kinetic/setup.bash

Build

$ cd ~/ros_ws
$ catkin_make

Download the SDK on your Workstation

Checkout all required Github Repositories into your ROS workspace source directory: Use git clone or download the packages directly from Github:

$ cd ~/ros_ws/src
$ wstool init .
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
$ wstool update

Source ROS Setup

To use ROS Indigo to use RSDK, use command below:

# ROS Indigo
$ source /opt/ros/indigo/setup.bash

Build

$ cd ~/ros_ws
$ catkin_make

Download the SDK on your Workstation

Checkout all required Github Repositories into your ROS workspace source directory: Use git clone or download the packages directly from Github:

$ cd ~/ros_ws/src
$ wstool init .
$ git clone https://github.com/RethinkRobotics/sawyer_robot.git
$ cd sawyer_robot
$ git checkout release-5.2.0
$ cd ..
$ wstool merge sawyer_robot/sawyer_robot.rosinstall
$ wstool update

Source ROS Setup

To use ROS Kinetic to use RSDK, use command below:

# ROS Kinetic
$ source /opt/ros/kinetic/setup.bash

Build

$ cd ~/ros_ws
$ catkin_make

Configure Robot Communication/ROS Workspace

This step describes the configuration and setup of your ROS environment. This section assumes you have linked your workstation to the robot via Ethernet.

Important Note: Connect to the robot via the ethernet port on the outside of the Controller. Connecting to the ethernet port inside the Controller door will not work (this is a diagnostic port that is only accessible by Rethink Employees).

Ethernet Port.png


See Network Setup for recommended network configurations.

intera.sh ROS Environment Setup

The intera.sh script is a convenience script which allows for intuitive modification of the core ROS environment components. This user edited script will allow for the quickest and easiest ROS setup.

Further information and a detailed description is available on the SDK_Shell page.

Copy the intera.sh script

The intera.sh file already exists in intera_sdk repo, copy the file into your ros workspace.

$ cp ~/ros_ws/src/intera_sdk/intera.sh ~/ros_ws

Customize the intera.sh script

Please edit the intera.sh shell script making the necessary modifications to describe your development PC.

Using your favorite editor (gedit used for example)

$ cd ~/ros_ws
$ gedit intera.sh

Edit the 'robot_hostname' field

Your robot's hostname is defaulted as the Controller's Serial Number and NOT the Robot's Serial Number. The serial number can be located on the back of the robot's controller box. Unless you intend to modify the default Networking configuration, leave the ".local" suffix on the end of the Controller's Serial Number in the robot_hostname.local field.

Edit the 'your_ip' field

Modify where 'your_ip' is either your computer's hostname or the IP address of your PC. We advise against using WiFi connections between your robot and workstation.

 your_ip="192.168.XXX.XXX"

Useful command for identifying your IP address:

$ ifconfig
# Result will be contained in the 'inet addr' field (Ubuntu).

Alternatively, you may choose to use the hostname of your development PC rather than the PC's IP address. For instructions, press Expand on the right.

You may edit the 'your_hostname' field (only if not using 'your_ip'):

 your_hostname="my_computer.local


Important: This hostname must be resolvable to Sawyer. To test if your hostname is resolvable to Sawyer, please visit the development PC Hostname Validation page.

Important: Only set either ROS_IP *OR* ROS_HOSTNAME.

Setting of both ROS_IP and ROS_HOSTNAME will result in ROS_HOSTNAME taking priority, resulting in confusing environment setups. Comment out the unused method using the '#' as leading character.

Verify 'ros_version' field

Verify that the the 'ros_version' field matches the ROS version you are running:

This field will default to "indigo". To use another ROS version, update:

 ros_version="kinetic"
 ros_version="indigo"

Save and Close intera.sh script

Please save and close the intera.sh script.

Initialize your SDK environment

From this point forward, your ROS environment setup should be as simple as sourcing the intera.sh script from the root of your Catkin workspace:

$ cd ~/ros_ws
$ ./intera.sh

Verify Environment

A useful command for viewing and validating your ROS environment setup is:

$ env | grep ROS

The important fields at this point:

ROS_MASTER_URI - This should now contain your robot's hostname.

ROS_IP - This should contain your workstation's IP address.

or

ROS_HOSTNAME - If not using the workstation's IP address, the ROS_HOSTNAME field should contain your PC's hostname. Otherwise, this field should not be available.

Try to get rostopic list from robot by typing following command:

$ rostopic list

You can see the rostopic list from the command line output similar as following:

Rostopic list.png


Setup Rviz

We can also setup Rviz to view robot model, start Rviz from a properly initialized environment using:

$ rosrun rviz rviz

Set the Fixed Frame as /base

Info: The ‘Fixed Frame’ provides a static, base reference for your visualization. Any sensor data that comes in to rviz will be transformed into that reference frame so it can be properly displayed in the virtual world.

Rviz Fixed Frame.png

Add robot model into Rviz by clicking add button, then select robot model in the list, press OK to add.


Rviz Add Model.png


Now you can visualize your robot on Rivz! Next : Hello Robot