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.
- 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.
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
- Navigate to your catkin workspace
srcfolder:cd ~/catkin_ws/src
- Clone the repository:
git clone https://github.com/NazishT/turtlebot_network_gazebo.git
- Install dependencies using rosdep:
cd ~/catkin_ws rosdep install --from-paths src --ignore-src -r -y
- Build and source:
catkin_make source devel/setup.bash
Choose your TurtleBot3 model (default is burger):
export TURTLEBOT3_MODEL=burgerTo bring up the Gazebo world with the networked TurtleBot:
roslaunch turtlebot_network_gazebo turtlebot_world.launchIf you are testing specific communication delays, run the provided scripts:
rosrun turtlebot_network_gazebo network_delay_node.pyturtlebot_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
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.
Nazish Tahir - GitHub Profile
Project Link: https://github.com/NazishT/turtlebot_network_gazebo