Author: Nawfal Syafi' Bin Zailan Student ID: 1221301208 Faculty: FIST, Multimedia University Submission: July 2025
================================================================================
This project presents an intelligent intrusion detection system (IDS) built for ROS 1-based autonomous robots, specifically TurtleBot3, enhanced with AI to monitor and detect cyberattacks during real-time navigation. Attacks such as DoS, SSH brute-force, unauthorized publishing/subscribing, and reverse shell attacks were simulated and captured in real environments.
================================================================================
- Ubuntu 20.04 LTS (Recommended)
- Alternative: Ubuntu 18.04 LTS
-
ROS Noetic (ROS 1)
- Installation: http://wiki.ros.org/noetic/Installation/Ubuntu
- Follow the "Desktop-Full Install" option
-
Python 3.8+
- Usually pre-installed with Ubuntu 20.04
- Verify:
python3 --version
-
TurtleBot3 Packages
- Installation guide: https://emanual.robotis.com/docs/en/platform/turtlebot3/quick-start/
- Run:
sudo apt install ros-noetic-turtlebot3*
- TurtleBot3 Burger (Physical robot for real-world testing)
- OAK-D Pro Camera (Optional - for enhanced sensing)
- Minimum 8GB RAM (16GB recommended)
- Ubuntu-compatible network interface
================================================================================
# Update system
sudo apt update && sudo apt upgrade
# Install pip if not available
sudo apt install python3-pip
# Install required Python packages
pip3 install pandas==1.3.3
pip3 install numpy==1.21.0
pip3 install scikit-learn==1.0.2
pip3 install matplotlib==3.4.2
pip3 install seaborn==0.11.1
pip3 install jupyter==1.0.0
pip3 install joblib==1.0.1- Download CICFlowMeter: https://drive.google.com/drive/folders/1mkWT3tgnr2qXnOkBwgO10VPyjArMNM_5
- Setup Tutorial: https://www.youtube.com/watch?v=EaYyYy9uvt0&t=2s
- Extract and follow the video instructions for installation
sudo apt install wireshark
- A pentest tool for exploring vulnerabilities in ROS nodes, topics, and services
- GitHub: https://github.com/jr-robotics/ROSPenTo
================================================================================
Download: https://zenodo.org/records/10014434
Setup Instructions:
- Visit the Zenodo link above
- Click "Download all" to get the ZIP file
- Create folder:
mkdir -p ~/fyp_project/datasets/rosids23/ - Extract contents:
unzip ROSIDS23.zip -d ~/fyp_project/datasets/rosids23/ - The dataset is already pre-processed in CSV format
Download: https://zenodo.org/records/15336304
Setup Instructions:
- Visit the Zenodo link above
- Click "Download all" to get the ZIP file
- Create folder:
mkdir -p ~/fyp_project/datasets/navbot25/ - Extract contents:
unzip NAVBOT25.zip -d ~/fyp_project/datasets/navbot25/ - Use the CSV files directly for training and testing
================================================================================
- Mutual Information + Decision Tree: https://www.kaggle.com/code/nawfal24/rosids23-ai-mi-dt
- Mutual Information + Random Forest: https://www.kaggle.com/code/nawfal24/rosids23-ai-mi-rf
- Mutual Information + KNN: https://www.kaggle.com/code/nawfal24/rosids23-ai-mi-knn
- Chi-Square Test + Decision Tree: https://www.kaggle.com/code/nawfal24/rosids23-ai-cst-dt
- Chi-Square Test + Random Forest: https://www.kaggle.com/code/nawfal24/rosids23-ai-cst-rf
- Chi-Square Test + KNN: https://www.kaggle.com/code/nawfal24/rosids23-ai-cst-knn
- ANOVA F-Test + Decision Tree: https://www.kaggle.com/code/nawfal24/rosids23-ai-anvt-dt
- ANOVA F-Test + Random Forest: https://www.kaggle.com/code/nawfal24/rosids23-ai-anvt-rf
- ANOVA F-Test + KNN: https://www.kaggle.com/code/nawfal24/rosids23-ai-anvt-knn
- Mutual Information + Decision Tree: https://www.kaggle.com/code/nawfal24/rosids23-ac-mi-dt
- Mutual Information + Random Forest: https://www.kaggle.com/code/nawfal24/rosids23-ac-mi-rf
- Mutual Information + KNN: https://www.kaggle.com/code/nawfal24/rosids23-ac-mi-knn
- Chi-Square Test + Decision Tree: https://www.kaggle.com/code/nawfal24/rosids23-ac-cst-dt
- Chi-Square Test + Random Forest: https://www.kaggle.com/code/nawfal24/rosids23-ac-cst-rf
- Chi-Square Test + KNN: https://www.kaggle.com/code/nawfal24/rosids23-ac-cst-knn
- ANOVA F-Test + Decision Tree: https://www.kaggle.com/code/nawfal24/rosids23-ac-anvt-dt
- ANOVA F-Test + Random Forest: https://www.kaggle.com/code/nawfal24/rosids23-ac-anvt-rf
- ANOVA F-Test + KNN: https://www.kaggle.com/code/nawfal24/rosids23-ac-anvt-knn
- Mutual Information + Decision Tree: https://www.kaggle.com/code/nawfal24/navbot25-ac-mi-dt
- Mutual Information + Random Forest: https://www.kaggle.com/code/nawfal24/navbot25-ac-mi-rf
- Mutual Information + KNN: https://www.kaggle.com/code/nawfal24/navbot25-ac-mi-knn
- CNN-LSTM Model: https://www.kaggle.com/code/nawfal24/navbot25-ac-cnn-lstm
- CNN-MHA Model: https://www.kaggle.com/code/nawfal24/navbot25-ac-cnn-mha
================================================================================
This project was implemented entirely using Jupyter notebooks hosted on Kaggle.
There is no separate .py script or standalone source code directory. All modeling, training, testing, and analysis were performed within these Kaggle notebooks.
================================================================================