Install ROS Indigo on Robot Computer
Perform these install steps on the computer responsible for robot control.
Some assumptions about your Ubuntu Install
These instructions make the following assumptions about your Ubuntu 14.04LTS install. These are not hard and fast rules, however, the instructions assume these things. When asked during the install you should select the following:
username : sibot
computer name : SIBOT1
password : Welcome00
- The SSH client and server are installed.
- If not run the following commands:
sudo apt-get update sudo apt-get install openssh-client sudo apt-get install openssh-server
Setup your ROS sources.list
Setup your computer to accept software from packages.ros.org. ROS Indigo ONLY supports Saucy (13.10) and Trusty (14.04) for debian packages.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Set up your ROS keys
sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
ROS Installation
Make sure the Debian package is up to date:
sudo apt-get update sudo apt-get install ros-indigo-desktop-full
Initialize rosdep
sudo rosdep init rosdep update
Getting rosinstall
Rosinstall is a frequently used command-line tool in ROS that is distributed separately. It enables you to easily download many source trees for ROS packages with one command.
sudo apt-get install python-rosinstall
Install required packages
Connected to the internet run the following commands:
Install useful Linux utilities
These tools are useful for monitoring system processes, setting up networking, and setting up NTPD for the remote computer. They are not necessary but recommended.
sudo apt-get install iperf chrony htop bridge-utils
Install required ROS third party packages for segway_v3_robot
These are the packages that RMP V3 depends on:
sudo apt-get install ros-indigo-navigation ros-indigo-gmapping ros-indigo-robot-localization ros-indigo-yocs-cmd-vel-mux ros-indigo-joy ros-indigo-urg-node ros-indigo-lms1xx ros-indigo-pointgrey-camera-driver ros-indigo-cmake-modules ros-indigo-imu-tools daemontools openssh-server libpcap0.8-dev
Add yourself to the dialout group
This is necessary if you have serial, or serial-USB devices:
sudo adduser $USER dialout
Environment setup
Edit the local bash environment to add a few useful aliases:
gedit ~/.bashrc
Add the following lines to the end of the file each provides a few shortcuts:
source /opt/ros/indigo/setup.bash alias sws='source ./devel/setup.bash' alias clean_backups='find ./ -name '*~' | xargs rm' alias clean_pyc='find ./ -name '*.pyc' | xargs rm' alias clean_rosbuild='rm -rf build devel install' alias segstop='sudo service segway-core stop' alias segstart='sudo service segway-core start' alias segchk='sudo tail /var/log/upstart/segway-core.log -n 30'
Close your terminal and open a new one to make the changes effective
Setup Workspace
Create a work space in your home directory.
mkdir -p ~/segway_ws/src cd ~/segway_ws/src catkin_init_workspace cd .. catkin_make
Download and install ROS software packages
cd ~/segway_ws/src git clone https://github.com/StanleyInnovation/segway_v3.git git clone https://github.com/StanleyInnovation/segway_v3_robot.git git clone https://github.com/StanleyInnovation/segway_v3_desktop.git git clone https://github.com/StanleyInnovation/segway_v3_network.git cd .. catkin_make
Modify Sudo
This modification allows the user sibot to run start / stop service without entering a password.
sudo visudo
Paste this at the bottom of the file below the "#includedir"
sibot ALL=(ALL) NOPASSWD: /sbin/start segway-core, /sbin/stop segway-core
Save the file
[CTRL-X] [Y] [ENTER]
Setup chrony
- If you are going to be running ROS nodes on a remote computer it is a good idea to setup chrony to synchronize time between the machines
- The onboard robot PC should ideally run the server
- Specific directions for setting up chrony can be found online
Additional Steps
You should probably do these regardless, but these steps are really only required PGR Flea3 camera and onboard PC powered from RMP.
Open the grub configuration
sudo gedit /etc/default/grub
Add this line
Configures the system to not wait at startup if boot fails
# disable getting stuck in menu after fail GRUB_RECORDFAIL_TIMEOUT=0
Update the USB memory buffer to handle USB3
* Locate this line
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
* Change it to this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore usbfs_memory_mb=1000"
Save and exit
Update Grub
From the terminal
sudo update-grub sudo modprobe usbcore usbfs_memory_mb=1000