Robot Computer Setup¶
This page details the steps needed to get the computer that is attached to your robot set up correctly.
Dependencies¶
We use ROS Indigo Igloo, but any version of ROS after Indigo should work.
If your netbook did not come with ROS preinstalled, you will first have to run the following (use the appropriate ROS version for your TurtleBot's Ubuntu distribution):
sudo apt-get install ros-indigo-desktop-full
sudo apt-get install ros-indigo-kobuki libblas-dev liblapack-dev libatlas-base-dev gfortran
sudo pip install future scipy
Bash Environment Setup¶
Add the following to your ~/.bashrc
file, which will be run whenever you open a terminal. Make sure to change any paths to match your installation.
# ROS setup.bash
source /opt/ros/indigo/setup.bash
# Catkin setup.bash
source ~/catkin_ws/devel/setup.bash
# Find your IP address
export ROS_IP=$(hostname -I | awk '{print $1;}')
# Replace 10.0.1.20 with your turtlebot netbook's IP address
export ROS_MASTER_URI=http://10.0.1.20:11311
# ROS needs this sometimes; just in case
export ROS_HOSTNAME=$ROS_IP
Astra Camera¶
We use an Astra brand camera. If your camera is different, you may skip this section.
First, clone the ros_astra_camera
and ros_astra_launch
repos into ~/catkin_ws/src
as follows:
cd ~/catkin_ws/src
git clone https://github.com/orbbec/ros_astra_camera
git clone https://github.com/orbbec/ros_astra_launch
Then make the astra_camera package and create the udev rules.
cd ~/catkin_ws
catkin_make --pkg astra_camera -DFILTER=OFF
source devel/setup.bash
roscd astra_camera && ./scripts/create_udev_rules
Finally, to use the camera call:
roslaunch astra_launch astra.launch
Start ROS¶
# as per your install
source /opt/ros/indigo/setup.bash
# set up networking
export ROS_IP=$(hostname -I | awk '{print $1;}')
export ROS_HOSTNAME=$ROS_IP
export ROS_MASTER_URI=http://$ROS_HOSTNAME:11311
# as per your install
source $HOME/catkin_ws/devel/setup.bash
# start the ROS master node
roscore &
# start the turtlebot
roslaunch turtlebot_bringup minimal.launch &
# start the camera
roslaunch astra_launch astra.launch &
[Optional] Automatically start ROS on Netbook Boot¶
Turn on automatic login in the system settings:¶
In the top right, click the power gear icon
. Then go to System Settings
and click User Accounts
in the bottom right. Click unlock
in the top right of the window if the options are locked, then click Automatic Login
so that the slider icon reads "on".
Edit the login script¶
In your favorite text editor, open ~/.profile
or your preferred boot script. At the end, add the following:
if ! ([ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]); then
# as per your install
source /opt/ros/indigo/setup.bash
# sleep to allow network manager to start up
sleep 5
# get the IP of this machine
export ROS_IP=$(hostname -I | awk '{print $1;}')
export ROS_HOSTNAME=$ROS_IP
export ROS_MASTER_URI=http://$ROS_HOSTNAME:11311
# as per your install
source $HOME/catkin_ws/devel/setup.bash
roscore &
# wait for roscore to start so we can start
# other ros packages
sleep 10
roslaunch turtlebot_bringup minimal.launch &
roslaunch astra_launch astra.launch &
fi
[Optional] Network Hotspot¶
If you don't have a wireless network set up, you can create a hotspot originating from the turtlebot netbook. Note: you will not be able to access the internet while connected to this network.
We followed the instructions here to create a hotspot. Note that you may get an ssh error, in which case this answer might help you.
Sometimes ROS will not be able to connect your hostname with your IP address. You will need to set the ROS_IP
variable to your IP address.
ROS_IP=$(hostname -I | awk '{print $1;}')
[Optional] Save SSH key on turtlebot netbook¶
To avoid logging in every time you want to ssh or rsync the netbook, use the following commands:
# follow prompts to generate your ssh key
ssh-keygen
# might need to modify slightly to include your ssh file
# and the netbook's user/hostname combo
cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> .ssh/authorized_keys'