Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

92 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

PR Open Source Love png2 License

Venom

Venom: Sprawling-Type Quadruped Robot

Venom is a 12-DOF unmanned quadruped (four-legged robot) equipped with 12 servo actuators and an ARM processor for onboard computation.

The quadruped uses sprawling-type motion, with creep and trot gaits implemented and tested.

Venom2

Built as part of a research project in Legged Mobility at the Society of Robotics and Automation, VJTI.

  • Most robots in industry rely on wheels for navigation. Venom's goal is legged mobility with multi-terrain capability beyond what wheeled or tracked vehicles can achieve.
  • The aim is a system that can travel anywhere a person or animal could go on foot, carrying its own power and payload, and negotiating terrain with minimal human guidance.

Demo Video: VENOM — All-terrain Quadruped


Table of Contents


How It Works

The robot control code lives under src/Quadruped/:

Module Responsibility
Quadruped.py Top-level Quadruped and Leg classes — configures servo IDs and leg geometry, and implements the gait state machines (Creep, Creep_w_bump, Trot, stanceBackward) driven through walk() / walkOnce()
constants.py Per-gait tuning parameters (Creep, Trot classes: step height, stance limits, timing), gait-mode IDs (CREEP, TROT, TROT_BACK, CREEP_DYN), and link lengths used for kinematics
Core/kinematics.py Inverse kinematics (getInverse) that converts a target foot position (x, y, z) into joint angles for each leg
Core/pwmServo.py PWM servo driver interface (via the adafruit_servokit/PCA9685 stack)
Core/IMU.py, Core/GPS.py Sensor interfaces for orientation and position — used by the CREEP_DYN gait to actively stabilize the base against terrain unevenness (feedback loop in Leg.StepInY_feedback)
Core/kalman_filter.py Kalman filtering for sensor fusion
Core/trajectory_fourier.py Fourier-based trajectory generation experiments
Core/imu/ IMU calibration scripts and reference material (RTIMULib config, ellipsoid-fit MATLAB scripts for magnetometer calibration)
Components/Gamepad.py Linux joystick (/dev/input/js*) input handling for manual teleoperation
JGpio.py GPIO helper for bump-switch / digital I/O pins used in dynamic leg placement
unit_Tests/ Standalone scripts for exercising individual servo angles (writeAngles.py, writeAllAngles0.py)

Gait Modes

Four gait modes are defined in constants.py and dispatched via Quadruped.walk(Mode):

  • CREEP — static creep gait, one leg moves at a time
  • TROT — diagonal-pair trot gait
  • TROT_BACK — reverse trot
  • CREEP_DYN — creep gait with dynamic, IMU-feedback-driven leg placement for stability on uneven terrain (this is the mode used in Quadruped.py's own __main__)

Example

from Quadruped import Quadruped
from constants import CREEP, TROT, CREEP_DYN
venom = Quadruped(servoId) # Servo ID array
venom.setParams(dirVector, FixedPoints) # Servo direction and fixed set points
venom.go2CreepStartPosition()
input("Press Enter") # Wait for user input
venom.walk(CREEP) # Static creep gait
venom.walk(TROT) # Trot gait
venom.walk(CREEP_DYN) # IMU-stabilized dynamic creep gait

Software Installation

  • Python 3.4+ on a Raspberry Pi (or similar single-board computer / ARM dev board).

Clone

git clone https://github.com/chinmaynehate/Venom.git

Setup

Install dependencies:

python3 -m pip install numpy adafruit_servokit busio sympy

Hardware Stack

Team

Chinmay Nehate Suyash More Shashank Deshmukh
Chinmay Nehate Suyash More Shashank Deshmukh
github.com/chinmaynehate github.com/SuyashMore github.com/shanks-d

FAQ

  • How do I do specifically so and so?
    • Create an issue on this repo — we'll respond to the query.

License

AltStyle によって変換されたページ (->オリジナル) /