Installation

Dependencies

Cubs2 requires the following dependencies:

  • ROS 2: Jazzy or later

  • Python: 3.12 or later

  • Python Packages:

    • NumPy

    • CasADi

    • Cyecca (dynamics library)

    • SciPy

    • Matplotlib (for visualization)

  • System Libraries:

    • Qt5

    • GStreamer 1.0 (for video streaming)

ROS 2 Installation

Follow the official ROS 2 Jazzy installation guide:

https://docs.ros.org/en/jazzy/Installation.html

For Ubuntu:

# Set up sources
sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# Install ROS 2 Jazzy
sudo apt update
sudo apt install ros-jazzy-desktop

Python Dependencies

Install Python dependencies using pip:

pip install numpy casadi scipy matplotlib

Install Cyecca (CognPilot dynamics library):

pip install git+https://github.com/cognipilot/cyecca.git

System Libraries

Install Qt5 and GStreamer:

sudo apt install qtbase5-dev libgstreamer1.0-dev

Building Cubs2

Clone the repository and build with colcon:

# Create workspace
mkdir -p ~/cubs2_ws/src
cd ~/cubs2_ws/src

# Clone repository
git clone https://github.com/cognipilot/cubs2.git

# Build workspace
cd ~/cubs2_ws
colcon build --symlink-install

# Source workspace
source install/setup.bash

Verifying Installation

Run the test suite to verify installation:

colcon test --packages-select cubs2_dynamics cubs2_control cubs2_planning
colcon test-result --verbose

You should see all tests passing.