Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IEEE Robotech - Navigation Visualization Project

A comprehensive robotics navigation and visualization platform featuring real-time A* pathfinding visualization and ROS2 robot integration.

Project Structure

IEEERobotech/
├── website/          # React web application
│   ├── src/
│   │   ├── components/   # UI and 3D visualization
│   │   ├── hooks/        # React state management
│   │   ├── services/     # ROS & pathfinding logic
│   │   └── types/        # TypeScript definitions
│   └── ...
├── robot/            # Robot code (ROS2 packages)
│   └── README.md
└── README.md

Features

Web Interface (/website)

A Pathfinding Visualization*

  • Step-by-step algorithm animation
  • 8 template environments
  • Visual node exploration (open/closed sets)
  • Adjustable animation speed
  • Path glow effects

Robot Control

  • WebSocket connection to ROS2 via rosbridge
  • Real-time teleoperation (WASD + joystick)
  • Click-to-navigate goal setting
  • Emergency stop functionality

Visualization

  • 2D/3D view modes with Three.js
  • Occupancy grid overlay
  • Robot path trail
  • Camera feed picture-in-picture

Robot Code (/robot)

Reserved for ROS2 packages:

  • Navigation algorithms
  • Sensor processing
  • Robot URDF/descriptions
  • Launch configurations

Quick Start

Web Application

cd website

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:3000

Robot Connection

  1. On your robot, start rosbridge:
ros2 launch rosbridge_server rosbridge_websocket_launch.xml port:=9090
  1. In the web app, enter ws://ROBOT_IP:9090 and click Connect

Tech Stack

Technology Purpose
Vite Build tool
React 18 UI framework
TypeScript Type safety
TailwindCSS Styling
Three.js 3D visualization
Zustand State management
Framer Motion Animations
roslibjs ROS communication

Template Environments

Environment Description
Simple Maze Basic walls with corridors
Obstacle Course Scattered rectangular obstacles
Circular Barriers Various sized circular obstacles
Narrow Corridors Tight passages
Random Field 20% obstacle density
Warehouse Layout Grid-like aisles
Spiral Challenge Long spiral path
Dense Forest 35% obstacle density

ROS2 Topics

Robot → Web (Subscriptions)

  • /map - OccupancyGrid
  • /odom - Odometry
  • /path - Navigation path
  • /camera/image_raw/compressed - Camera feed

Web → Robot (Publications)

  • /goal_pose - Navigation goals
  • /cmd_vel - Velocity commands

Development

# Website development
cd website
npm run dev       # Development server
npm run build     # Production build
npm run lint      # Type checking

Keyboard Controls

Key Action
W / ↑ Forward
S / ↓ Backward
A / ← Turn left
D / → Turn right
Space Emergency stop

Screenshots

The web interface features:

  • Dark theme with cyan/purple accents
  • Glassmorphism UI elements
  • Animated node visualization
  • Real-time status displays

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make changes
  4. Submit a pull request

License

MIT License - IEEE Robotech Team


Built for IEEE Robotech Competition

About

Winner of the IEEE robotics competition.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages