RoPod/Tutorials/ROS installation
Info
RoPod Configuration
Other
Get familiar with ROS
The Robot Operating System (ROS) is a framework for writing robot software. ROS uses concepts like nodes, topics, messages, etc. Get familiar with them by searching on the web. You can start reading at: http://wiki.ros.org/ROS/Concepts
Install basic set of packages
sudo apt-get -y update && apt-get install -y \ nano \ vim \ git \ mercurial \ cmake \ build-essential \ automake \ libtool \ libtool-bin \ pkg-config \ wget \ curl \ unzip \ libjsoncpp-dev
Install ROS
ROS have several distributions (versions). Install ROS kinetic distribution, which is the one compatible with ubuntu 16.04. Follow the instructions on this webpage. Install the Desktop-Full version. Make sure you follow at least steps 1.1-1.7 in the webpage .
http://wiki.ros.org/kinetic/Installation/Ubuntu
To test the installation, run in a terminal the ROS core:
roscore
Then in another terminal you can type:
rostopic list
You should be able to see at least the following:
/rosout /rosout_agg
Follow basic tutorials for ROS
Get familiar with ROS using the tutorials for beginners available at http://wiki.ros.org/ROS/Tutorials.
Get familiar with catkin workspaces, which will allow you to build a ROS node in the future. Moreover, get familiar on how to run a ros node.
Install ROPOD Software
echo "source ~/ropod-project-software/catkin_workspace/src/platform/setup.bash" >> ~/.bashrc echo "source ~/ropod-project-software/catkin_workspace/src/platform/robot_common/setup.bash" >> ~/.bashrc
If you already cloned the ropod-project-software in your home directory, the next step is to install the software dependencies, i.e. non standard packages and third party software:
Structure of Ropod-repository: software All packages will be placed in the catkin_workspace/src. To add more structure between all the packages, this folder contains 3 other folders:
- functionalities: Here, all non-standard ros-packages are placed, such as ED, but also packages for localization, navigation, etc.
- platform: Files corresponding to specific platforms located in this folder, while general files for getting the communication with the sensors to work is placed in the robot_common sub-folder
- applications: In order to configure the robot for specific use-cases, all the relevant files are placed here.
As it is impossible to work without Matlab, lets install it now.
Install Dependencies
First, make sure your system is up-to-date:
sudo apt-get update sudo apt-get upgrade
Then, install all ROS dependencies by running
cd _catkin_workspace_dir_ sudo rosdep init rosdep update rosdep install --from-path . -i -y
Install other 3-rd party dependencies by running
sudo apt-get install libbullet-dev libsdl-image1.2-dev libsdl-dev
Next, only of you are a contributor to the private ROPOD repository (you should have already been informed by your coach if you are), install the following packages, otherwise jump to "Compile Software" section.
ROPOD specific packages
cd _catkin_workspace_dir_/src wstool init wstool up
ROPOD-common lib
git clone git@git.ropod.org:ropod/ropod_common.git sudo mv ropod_common /opt/
Zyre
On the git-page of Sebastian Blumenthal, a bash script can be found to install the zyre-dependencies:
cd ~ wget https://raw.githubusercontent.com/blumenthal/ropod-base-cpp/master/install_deps.sh chmod 755 install_deps.sh sudo ./install_deps.sh --workspace-path=/opt --install-path=/usr/local cd /opt sudo mkdir ropod sudo mv ropod_common/ ropod
Compile Software
The first time you install the files in your computer be sure that the folders ‘build’ and ‘devel’ are removed, as well as the file src/Cmakelists.txt
Then, on the main directory level, run a cmake command to generate the executable files
catkin_make
You can run the alias
clean_build
to do all these actions at once. However a clean build is only necessary twice each time you want to add functionality. AT the very beginning after updating the repository and at the end before commiting changes to the repository.
In the next part of the tutorial we are going to see how Matlab and ROS can communicate.