-
Notifications
You must be signed in to change notification settings - Fork 2
Installation
- Installation
Table of contents generated with markdown-toc
The following goes over how to install ROS and setup the catkin workspaces
Follow the instructions here to install the melodic version of ROS: http://wiki.ros.org/melodic/Installation/Ubuntu
Ensure that you install the Desktop-Full Install version.
Documentation: http://wiki.ros.org/catkin
catkin is the build system used for ROS. ROS comes with catkin. After doing the installation of ROS, run the following command:
catkin --versionYou should see an output similar to this:

If you do not, there may have been an issue installing catkin. To resolve this, run the following command and try the version check command again:
sudo apt-get install ros-kinetic-catkin python-catkin-toolsIn your home directory, make a workspace directory for the third party dependencies needed for Propbot
cd ~/
mkdir propbot_3pp_wsIn your home directory, make the propbot workspace directory
cd ~/
mkdir propbot_wsThen, make the src directory and clone the Propbot repo into the new src directory.
cd ~/propbot_ws
mkdir src
cd src
git clone https://github.com/hannahvsawiuk/PropBot.gitNow that ROS has been installed, we need to start by building Google Cartographer for our application. Cartographer is a system that provides real-time simultaneous localization and mapping (SLAM) in 2D and 3D across multiple platforms and sensor configurations.
Cartographer documentation:
- General information: https://google-cartographer.readthedocs.io/en/latest/
- Integration with ROS: https://google-cartographer-ros.readthedocs.io/en/latest/
The script to setup the custom version of Cartographer is in vehicle_autonomy/scripts. To run the setup for the propbot_3pp_ws, run the following command:
~/propbot_ws/src/PropBot/vehicle_autonomy/scripts/setup_third_party.sh propbot_3pp_wsIf everything runs smoothly, you should see the following when the process finishes

Run the following to initialize and build the workspace
cd ~/cartographer_ws
catkin buildThis will take some time (up to 30 minutes), so please be patient. If the build succeeds, you should see the following statements:

Now that the custom Cartographer version has been built, it will be extended with the Propbot packages.
To initialize the workspace and indicate that propbot_ws will be an extension of cartographer_ws, run the following commands
cd ~/propbot_ws
catkin init
catkin config --extend ../propbot_3pp_ws/develThe --extend argument explicitly sets the workspace you want to extend. In this case, we want the packages in propbot to extend the custom cartographer setup.
For more information on catkin config, see here: https://catkin-tools.readthedocs.io/en/latest/verbs/catkin_config.html
To ensure that everything runs smoothly, the dependencies specified by the Propbot packages need to be installed. To accomplish this, run the following:
Ubuntu
cd ~/propbot_ws
rosdep install --from-paths src --ignore-srcAlternative Distros
If you are not using Ubuntu, the --os argument is needed, e.g. --os=ubuntu:bionic:
cd ~/propbot_ws
rosdep install --os=<distro info> --from-paths src --ignore-srcrosdep is a dependency manager for ROS that helps you install external dependencies in an OS-independent manner.
rosdep documentation:
- Wiki: http://wiki.ros.org/rosdep
- Command reference: https://docs.ros.org/independent/api/rosdep/html/commands.html
Prior to building the entire propbot_ws, the mapviz plugs need to be built. Run the following
catkin build mapviz_pluginsIf successful, you should see the following

Finally, build the entire propbot_ws:
cd ~/propbot_ws
catkin buildEnsure that all packages have been successfully built. You should see the following if the build was completed

Now your propbot_ws directory should have the following structure
├── build/ # Build space
├── devel/ # Devel space
├── logs/ # Logs space
└── src/ # Source space
└── Propbot/ # Propbot packages
For more information on catkin workspace mechanics, see here: https://catkin-tools.readthedocs.io/en/latest/mechanics.html