Skip to content

Build Soar with ROS 1

Soar for ROS 2

For ROS 2, a package called soar_ros is available from GitHub that includes documentation. The last ROS 1 distribution is end of life (EOL) as of May 2025.

Requirements

  • Ubuntu 18.04.4 LTS Bionic THIS IS NOT OPTIONAL. NO OTHER LINUX DISTRO WORKS
  • Relatively recent GPU YOUR COMPUTER MUST HAVE A DISPLAY
  • ROS Melodic ONLY MELODIC WILL WORK
  • Gazebo 9 MUST BE 9
  • Point Cloud Library version 1.8.1 Must be 1.8.1

ROS Installation (from http://wiki.ros.org/melodic/Installation/Ubuntu):

1
2
3
4
5
6
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

Point Cloud Library should also be installed. Run sudo apt install libpcl-dev to make sure.

Download and Build Soar

1
2
3
4
5
6
git clone https://github.com/SoarGroup/Soar.git -b svs_overhaul
sudo apt install build-essential swig openjdk-8-jdk python-all-dev
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SOAR_HOME:/opt/ros/melodic/lib/
export CPATH=$CPATH:/usr/include/pcl-1.8/:/opt/ros/melodic/include/
cd Soar
python2 scons/scons.py all --use-ros

If you want Python 3 support, replace step 4 with:

which python3

Copy the file path returned

python2 scons/scons.py all --use-ros --python=<insert/path/copied/above>

Recommended: If you want to use Lizzie's svs_utils ROS package to make a world with a Fetch robot, follow these steps: Install the Fetch ROS and Gazebo packages: sudo apt install ros-melodic-fetch-ros ros-melodic-fetch-gazebo Create a catkin workspace: mkdir ~/svs_utils_ws/src

1
2
3
4
5
6
7
8
cd ~/svs_utils_ws
catkin_make
cd src
git clone https://[your_username]@bitbucket.org/emgoeddel/svs_util.git (Ask Lizzie for access to the Bitbucket)
cd ..
catkin_make
echo "source ~/svs_util_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc