Skip to content

IntellisenseLab/final-project-robosoulz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

QBot Navigation System

A ROS 2 Jazzy-based navigation and mapping system for the Kobuki robot using an LD19 LiDAR, SLAM, A* path planning, and a web-based React user interface.


Prerequisites

  • Ubuntu on Raspberry Pi
  • ROS 2 Jazzy
  • Kobuki Base
  • LD19 LiDAR
  • Built workspace (kobuki_ws)
  • Built React frontend (build directory)

Starting the System

The system requires three separate terminals.

Terminal 1: Launch the Hardware Stack

This command:

  • Connects to the Kobuki base
  • Starts the LD19 LiDAR
  • Launches the SLAM mapping system
  • Starts the A* Navigation Server
cd ~/Desktop/ROS2_Final_Project/kobuki_ws

source /opt/ros/jazzy/setup.bash
source install/setup.bash

ros2 launch qbot_nav qbot_hardware.launch.py

Terminal 2: Start the WebSocket Bridge

This allows communication between the React web interface and ROS 2 using Rosbridge.

cd ~/Desktop/ROS2_Final_Project/kobuki_ws

source /opt/ros/jazzy/setup.bash
source install/setup.bash

ros2 run rosbridge_server rosbridge_websocket --ros-args -p port:=9090

Terminal 3: Serve the React User Interface

This hosts the compiled React application using Python's lightweight HTTP server.

cd ~/Desktop/ROS2_Final_Project/build

python3 -m http.server 8000

Accessing the Web Interface

After all services are running, open a web browser on a device connected to the same Wi-Fi network as the Raspberry Pi.

Navigate to:

http://<RASPBERRY_PI_IP>:8000

Example:

http://192.168.8.154:8000

Finding the Raspberry Pi IP Address

Run:

hostname -I

Example output:

192.168.8.154

Use the displayed IP address in your browser:

http://192.168.8.154:8000

System Architecture

React Web UI
      │
      ▼
Rosbridge WebSocket (Port 9090)
      │
      ▼
ROS 2 Jazzy
      │
 ┌────┴────┐
 │         │
 ▼         ▼
SLAM     A* Navigation
 │
 ▼
LD19 LiDAR
 │
 ▼
Kobuki Base

Troubleshooting

Web UI Cannot Connect

Verify the Rosbridge server is running:

ros2 node list

You should see:

/rosbridge_websocket

Cannot Access the Web Interface

Check that the Python server is running:

ps aux | grep http.server

Verify the Raspberry Pi IP address:

hostname -I

Ensure the client device is connected to the same Wi-Fi network.


Verify ROS 2 Nodes

ros2 node list

Ports Used

Service Port
React Web UI 8000
Rosbridge WebSocket 9090

Shutdown

To stop the system safely, press:

Ctrl + C

in each terminal window.

About

final-project-robosoulz created by GitHub Classroom

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors