Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/newir295/n_turtlebot
Final Project For Advanced Robotics And Artificial Inteligence At faculty of Engineering - Cairo University
https://github.com/newir295/n_turtlebot
imu-sensor lidar-slam microcontroller platformio robotics robotics-algorithms robotics-control robotics-kinematics robotics-programming robotics-simulation ros ros-noetic rosserial-arduino
Last synced: 21 days ago
JSON representation
Final Project For Advanced Robotics And Artificial Inteligence At faculty of Engineering - Cairo University
- Host: GitHub
- URL: https://github.com/newir295/n_turtlebot
- Owner: NEWIR295
- License: bsd-3-clause
- Created: 2024-09-02T08:54:38.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-30T10:10:51.000Z (21 days ago)
- Last Synced: 2024-10-30T11:18:23.392Z (21 days ago)
- Topics: imu-sensor, lidar-slam, microcontroller, platformio, robotics, robotics-algorithms, robotics-control, robotics-kinematics, robotics-programming, robotics-simulation, ros, ros-noetic, rosserial-arduino
- Language: CMake
- Homepage:
- Size: 8.33 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# N_TURTLEBOT
Final Project for Advanced Robotics and Artificial Intelligence, Spring 2024
Faculty of Engineering, Cairo University## Project Overview
The **N_TURTLEBOT** project consists of two main components:
1. **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 sensor2. **n_turtle_ws**: A ROS workspace containing five packages to manage different aspects of the robot's functionality and simulation.
## ROS Workspace Packages
### 1. **n_turtle_ctrl**
- 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.### 2. **n_turtle_description**
- Contains the URDF file for the robot model.
- To visualize the robot in **Rviz**, use the:
- **`display.launch`** file.### 3. **n_turtle_gazebo**
- Contains the simulated environment for the robot.
- To visualize the simulation in **Gazebo**, use the:
- **`n_turtle_gazebo.launch`** file.### 4. **n_turtle_slam**
- 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.### 5. **n_turtle_nav**
- 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.## Getting Started
1. Clone the repository:
```bash
git clone https://github.com/NEWIR295/N_TURTLEBOT.git2. Navigate to the ROS workspace:
```bash
cd N_TURTLEBOT/n_turtle_ws3. Build the workspace:
```bash
catkin_make
source devel/setup.bash4. Launch the desired package according to your needs (e.g., visualization, control, SLAM, navigation).
## Usage
- **Hardware Control**:
Ensure the Arduino is connected and running the ROS node from `N_TURTLE_HW_CTRL`.- **Simulated Environment**:
Use `n_turtle_gazebo` to launch the Gazebo environment for testing in simulation.- **SLAM and Navigation**:
Use appropriate launch files from `n_turtle_slam` and `n_turtle_nav` for mapping and navigation, respectively.## Contributors
- Mohamed Newir - Project Lead
=======