From 09c87334cc5c4d5f01f3f4886a2df2fbf308a8c2 Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Thu, 7 Feb 2019 15:49:12 -0800 Subject: [PATCH 1/6] First version of 18.04 upgrade documentation --- source/_static/fetch_ros_ntwk.png | Bin 0 -> 105539 bytes source/computer.rst | 44 ++++++- source/index.rst | 1 + source/indigo_to_melodic.rst | 196 ++++++++++++++++++++++++++++++ 4 files changed, 237 insertions(+), 4 deletions(-) create mode 100644 source/_static/fetch_ros_ntwk.png create mode 100644 source/indigo_to_melodic.rst diff --git a/source/_static/fetch_ros_ntwk.png b/source/_static/fetch_ros_ntwk.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3393fe3d38f1106f1cf81e5bfbadda5f518880 GIT binary patch literal 105539 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. Clock Synchronization --------------------- diff --git a/source/index.rst b/source/index.rst index ad768df..61eba55 100644 --- a/source/index.rst +++ b/source/index.rst @@ -13,6 +13,7 @@ Fetch & Freight Manual robot_hardware computer care_and_feeding + indigo_to_melodic Tutorials --------- diff --git a/source/indigo_to_melodic.rst b/source/indigo_to_melodic.rst new file mode 100644 index 0000000..652a64e --- /dev/null +++ b/source/indigo_to_melodic.rst @@ -0,0 +1,196 @@ +ROS Melodic + Ubuntu 18.04 +========================== + +Upgrading Your Robot to ROS Melodic + Ubuntu 18.04 +-------------------------------------------------- +.. WARNING:: + Read this document in full to ensure you understand the procedures. It is + not straightforward to go back to ROS Indigo/Ubuntu 14.04 after doing this. + Ensure your colleagues are on board with doing this upgrade. + +This document is a procedure for replacing the contents of your robot's SSD +with an Ubuntu 18.04 install and ROS Melodic. + +Before Upgrade +++++++++++++++ + +Back up files from the robot! There are a few categories of files to back up: + +#. Calibration and other robot-specific files. By convention, these are + all in ``/etc/ros/[indigo|melodic]/`` +#. Files relating to your research work +#. A record of what packages you installed for ROS Indigo +#. Network hardware configuration (for troubleshooting) + +Below, we assume that after logging into the robot (e.g. via `ssh`) you back up +files to a machine named HOST with username USER. + +For (1), we recommend doing:: + + tar -zcf fetch_robot_files.tar.gz /etc/ros/indigo/ + scp fetch_robot_files.tar.gz USER@HOST:~/ + +For (2), this may include workspaces, logs, and training data. + +For (3), you can easily record the list of packages you installed via:: + + dpkg -l | grep ros-indigo > installed_indigo_packages.txt + +As well, you might want to record what repositories are part of your workspaces. + +For (4), this file may be useful for reference:: + + scp /etc/udev/rules.d/70-persistent-net.rules USER@HOST:~/$(hostname)_udev_net_rules + +If you are using any additional hardware (sensors), be sure to record what network +or other hardware configuration changes were made to get them working. + + +18.04 Install and Installing ROS/Fetch Packages ++++++++++++++++++++++++++++++++++++++++++++++++ + +.. IMPORTANT:: + Back up your files as described in the previous section + +#. **Runstop the robot**, to avoid unexpected movement of the robot. +#. Download the latest 18.04 Ubuntu installer from http://releases.ubuntu.com/18.04/ + (in these instructions we use the Desktop image, version 18.04.1). Install Ubuntu + 18.04 on the robot. + For help booting from USB, see `Accessing Boot Menu on Fetch Robots`_. +#. Install ROS Melodic by following the instructions `on the ROS Wiki `_. + We start from the ROS-Base setup, via the ``ros-melodic-ros-base`` package. +#. **NOTE**: at a later time, Fetch will host and recommend a mirror of ROS Melodic debians. +#. Run the following to install Fetch research debians: + + - General packages for Fetch robots:: + + sudo apt install ros-melodic-fetch-calibration ros-melodic-fetch-open-auto-dock \ + ros-melodic-fetch-navigation ros-melodic-fetch-tools + + - Then install packages specific to the robot type:: + + export ROBOTTYPE=$(hostname | awk -F'[0-9]' '{print $1}') + # sudo apt install $ROBOTTYPE-melodic-config # pending future availability + wget https://packages.fetchrobotics.com/binaries/$ROBOTTYPE-melodic-config.deb + sudo dpkg -i $ROBOTTYPE-melodic-config.deb + +#. From your non-robot computer, restore the contents of /etc/ros/indigo to /etc/ros/melodic on the robot:: + + scp fetch_robot_files.tar.gz fetch@fetchXXX:~/ + ssh fetch@fetchXXX + sudo mkdir -p /etc/ros/melodic + tar -xzf ~/fetch_robot_files.tar.gz /etc/ros/melodic/ + +#. Power cycle the robot:: + + sudo /sbin/reboot + + +Post-install Validation ++++++++++++++++++++++++ +This is a direct continuation of the previous section's procedure. It is assumed +that your robot is still runstopped. + +Verify that things are working. All of the following steps assume that you are +``ssh``'d into the robot:: + + ssh fetch@fetchXXXX + +#. Verify that calibration is installed, e.g. a date should be output if you run the command below:: + + fetch@fetch3:~$ calibrate_robot --date + 2018-11-26 14:48:04 + +#. Verify that the robot can ping the mainboard and the laser:: + + ping 10.42.42.42 # mainboard + ping 10.42.42.10 # laser + + If not, see `Ensuring robot's ethernet ports are configured correctly`_ + +#. Verify that the Primesense camera is working (if working with a Fetch robot):: + + rostopic list head_camera | wc -l + + This should output 32, if everything is working fine. + +#. At this point, unrunstop the robot. + +#. The gripper should now have power, so we should be able to ping it:: + + ping 10.42.42.44 # gripper + +#. The arm's "gravity compensation" should now be working. You should be able to + freely move the arm by hand. + +#. Check whether your PS3 controller pairs and controls the robot. + + **Important note**: for 18.04 the robots have switched from using sixad to using + PS3joy. Some changes in behaviour you may see: + + - The LEDs on the PS3 controller may continually blink, even though it is connected. + - Inputs may not be sent from the PS3 controller if the accelerometers in the + controller do not detect motion. + +#. At this point the robot is probably working fine and is ready for use! + +Compatibility of Other Computers Used with the Robot +---------------------------------------------------- + +For working with a robot running ROS Melodic, we recommend using an 18.04 Ubuntu +machine that also has ROS Melodic installed. + +- In order for the robot to appear correctly in RViz, you will want to: + + - Ensure your computer is pointed at the packages.ros apt sources + - Install ``ros-melodic-fetch-description`` and ``ros-melodic-freight-description`` + packages. Addtionally you might want to install + `ros-melodic-fetch-tools `_. + - Ensure that these packages are included in your path (e.g. + ``rospack find fetch_description`` returns a path) + +Not Recommended/Supported: Upgrading from 14.04 to 18.04 (via 16.04) +-------------------------------------------------------------------- +Fetch Robotics does not recommend this approach and *cannot* provide support for this. +However, if you desire to try to upgrade, the following may be helpful: + +- Back up files as described above, or even the full disk if you like. +- You cannot upgrade Ubuntu directly from 14.04 to 18.04. You must first + upgrade to 16.04 first. This can take a long time. +- You should review the postinstall script for ``fetch-melodic-config``. It is not + targeted at upgrading a system, so additional tweaks may be required after + installing it. + + +Appendices +---------- + +Ensuring robot's ethernet ports are configured correctly +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +The robot has two ethernet ports on its computer. You can find more information on this +at `Computer Overview and Configuration `_. + +The most likely problem you may encounter after getting 18.04 installed is if these two +ports are "swapped". You can fix this in software or in hardware: + +- Software: Edit ``/etc/udev/rules.d/70-persistent-net.rules`` and swap ``eth0`` + and ``eth1``. Restart the robot for the change to take effect. +- OR: Hardware: swap the two ethernet cables where they plug into the computer (less + optimal solution). + + +Changes from +Manually creates udev rules and updates grub boot arguments to ensure +consistent network device naming across different hardware. Uses +netplan to set static IP for internal robot communications. + + +Accessing Boot Menu on Fetch Robots ++++++++++++++++++++++++++++++++++++ +Fetch research robots may be using one of two BIOS flavors. Older robots use +an MSI branded BIOS. Newer robots use American Megatrends Inc. (AMI). + +- If your robot shows the MSI splash screen at boot, press F11 to access the boot menu. +- If your robot shows the black AMI splash screen at boot (this lasts for about 1 second), + press F7 to access the boot menu. From deea4db83334b4daede199193a4a6aabc2cbc473 Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Thu, 14 Feb 2019 14:44:24 -0800 Subject: [PATCH 2/6] Udev rules saving suggestion --- source/indigo_to_melodic.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/indigo_to_melodic.rst b/source/indigo_to_melodic.rst index 652a64e..920bdf3 100644 --- a/source/indigo_to_melodic.rst +++ b/source/indigo_to_melodic.rst @@ -20,6 +20,7 @@ Back up files from the robot! There are a few categories of files to back up: all in ``/etc/ros/[indigo|melodic]/`` #. Files relating to your research work #. A record of what packages you installed for ROS Indigo +#. Udev rules created for additional hardware (e.g. sensors) added to your robot #. Network hardware configuration (for troubleshooting) Below, we assume that after logging into the robot (e.g. via `ssh`) you back up @@ -38,7 +39,10 @@ For (3), you can easily record the list of packages you installed via:: As well, you might want to record what repositories are part of your workspaces. -For (4), this file may be useful for reference:: +For (4), such files are likely located in ``/etc/udev/rules.d/`, and should be saved. + +For (5), this file may be useful for reference if the install process doesn't +automatically set up networking on your robot correctly:: scp /etc/udev/rules.d/70-persistent-net.rules USER@HOST:~/$(hostname)_udev_net_rules From dacddd4e9abc34fa279b9de312cc915c12033aed Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Mon, 25 Feb 2019 17:22:16 -0800 Subject: [PATCH 3/6] More additions --- source/_static/app_store.jpg | Bin 0 -> 1403 bytes source/indigo_to_melodic.rst | 48 ++++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 source/_static/app_store.jpg diff --git a/source/_static/app_store.jpg b/source/_static/app_store.jpg new file mode 100644 index 0000000000000000000000000000000000000000..747a917fd300d3ffa3383470e510621726e03a4e GIT binary patch literal 1403 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<c1}I=;VrF4wW9Q)H;sz?% zD!{d!pzFb!U9xX3zTPI5o8roG<0MW4oqZMDikqloVbuf*=gfJ(V&YTRE(2~ znmD<{#3dx9RMpfqG__1j&CD$#!)7T-l@M9q4ELqVU+45Ms{i_`hduX{{Q6I8 zO?O62*e%28vSiV^ZyZj+({(~`>Qu4lUweD}?Fl@LjqkG0pNUkM5%`Q<$A zmm2%;9=|BB*b%>P{^~#H?$%%9U-&OHN$H>gyJ)Qawe^qxtjbugTPBc~$m+?i$6A!; z^(A!o+@H?g0`G7C>Hbv`6q6E$LrGB6|O41SLY>o{wa=g$(M*! zFTOW*Y0%r%(Wk!uoLjc#WaYyxd#$RC4ML-*X-_7J#^QpZW34N?Ukz9C1O%qJu&&UUgCoDwQ{~5_?NUoqH=BZ z9FtCqrgLU6ze$Sm)*Z!Yjt*Z#b+LF)f Wj=Ba^J$W|$+1L0}T^fS_Zvp@pom$=i literal 0 HcmV?d00001 diff --git a/source/indigo_to_melodic.rst b/source/indigo_to_melodic.rst index 920bdf3..865ba63 100644 --- a/source/indigo_to_melodic.rst +++ b/source/indigo_to_melodic.rst @@ -57,26 +57,37 @@ or other hardware configuration changes were made to get them working. Back up your files as described in the previous section #. **Runstop the robot**, to avoid unexpected movement of the robot. -#. Download the latest 18.04 Ubuntu installer from http://releases.ubuntu.com/18.04/ - (in these instructions we use the Desktop image, version 18.04.1). Install Ubuntu - 18.04 on the robot. +#. **Install Ubuntu 18.04 on the robot.** Download the latest 18.04 Ubuntu installer from http://releases.ubuntu.com/18.04/ + (in these instructions we use the Desktop image, version 18.04.1). For help booting from USB, see `Accessing Boot Menu on Fetch Robots`_. -#. Install ROS Melodic by following the instructions `on the ROS Wiki `_. - We start from the ROS-Base setup, via the ``ros-melodic-ros-base`` package. + + #. We recommend keeping the same hostname for the robot, e.g. `fetch4` + #. You can create the `fetch` user, or let it be automatically created later. + (The typical password for the `fetch` user is 'robotics'.) + + - After install, you may need to unblock `apt`. Do this by clicking the App Store + icon on the sidebar, which should trigger an update prompt you can close: |AppStore| + - You'll probably want to install a few convenience packages such as openssh-server + to enable SSH into your robot: ``sudo apt install openssh-server``. You might also want + to install your favorite commandline text editor + +#. Update your Ubuntu install: ``sudo apt dist-upgrade -y`` +#. Install ROS Melodic by following the instructions `on the ROS Wiki `_. + We start from the *ROS-Base* setup, via the ``ros-melodic-ros-base`` package. #. **NOTE**: at a later time, Fetch will host and recommend a mirror of ROS Melodic debians. #. Run the following to install Fetch research debians: - General packages for Fetch robots:: sudo apt install ros-melodic-fetch-calibration ros-melodic-fetch-open-auto-dock \ - ros-melodic-fetch-navigation ros-melodic-fetch-tools + ros-melodic-fetch-navigation ros-melodic-fetch-tools -y - Then install packages specific to the robot type:: export ROBOTTYPE=$(hostname | awk -F'[0-9]' '{print $1}') # sudo apt install $ROBOTTYPE-melodic-config # pending future availability wget https://packages.fetchrobotics.com/binaries/$ROBOTTYPE-melodic-config.deb - sudo dpkg -i $ROBOTTYPE-melodic-config.deb + sudo apt install ./$ROBOTTYPE-melodic-config.deb -y #. From your non-robot computer, restore the contents of /etc/ros/indigo to /etc/ros/melodic on the robot:: @@ -86,9 +97,10 @@ or other hardware configuration changes were made to get them working. tar -xzf ~/fetch_robot_files.tar.gz /etc/ros/melodic/ #. Power cycle the robot:: - + sudo /sbin/reboot +.. |AppStore| image:: _static/app_store.jpg Post-install Validation +++++++++++++++++++++++ @@ -118,7 +130,7 @@ Verify that things are working. All of the following steps assume that you are This should output 32, if everything is working fine. -#. At this point, unrunstop the robot. +#. At this point, release the robot's runstop button. #. The gripper should now have power, so we should be able to ping it:: @@ -169,6 +181,12 @@ However, if you desire to try to upgrade, the following may be helpful: Appendices ---------- +Disk filling issue +++++++++++++++++++ +Some robots may encounter an issue where Gnome3 fills the disk by spamming /var/log/syslog. +This issue has a fix that is not available by default yet, but can be manually done: +https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1772677/comments/63 + Ensuring robot's ethernet ports are configured correctly ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -180,14 +198,10 @@ ports are "swapped". You can fix this in software or in hardware: - Software: Edit ``/etc/udev/rules.d/70-persistent-net.rules`` and swap ``eth0`` and ``eth1``. Restart the robot for the change to take effect. -- OR: Hardware: swap the two ethernet cables where they plug into the computer (less - optimal solution). - - -Changes from -Manually creates udev rules and updates grub boot arguments to ensure -consistent network device naming across different hardware. Uses -netplan to set static IP for internal robot communications. +- OR: Hardware: swap the two ethernet cables where they plug into the computer. + This shouldn't be needed, but in case you do, you should expect to find + a gray cable (internal communications) and a blue cable (external). + Typically, the blue goes to the top ethernet port, and the grey goes to the bottom. Accessing Boot Menu on Fetch Robots From 51cd5260f7f0d9e7438f859ab8c58e74ac9363ac Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Thu, 7 Mar 2019 12:09:06 -0800 Subject: [PATCH 4/6] Ready to go --- source/indigo_to_melodic.rst | 49 ++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/source/indigo_to_melodic.rst b/source/indigo_to_melodic.rst index 865ba63..67715fe 100644 --- a/source/indigo_to_melodic.rst +++ b/source/indigo_to_melodic.rst @@ -1,6 +1,11 @@ ROS Melodic + Ubuntu 18.04 ========================== +Fetch Robotics has recently started supporting ROS Melodic and Ubuntu 18.04 on +Fetch and Freight robots. Other than the process of upgrading a robot, there +should be minimal effect on using your robot. If you observe an issue, please +let us know via a support ticket. + Upgrading Your Robot to ROS Melodic + Ubuntu 18.04 -------------------------------------------------- .. WARNING:: @@ -39,7 +44,7 @@ For (3), you can easily record the list of packages you installed via:: As well, you might want to record what repositories are part of your workspaces. -For (4), such files are likely located in ``/etc/udev/rules.d/`, and should be saved. +For (4), such files are likely located in ``/etc/udev/rules.d/``, and should be saved. For (5), this file may be useful for reference if the install process doesn't automatically set up networking on your robot correctly:: @@ -68,13 +73,15 @@ or other hardware configuration changes were made to get them working. - After install, you may need to unblock `apt`. Do this by clicking the App Store icon on the sidebar, which should trigger an update prompt you can close: |AppStore| - You'll probably want to install a few convenience packages such as openssh-server - to enable SSH into your robot: ``sudo apt install openssh-server``. You might also want - to install your favorite commandline text editor + to enable SSH into your robot: ``sudo apt install openssh-server net-tools``. + You might also want to install your favorite commandline text editor. -#. Update your Ubuntu install: ``sudo apt dist-upgrade -y`` +#. Update your Ubuntu install: ``sudo apt update && sudo apt dist-upgrade -y`` #. Install ROS Melodic by following the instructions `on the ROS Wiki `_. - We start from the *ROS-Base* setup, via the ``ros-melodic-ros-base`` package. -#. **NOTE**: at a later time, Fetch will host and recommend a mirror of ROS Melodic debians. + You will want to do steps 1.1 through 1.5. The system-config debian installed later in + these upgrade instructions will do the equivalent of step 1.6 for the `fetch` user on + the robot. We use the *ROS-Base* setup, via the ``ros-melodic-ros-base`` package. +#. **NOTE**: at a later time, Fetch may host and recommend its own mirror of ROS Melodic debians. #. Run the following to install Fetch research debians: - General packages for Fetch robots:: @@ -91,14 +98,14 @@ or other hardware configuration changes were made to get them working. #. From your non-robot computer, restore the contents of /etc/ros/indigo to /etc/ros/melodic on the robot:: - scp fetch_robot_files.tar.gz fetch@fetchXXX:~/ - ssh fetch@fetchXXX - sudo mkdir -p /etc/ros/melodic - tar -xzf ~/fetch_robot_files.tar.gz /etc/ros/melodic/ + scp fetch_robot_files.tar.gz fetch@fetchXXX:~/ + ssh fetch@fetchXXX + sudo mkdir -p /etc/ros/melodic + tar -xzf ~/fetch_robot_files.tar.gz /etc/ros/melodic/ #. Power cycle the robot:: - sudo /sbin/reboot + sudo /sbin/reboot .. |AppStore| image:: _static/app_store.jpg @@ -146,9 +153,12 @@ Verify that things are working. All of the following steps assume that you are - The LEDs on the PS3 controller may continually blink, even though it is connected. - Inputs may not be sent from the PS3 controller if the accelerometers in the - controller do not detect motion. + controller do not detect motion. This can result in jerky motion when using + the controller. + + We are hoping to determine fixes for these in the near future. -#. At this point the robot is probably working fine and is ready for use! +#. At this point the robot is probably working fine and is ready for use! Compatibility of Other Computers Used with the Robot ---------------------------------------------------- @@ -164,6 +174,8 @@ machine that also has ROS Melodic installed. `ros-melodic-fetch-tools `_. - Ensure that these packages are included in your path (e.g. ``rospack find fetch_description`` returns a path) + - Common gotcha on a new setup: If the robot model doesn't appear at first, you + may want to change the "Fixed frame" from e.g. 'map' to 'odom'. Not Recommended/Supported: Upgrading from 14.04 to 18.04 (via 16.04) -------------------------------------------------------------------- @@ -184,7 +196,7 @@ Appendices Disk filling issue ++++++++++++++++++ Some robots may encounter an issue where Gnome3 fills the disk by spamming /var/log/syslog. -This issue has a fix that is not available by default yet, but can be manually done: +This issue has a fix that is not available via `apt` yet, but can be manually done: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1772677/comments/63 Ensuring robot's ethernet ports are configured correctly @@ -206,9 +218,14 @@ ports are "swapped". You can fix this in software or in hardware: Accessing Boot Menu on Fetch Robots +++++++++++++++++++++++++++++++++++ -Fetch research robots may be using one of two BIOS flavors. Older robots use -an MSI branded BIOS. Newer robots use American Megatrends Inc. (AMI). +You may need to access the boot menu in order to boot from a USB flash +drive and install Ubuntu 18.04. Due to different computer motherboards used in the +past, Fetch research robots may be using one of two BIOS flavors. Older robots +use an MSI branded BIOS. Newer robots use American Megatrends Inc. (AMI). +These different BIOS types activate the boot media selection menu with different keys: - If your robot shows the MSI splash screen at boot, press F11 to access the boot menu. - If your robot shows the black AMI splash screen at boot (this lasts for about 1 second), press F7 to access the boot menu. + +If you fail to get into the boot menu, you can restart the computer and try again. From ed07d382f18d07aa6fc979346b9760026c5cca10 Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Thu, 7 Mar 2019 13:44:36 -0800 Subject: [PATCH 5/6] Other important things --- source/indigo_to_melodic.rst | 53 ++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/source/indigo_to_melodic.rst b/source/indigo_to_melodic.rst index 67715fe..ecc84cb 100644 --- a/source/indigo_to_melodic.rst +++ b/source/indigo_to_melodic.rst @@ -63,7 +63,7 @@ or other hardware configuration changes were made to get them working. #. **Runstop the robot**, to avoid unexpected movement of the robot. #. **Install Ubuntu 18.04 on the robot.** Download the latest 18.04 Ubuntu installer from http://releases.ubuntu.com/18.04/ - (in these instructions we use the Desktop image, version 18.04.1). + (in these instructions we use the Desktop image, version 18.04.2). For help booting from USB, see `Accessing Boot Menu on Fetch Robots`_. #. We recommend keeping the same hostname for the robot, e.g. `fetch4` @@ -76,13 +76,19 @@ or other hardware configuration changes were made to get them working. to enable SSH into your robot: ``sudo apt install openssh-server net-tools``. You might also want to install your favorite commandline text editor. -#. Update your Ubuntu install: ``sudo apt update && sudo apt dist-upgrade -y`` -#. Install ROS Melodic by following the instructions `on the ROS Wiki `_. - You will want to do steps 1.1 through 1.5. The system-config debian installed later in - these upgrade instructions will do the equivalent of step 1.6 for the `fetch` user on - the robot. We use the *ROS-Base* setup, via the ``ros-melodic-ros-base`` package. +#. **Update your Ubuntu install:** ``sudo apt update && sudo apt dist-upgrade -y`` +#. **Install ROS Melodic** by following the instructions `on the ROS Wiki `_. + You will want to do steps 1.1 through 1.6. In writing/testing these instructions, we assume: + - You use the **ROS-Base** setup, via the ``ros-melodic-ros-base`` package. + - You're using bash, so step 1.6 for the fetch user is:: + + echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc + source ~/.bashrc + + You can also make this apply for all new users: ``sudo su -c 'echo "source /opt/ros/melodic/setup.bash" >> /etc/bash.bashrc'`` + #. **NOTE**: at a later time, Fetch may host and recommend its own mirror of ROS Melodic debians. -#. Run the following to install Fetch research debians: +#. Run the following to **install Fetch research debians**: - General packages for Fetch robots:: @@ -96,14 +102,7 @@ or other hardware configuration changes were made to get them working. wget https://packages.fetchrobotics.com/binaries/$ROBOTTYPE-melodic-config.deb sudo apt install ./$ROBOTTYPE-melodic-config.deb -y -#. From your non-robot computer, restore the contents of /etc/ros/indigo to /etc/ros/melodic on the robot:: - - scp fetch_robot_files.tar.gz fetch@fetchXXX:~/ - ssh fetch@fetchXXX - sudo mkdir -p /etc/ros/melodic - tar -xzf ~/fetch_robot_files.tar.gz /etc/ros/melodic/ - -#. Power cycle the robot:: +#. **Power cycle the robot**:: sudo /sbin/reboot @@ -158,7 +157,22 @@ Verify that things are working. All of the following steps assume that you are We are hoping to determine fixes for these in the near future. -#. At this point the robot is probably working fine and is ready for use! +#. At this point the robot is probably working fine and is ready for use! (Unless you + additional customizations to restore; see next step) + +#. If applicable, from your non-robot computer, restore the contents of + ``/etc/ros/indigo`` to ``/etc/ros/melodic`` on the robot:: + + scp fetch_robot_files.tar.gz fetch@fetchXXX:~/ + ssh fetch@fetchXXX + sudo mkdir -p /etc/ros/melodic + tar -xzf ~/fetch_robot_files.tar.gz /etc/ros/melodic/ + + As well, you can restore any other saved files to the robot. + + This is the point at which some things may not work fully, e.g. if packages + used in ROS Indigo need updates/replacements for ROS Melodic. + Compatibility of Other Computers Used with the Robot ---------------------------------------------------- @@ -206,7 +220,8 @@ The robot has two ethernet ports on its computer. You can find more information at `Computer Overview and Configuration `_. The most likely problem you may encounter after getting 18.04 installed is if these two -ports are "swapped". You can fix this in software or in hardware: +ports are "swapped". This will cause the robot computer to be unable to talk to the +rest of its hardware. You can fix this in software or in hardware: - Software: Edit ``/etc/udev/rules.d/70-persistent-net.rules`` and swap ``eth0`` and ``eth1``. Restart the robot for the change to take effect. @@ -215,6 +230,10 @@ ports are "swapped". You can fix this in software or in hardware: a gray cable (internal communications) and a blue cable (external). Typically, the blue goes to the top ethernet port, and the grey goes to the bottom. +Another issue you may encounter with 18.04 is if you are using the ethernet on the +side access panel with a DHCP setup. In some setups, the ethernet port may fail to +be assigned an IP automatically. We recommend consulting IT for help with this, if +needed. Accessing Boot Menu on Fetch Robots +++++++++++++++++++++++++++++++++++ From 86cece42ed01ffcdce941c6cbb0be8b620193e72 Mon Sep 17 00:00:00 2001 From: Eric Relson Date: Thu, 7 Mar 2019 16:22:04 -0800 Subject: [PATCH 6/6] PS3 fix note. Review fixups. --- source/computer.rst | 4 ++-- source/indigo_to_melodic.rst | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/source/computer.rst b/source/computer.rst index 0406411..4dd4717 100644 --- a/source/computer.rst +++ b/source/computer.rst @@ -109,8 +109,8 @@ Clock Synchronization --------------------- It is recommended to install the chrony NTP client on both robots and desktops -in order to keep their time synchronized. By default, robots do not ship with -chrony installed. To install chrony on Ubuntu: +in order to keep their time synchronized. By default, robots do ship with chrony +installed, but did not initially. To install chrony in Ubuntu on an older robot: :: diff --git a/source/indigo_to_melodic.rst b/source/indigo_to_melodic.rst index ecc84cb..5302446 100644 --- a/source/indigo_to_melodic.rst +++ b/source/indigo_to_melodic.rst @@ -36,7 +36,8 @@ For (1), we recommend doing:: tar -zcf fetch_robot_files.tar.gz /etc/ros/indigo/ scp fetch_robot_files.tar.gz USER@HOST:~/ -For (2), this may include workspaces, logs, and training data. +For (2), this may include workspaces, logs, and training data. You might even +want to back up the entirety of ``/opt/ros/indigo`` if you are unsure. For (3), you can easily record the list of packages you installed via:: @@ -140,13 +141,17 @@ Verify that things are working. All of the following steps assume that you are #. The gripper should now have power, so we should be able to ping it:: - ping 10.42.42.44 # gripper + ping 10.42.42.43 # gripper #. The arm's "gravity compensation" should now be working. You should be able to freely move the arm by hand. #. Check whether your PS3 controller pairs and controls the robot. + **Important note**: The PS3 controller currently won't work with ROS by default. + To fix this, run ``sudo ln -s /dev/input/js0 /dev/ps3joy``. We hope to fix this + by fixing the corresponding udev rules eventually. + **Important note**: for 18.04 the robots have switched from using sixad to using PS3joy. Some changes in behaviour you may see: @@ -158,7 +163,7 @@ Verify that things are working. All of the following steps assume that you are We are hoping to determine fixes for these in the near future. #. At this point the robot is probably working fine and is ready for use! (Unless you - additional customizations to restore; see next step) + have additional customizations to restore; see next step) #. If applicable, from your non-robot computer, restore the contents of ``/etc/ros/indigo`` to ``/etc/ros/melodic`` on the robot::