Skip to content

Latest commit

 

History

History
50 lines (37 loc) · 1.88 KB

File metadata and controls

50 lines (37 loc) · 1.88 KB

This repository provides a collection of independent ROS2 nodes to control a TurtleBot3 robot in a Gazebo simulation. Each node offers a specific functionality, from basic movement to more advanced navigation and mapping.

Project Overview

This project contains several standalone ROS2 nodes that can be run independently to control a TurtleBot3 robot. The key functionalities include:

  • Proportional Controller: A simple controller to move the robot to a desired x and y position.
  • Reactive Navigation: A more advanced controller that includes obstacle avoidance logic using laser scan data.
  • Map Generator: A node to create a 2D grid map of the environment based on the robot's odometry and laser scan data.
  • Presenter: A script that guides the robot through a pre-defined tour of different rooms in the known environment.

How to Run

  1. Launch the TurtleBot3 Simulation (Map for the Presenter node):

    ros2 launch turtlebot3_gazebo turtlebot3_house.launch.py
  2. Launch the Navigation System (Required for the Presenter node):

    ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=/home/bruno/original_map.yaml
  3. Run an Independent Controller Node:

    • Proportional Controller:

      ros2 run turtlebot3_controller turtle3_prop_controller.py
    • Reactive Navigation:

      ros2 run turtlebot3_controller turtle3_reactive_nav.py
    • Map Generator:

      ros2 run turtlebot3_controller turtle3_map_generator.py

      This will save a map.txt file in the directory where the node is run.

    • Presenter:

      ros2 run turtlebot3_controller turtle3_presenter.py

      This script will guide the robot through a tour of predefined rooms.