Skip to content

AlexBarbi/HebiTrackedRobot-Project

Repository files navigation

Hebi Robot Description

This repository contains the ROS package hebi_description (folder name hebi_robot), which provides the robot description, simulation configurations, and control scripts for the Hebi robot. The robot is a quadruped with wheels on its legs (hybrid locomotion).

Table of Contents

Prerequisites

  • OS: Ubuntu 18.04 (Bionic) or 20.04 (Noetic)
  • ROS: Melodic (for Ubuntu 18.04) or Noetic (for Ubuntu 20.04)
  • Python: Python 3.x

Installation

A convenient installation script is provided to set up the environment and dependencies.

1. Run the installation script

# For Ubuntu 18.04
./loco-install.sh 18

# For Ubuntu 20.04
./loco-install.sh 20

Options:

  • -r: Install RealSense camera dependencies.
  • -g: Install Graspin dependencies.

Example with RealSense support:

./loco-install.sh 20 -r

This script will:

  • Install system dependencies (ROS, Robotpkg, Python libs).
  • Setup ROS sources if not present.
  • Install the required ROS packages.

Usage

Using the Run Script

You can use the provided loco-run.sh script to build and run the controller.

./loco-run.sh <package_name> <controller_name> [-i]

Example:

./loco-run.sh hebi_robot hebi_controller.py

Note: This script attempts to copy controller files from a controller directory and run them. Ensure your paths are correct.

Manual Execution

  1. Launch Gazebo/RViz:

    roslaunch hebi_robot gazebo.launch
  2. Run the Controller: Ensure required dependency locosim is in your PYTHONPATH or workspace.

    python3 scripts/hebi_controller.py

Launch Files

The launch/ directory contains several launch configurations:

  • gazebo.launch: Launches the robot in the Gazebo simulator.
  • simple_walk.launch: Launches a walking demo (requires simple_walk.py).
  • visualize.launch: Launches RViz for visualization.
  • upload.launch: Uploads the robot description (URDF/Xacro) to the ROS parameter server.
  • world.launch: Launches the Gazebo world.

Control

The robot features a Pygame-based control interface (window must be focused).

Key Bindings

Movement:

  • UP / W: Increase Forward Speed
  • DOWN / S: Decrease Forward Speed (Reverse)
  • LEFT / A: Rotate Left
  • RIGHT / D: Rotate Right
  • SPACE: Stop (if not implemented, release keys usually decays speed)

Control Parameters (Gains & Height):

  • H / L: Increase / Decrease Height Kp ($K_{p_h}$)
  • B / M: Increase / Decrease Height Kd ($K_{d_h}$)
  • R / T: Increase / Decrease Orientation Kp ($K_{p_w}$)
  • F / G: Increase / Decrease Orientation Kd ($K_{d_w}$)
  • Y / U: Increase / Decrease Desired Height ($h_{des}$)

Toggles:

  • 1: Lock Speed
  • 2: Lock Rotation
  • P: Toggle Snapshot Request

Project Structure

hebi_robot/
├── launch/             # ROS launch files
├── scripts/            # Python control scripts
│   ├── hebi_controller.py  # Main controller implementation
│   ├── pygame_controls.py  # Keyboard/Joystick interface
│   └── params.py           # Robot parameters
├── urdf/               # Robot description (Xacro/URDF)
├── meshes/             # 3D models for the robot
├── worlds/             # Gazebo world files
├── loco-install.sh     # Installation script
├── loco-run.sh         # Execution script
├── package.xml         # ROS package metadata
└── CMakeLists.txt      # Build configuration

Maintainers

  • Alejandro Barbi
  • Alessandro Moscatelli
  • Elia Avanzolini

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors