Skip to content

The KTU-S6-Robotics-Lab-AIL332 repository contains laboratory exercises and projects for the Robotics Lab course (AIL332) of the sixth semester at KTU. The repository includes various C++ code implementations for practical robotics experiments, covering topics such as motion control, sensor integration, and autonomous navigation.

License

Notifications You must be signed in to change notification settings

venkideshVenu/KTU-S6-Robotics-Lab-AIL332

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Robotics Laboratory (AIL332)

Robotics Lab Academic Credits Arduino ROS MIT License

Welcome to the Robotics Laboratory (AIL332) repository! This comprehensive collection contains implementations and documentation for experiments conducted as part of the BTech Robotics Laboratory course. Designed to provide a hands-on experience with robotics systems, this lab covers everything from basic Arduino interfacing to advanced ROS-based navigation.

πŸ“š Course Information

Detail Description
Course Code AIL332
Department Computer Science and Engineering (Artificial Intelligence)
Category PCC (Professional Core Course)
Credits 2 (0-0-3)
Year of Introduction 2022
Syllabus Click Here
Semester S6 (Sixth Semester)

🎯 Course Outcomes

After completing this course, students will be able to:

  1. CO1: Interface various peripherals to Arduino boards for robotics applications
  2. CO2: Assemble mobile robots with different sensors and actuators
  3. CO3: Understand and implement mobile robot localization techniques
  4. CO4: Apply standard algorithms to enhance robot intelligence and functionality
  5. CO5: Master robot navigation principles and implement autonomous navigation systems

πŸ”§ Prerequisites

  • βœ… Basic knowledge of robotics principles and autonomous systems
  • βœ… Programming experience in Python and C++
  • βœ… Understanding of Arduino programming and microcontroller basics
  • βœ… Familiarity with ROS (Robot Operating System) concepts
  • βœ… Basic electronics knowledge for sensor and actuator interfacing

🌐 ROS Essentials

This laboratory introduces the Robot Operating System (ROS) as a framework for robot software development:

  • πŸ”Ή Installing and configuring ROS environment (Kinetic/Melodic/Noetic or compatible versions)
  • πŸ”Ή ROS fundamentals: Master, nodes, topics, messages, services, parameters, and actions
  • πŸ”Ή ROS Tools: Gazebo (simulation), Moveit (motion planning), Rviz (visualization)
  • πŸ”Ή Creating Workspaces and Packages in ROS for modular development
  • πŸ”Ή Implementing Publisher-Subscriber and Service-Client communication patterns

πŸ§ͺ Laboratory Experiments

Part A: Interfacing Sensors and Actuators

1. Arduino Basics

2. Sensor Interfacing

3. DC Motor Control

4. Servo Motor Control

5. Sensor Calibration

  • IR Sensor Calibration - Calibrate sensors for accurate readings
  • Sonar Calibration - Configure ultrasonic sensors for precise distance measurement
  • Calibration Curves - Generate and interpret sensor calibration data

6. Mobile Robot Assembly

7. Arduino Networking (Coming Soon)

  • GSM Integration - Connect robots to cellular networks
  • Bluetooth Communication - Implement wireless robot control

Part B: Intelligent Systems

8. ROS Programming Basics

9. Mobile Robot Localization (Coming Soon)

  • LIDAR-based Localization - Implement laser-based robot positioning
  • ROS Implementation - Integrate localization algorithms in ROS

10. Touch Sensing (Coming Soon)

  • Sensor Interfacing - Connect touch sensors to robots
  • Feedback System Implementation - Create responsive touch-based feedback systems

11. Line Following Robot

12. Obstacle Avoidance

13. Object Detection

14. ROS Navigation

Additional Programs and Resources

  • Push Button Interfacing - Learn how to use push buttons for robot interaction
  • More examples and utilities will be added throughout the course

Extra Materials for Exam

Study Materials

Experiment Questions

πŸš€ How to Use This Repository

  1. Clone the repository:

    git clone https://github.com/venkideshVenu/KTU-S6-Robotics-Lab-AIL332
    cd KTU-S6-Robotics-Lab-AIL332
  2. Install prerequisites:

    # Arduino IDE
    sudo apt-get install arduino
    
    # ROS Installation (Ubuntu 20.04 - ROS Noetic example)
    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    sudo apt-get update
    sudo apt-get install ros-noetic-desktop-full
    
    # Python packages
    pip install numpy matplotlib pandas
  3. Navigate to specific experiment directory

    cd "01 Familiarisation of Arduino IDE, microcontroller & IO interfacing"
  4. Follow instructions in individual experiment READMEs

πŸ› οΈ Tools and Technologies


Arduino

ROS

Python

C++

Gazebo
πŸ€–
Moveit
πŸ”
Rviz
πŸ”Œ
Sensors & Motors

πŸ“Š Assessment Pattern

Component Marks Details
Continuous Internal Evaluation (CIE) 75 Lab performance, records & viva voce
End Semester Examination (ESE) 75 Practical exam (2.5 hours)
Total 150

Grading Criteria

  • Lab Performance: 40% - Quality of implementation and demonstration
  • Lab Records: 30% - Documentation and analysis of experiments
  • Viva Voce: 30% - Understanding of concepts and applications

πŸ“š References

  1. Siegwart, Roland, "Introduction to Autonomous Mobile Robots", MIT Press
  2. Peter Corke, "Robotics, Vision and Control: Fundamental Algorithms in MATLAB", Springer
  3. John. J. Craig, "Introduction to Robotics (Mechanics and control)", Pearson
  4. S K Saha, "Introduction to Robotics", McGraw Hill
  5. R K Mittal and I J Nagrath, "Robotics and Control", Tata McGraw Hill
  6. Dahiya, Ravinder S., Valle, Maurizio, "Robotic Tactile Sensing", Springer
  7. TurtleBot3 e-Manual
  8. ROS Wiki
  9. Arduino Documentation

πŸ”„ Contributing

Contributions to improve this repository are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❀️ for Robotics Students

Report Bug Β· Request Feature Β· Ask Question

About

The KTU-S6-Robotics-Lab-AIL332 repository contains laboratory exercises and projects for the Robotics Lab course (AIL332) of the sixth semester at KTU. The repository includes various C++ code implementations for practical robotics experiments, covering topics such as motion control, sensor integration, and autonomous navigation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages