-
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 --version
You 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-tools
In your home directory, make a workspace directory for the third party dependencies needed for Propbot
cd ~/
mkdir propbot_3pp_ws
In your home directory, make the propbot
workspace directory
cd ~/
mkdir propbot_ws
Then, 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.git
Now 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_ws
If 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 build
This 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/devel
The --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-src
Alternative 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-src
rosdep
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_plugins
If successful, you should see the following
Finally, build the entire propbot_ws
:
cd ~/propbot_ws
catkin build
Ensure 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