[go: up one dir, main page]

Skip to content

GGomezMorales/waver

Repository files navigation

Waver Robot

Overview

This repository contains a collection of ROS (Noetic) packages designed to be executed both in simulation and on a real robot, with a focus on the Wave Rover by Waveshare as the primary hardware platform. These packages include launch files, configuration files, and resources necessary for running the ROS nodes. This project also includes Docker implementations to simplify running simulations on different operation systems or deploying the software on a real robot. This flexibility allows users to simulate the Wave Rover in a virtual environment or directly implement the software on the robot. As an open source project, encouraging contributions and replication.

Motivation

This project aims to create a low-cost robotic platform that serves as a base for implementing and testing complex packages and algorithms. It's designed to be accessible to both hobbyists and professionals, providing a flexible and expandable system for a wide range of robotics applications.

Packages

ROS packages for Wave Rover, supporting both simulation and real robot use:

  • waver_description: URDF files for robot description. See
  • waver_gazebo: Gazebo simulation integration. See
  • waver_nav: Navigation capabilities. See
  • waver_viz: RViz visualization tools. See

Key features

  • Low cost implementation: The project is designed to be an affordable solution (< $300 USD), providing a foundation for implementing and testing complex packages and algorithms.
  • Extensive documentation: Each package includes documentation to help users understand and implement the provided features.
  • Cross platform compatibility (Simulation): The project supports Linux natively and Windows via Docker, specifically for simulation purposes. Efforts are ongoing to extend compatibility to macOS using Docker.

Hardware components

Component Link
DTOF LiDAR LD19 See
Raspberry Pi 4 Model B (4GB RAM) See
Wave Rover See

Docker setup

Installing Docker on Host machine

To install Docker on your host machine (Linux, Windows or macOS), follow the official Docker installation guide for your specific operating system:

After installing Docker, ensure Docker is running by checking the Docker version:

docker --version

To access graphical interfaces like Gazebo and RViz in Docker on Windows and macOS, you will need to use a VNC viewer. This tool allows you to view and interact with these interfaces through a remote desktop environment. For Linux users, this step is not required as graphical interfaces can be accessed directly from the Docker container without additional tools.

For resources and instructions on how to set up and use VNC viewers on Windows and macOS to run this project, follow the detailed guide provided here

Installing Docker on Raspberry PI

To install Docker on a Raspberry Pi, please follow the detailed guide provided here

How to use

This project includes scripts in the scripts folder to make Docker easier to use. These scripts handle tasks such as building the Docker image, running the container, and accessing the container's terminal.

  1. Building the Docker image:

    • Use the build.sh script to build the Docker image.
      ./scripts/build.sh
  2. Running the Docker container:

    • There are three ways to run a container, depending on your host machine:
      • run_docker.sh: Uses the standard Docker command to run the container.
        ./scripts/run_docker.sh
      • run_cpu.sh: Uses rocker to run the container on a CPU environment.
        ./scripts/run_cpu.sh
      • run_nvidia.sh: Uses rocker to run the container with NVIDIA GPU support.
        ./scripts/run_nvidia.sh
  3. Accessing the container's terminal:

    • If you need to access the terminal of the running Docker container, use the bash.sh script.
      ./scripts/bash.sh