Final Project for Advanced Robotics and Artificial Intelligence, Spring 2024
Faculty of Engineering, Cairo University
The N_TURTLEBOT project consists of two main components:
-
N_TURTLE_HW_CTRL: A folder for hardware control, which includes a ROS node implemented on an Arduino. This node interfaces with:
- Two motors with encoders
- An IMU sensor
-
n_turtle_ws: A ROS workspace containing five packages to manage different aspects of the robot's functionality and simulation.
- Responsible for communication and control of the robot.
- Contains the following key files:
n_turtle_ctrl.launch
: Launches nodes that handle communication with both the main machine and the microcontroller.n_turtle_keyboard
node: Allows keyboard control of the robot.
- Contains the URDF file for the robot model.
- To visualize the robot in Rviz, use the:
display.launch
file.
- Contains the simulated environment for the robot.
- To visualize the simulation in Gazebo, use the:
n_turtle_gazebo.launch
file.
- Applies the GMapping SLAM algorithm to generate maps using LiDAR.
- Launch files:
n_turtle_slam.launch
: For use with hardware.n_turtle_slam_sim.launch
: For use with simulation.
- Implements navigation and localization using AMCL and Move Base packages.
- Launch files:
n_turtle_nav.launch
: For use with hardware.n_turtle_nav_sim.launch
: For use with simulation.
- Clone the repository:
git clone https://github.com/NEWIR295/N_TURTLEBOT.git
- Navigate to the ROS workspace:
cd N_TURTLEBOT/n_turtle_ws
- Build the workspace:
catkin_make source devel/setup.bash
- Launch the desired package according to your needs (e.g., visualization, control, SLAM, navigation).
-
Hardware Control:
Ensure the Arduino is connected and running the ROS node fromN_TURTLE_HW_CTRL
. -
Simulated Environment:
Usen_turtle_gazebo
to launch the Gazebo environment for testing in simulation. -
SLAM and Navigation:
Use appropriate launch files fromn_turtle_slam
andn_turtle_nav
for mapping and navigation, respectively.
- Mohamed Newir - Project Lead
=======