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:

colcon build --symlink-install
source install/setup.bash
ros2 launch rove_bringup sim.launch.py

OR Do these commands to only run the rviz simulation (with joints control)

colcon build --symlink-install
source install/setup.bash
ros2 launch rove_description 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

Package Documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 14