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).
- 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
A convenient installation script is provided to set up the environment and dependencies.
# For Ubuntu 18.04
./loco-install.sh 18
# For Ubuntu 20.04
./loco-install.sh 20Options:
-r: Install RealSense camera dependencies.-g: Install Graspin dependencies.
Example with RealSense support:
./loco-install.sh 20 -rThis script will:
- Install system dependencies (ROS, Robotpkg, Python libs).
- Setup ROS sources if not present.
- Install the required ROS packages.
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.pyNote: This script attempts to copy controller files from a controller directory and run them. Ensure your paths are correct.
-
Launch Gazebo/RViz:
roslaunch hebi_robot gazebo.launch
-
Run the Controller: Ensure required dependency
locosimis in your PYTHONPATH or workspace.python3 scripts/hebi_controller.py
The launch/ directory contains several launch configurations:
gazebo.launch: Launches the robot in the Gazebo simulator.simple_walk.launch: Launches a walking demo (requiressimple_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.
The robot features a Pygame-based control interface (window must be focused).
Movement:
UP/W: Increase Forward SpeedDOWN/S: Decrease Forward Speed (Reverse)LEFT/A: Rotate LeftRIGHT/D: Rotate RightSPACE: 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 Speed2: Lock RotationP: Toggle Snapshot Request
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
- Alejandro Barbi
- Alessandro Moscatelli
- Elia Avanzolini