Skip to content

NazishT/turtlebot_network_gazebo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

turtlebot_network_gazebo

A specialized ROS package for simulating TurtleBot3 robots within the Gazebo environment, specifically tailored for researching network-constrained robotics. This repository allows users to test robot behavior under various communication scenarios, such as Edge/Cloud computing latencies and packet loss.


📋 Table of Contents


Features

  • Custom Gazebo Worlds: Pre-configured environments optimized for network testing.
  • TurtleBot3 Integration: Native support for Burger, Waffle, and Waffle Pi models.
  • Network Emulation: Tools to simulate real-world communication constraints (latency, jitter, and packet drop).
  • Modular Launch Files: Easily toggle between local control and simulated remote/edge control architectures.

Prerequisites

Ensure you have the following installed on your Ubuntu system (Standard: Ubuntu 20.04 + ROS Noetic):

  • ROS Noetic (Desktop-Full recommended)
  • Gazebo 11
  • TurtleBot3 Dependencies:
    sudo apt-get install ros-noetic-turtlebot3-msgs
    sudo apt-get install ros-noetic-turtlebot3-simulations

Installation

  1. Navigate to your catkin workspace src folder:
    cd ~/catkin_ws/src
  2. Clone the repository:
    git clone https://github.com/NazishT/turtlebot_network_gazebo.git
  3. Install dependencies using rosdep:
    cd ~/catkin_ws
    rosdep install --from-paths src --ignore-src -r -y
  4. Build and source:
    catkin_make
    source devel/setup.bash

Usage

1. Set the Robot Model

Choose your TurtleBot3 model (default is burger):

export TURTLEBOT3_MODEL=burger

2. Launch the Simulation

To bring up the Gazebo world with the networked TurtleBot:

roslaunch turtlebot_network_gazebo turtlebot_world.launch

3. Running Network Scripts

If you are testing specific communication delays, run the provided scripts:

rosrun turtlebot_network_gazebo network_delay_node.py

Repository Structure

turtlebot_network_gazebo/
├── launch/             # ROS launch files for simulation and nodes
├── models/             # URDF and SDF models for TurtleBot and environment
├── scripts/            # Python scripts for network emulation and control
├── src/                # C++ source files for performance-heavy tasks
├── worlds/             # Gazebo .world files
├── CMakeLists.txt      # Build instructions
└── package.xml         # Package dependencies and metadata

Configuration

You can adjust the simulated network parameters by editing the configuration files or passing arguments during launch.

Note: If simulating high-latency environments, ensure your controller timeout parameters are adjusted to prevent the robot from entering a safety-stop state.


📧 Contact

Nazish Tahir - GitHub Profile
Project Link: https://github.com/NazishT/turtlebot_network_gazebo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages