Skip to content

clubcapra/rove

Repository files navigation

Rove

Rove is a robot developed by the Capra team at ÉTS, designed for advanced applications in search and rescue robotics using ROS2 Humble.

Table of Contents

Installation Options

Docker Container (Recommended)

Using a dev container ensures consistent environments across development and CI/CD pipelines.

Windows Setup

  1. Install required software:

  2. Setup steps:

    • Clone and open the repository
    • Click the green button in VSCode's bottom left corner
    • Select "Remote-Containers: Reopen in Container"
    • Start Xserver with the -nowgl option

Linux Setup

Follow the same steps as Windows, excluding Xserver installation. Additionally:

  1. Update DISPLAY environment variable in .env:

    echo DISPLAY=$DISPLAY
  2. Configure controller node permissions:

    cat /dev/input/event0

Note: Consider configuring Docker for non-root usage

Native/WSL Installation

Requires Ubuntu 22.04 LTS.

  1. Install prerequisites:

  2. Setup workspace:

    git clone https://github.com/clubcapra/rove.git
    cd rove
    vcs import src < rove.repos
    echo "export GZ_VERSION=harmonic" >> ~/.bashrc && source ~/.bashrc
    sudo rosdep init
    rosdep update
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install
    source install/setup.bash
  3. (Optional) Hardware package installation:

    vcs import src < rove_hw.repos
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install
    source install/setup.bash

Running Rove

Simulation

For WSL users:

export LIBGL_ALWAYS_INDIRECT=0 export LIBGL_ALWAYS_SOFTWARE=1

Launch simulation:

ros2 launch rove_bringup sim.launch.py

You can also launch the simulation with Ovis using the following command:

ros2 launch rove_bringup sim.launch.py with_ovis:=true

Real-World launch

You can launch the real-world robot using the following command:

ros2 launch rove_bringup real.launch.py

Controller Setup

USB connection:

source install/setup.bash
ros2 launch rove_bringup rove_controller_usb.launch.py

Bluetooth connection:

source install/setup.bash
ros2 launch rove_bringup rove_controller_bluetooth.launch.py

Additional Components (Need hardware installation)

VectorNav

ros2 launch rove_bringup vectornav.launch.py

Robotiq Gripper (Need hardware installation)

# Launch controller
ros2 launch robotiq_description robotiq_control.launch.py

# Control commands
# Close gripper
ros2 action send_goal /robotiq_gripper_controller/gripper_cmd control_msgs/action/GripperCommand "{command:{position: 1, max_effort: 1.0}}"

# Open gripper
ros2 action send_goal /robotiq_gripper_controller/gripper_cmd control_msgs/action/GripperCommand "{command:{position: 0, max_effort: 1.0}}"

# View in RViz
ros2 launch robotiq_description view_gripper.launch.py

Foxglove Interface

  1. Install as service:

    ./utils/install.sh
  2. Or launch manually:

    ros2 launch rove_launch_handler launch_handler.py

Configuration file location: utils/ui/capra_ui.json

Development Guide

Each time you push to the repository, you need to ensure that black formatting is applied to all new files.

black .

Adding New Packages

  1. Create using ROS2 package creation commands
  2. Name Rove-specific packages with rove_ prefix
  3. External packages should be added to rove.repos

Updating Packages

  • Rove packages: Update directly in repository
  • External packages: Update references in rove.repos
  • Apply updates: vcs import src < rove.repos

Architecture

Package Structure

  • Bringup: Initializes rover in real-world settings
  • Description: Contains URDF robot description
  • Gazebo: Handles simulation environment
  • Navigation: Integrates nav2 framework
  • SLAM: Handles mapping and localization

Docker Architecture

Docker structure

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published