Custom Workspace
Introduction
- When you encounter a package released for another ROS distribution but not the one you are on, chances are you can still use it.
- The ROS API has not changed in a long time
- The way to use these packages is to build them from source and then source the workspace
General Steps
These steps provide a generic example for how to install a package that is not released for noetic
- These steps are for a package called
foo - Make a new workspace and clone the repository for
foointows/src/. The upstream repository is listed on the wiki page Make sure that you have installed and initialized
rosdepsudo apt install python3-rosdep sudo rosdep init rosdep update
- rosdep is ROS's dependency management tool. It allows ROS packages to depend on
libraries and other
system dependencies, that is packages that are a part of the operating system and entirely seperate from ROS - From
ws/runrosdep install --from-paths src --ignore-src -y- This will attempt to install all the packages dependencies
- If some dependencies could not be found, you should clone those dependencies into your
src/space and re-run rosdep
catkin_make- Source
ws/devel/setup.bashfrom your.bashrc
Sharing
- During this process you may have cloned many repositories
- You can use
vscstool(sudo apt install python3-vcstool) to easily share these repositories with others - Navigate to
ws/src - Run
vcs export > myrepos.repo. This creates a file thatvcs importcan use to clone the same repositories that you have in your workspace. The--exactflag when exporting will even havevcs importcloning the exact commits in your source space
For ME495 in Fall 2020
To MSR students who participated in the hackathon
MoveIT has been released for noetic
sudo apt update sudo apt upgrade
Remove the source /home/$USER/nuws/devel/setup.bash line that you added for the hackathon.
To Everyone
- Install some package
sudo apt install ros-noetic-dynamixel-sdk ros-noetic-rviz-visual-tools ros-noetic-openslam-gmapping ros-noetic-turtlebot3-msgs ros-noetic-moveit-ros-planning ros-noetic-ros-control ros-noetic-ros-controllers ros-noetic-moveit ros-noetic-joy - Create a new workspace:
mkdir -p nuws/src cd ~/nuws/srcvcs import --input https://nu-msr.github.io/me495_site/nuws.repocd ~/nuwsrosdep install --from-paths src --ignore-src -y- This step may list an error about orocos_kdl, which can be safely ignored (see http://wiki.ros.org/noetic/Migration).
pip3 install modern_roboticscatkin_makeecho "source ~/nuws/devel/setup.bash" >> ~/.bashrcsudo cp ~/nuws/src/interbotix_ros_arms/interbotix_sdk/10-interbotix-udev.rules /etc/udev/rules.d/- Udev rules control actions that occur when devices are plugged into the computer
sudo udevadm control --reload && udevadm trigger- Now all the packages you've compiled will be available.
- If something goes wrong with compilation, please let me know!