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.
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) |
After completing this course, students will be able to:
- CO1: Interface various peripherals to Arduino boards for robotics applications
- CO2: Assemble mobile robots with different sensors and actuators
- CO3: Understand and implement mobile robot localization techniques
- CO4: Apply standard algorithms to enhance robot intelligence and functionality
- CO5: Master robot navigation principles and implement autonomous navigation systems
- β 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
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
- LED Interfacing - Control LEDs with Arduino for basic I/O operations
- LCD Interfacing - Display information on LCD screens
- Serial Monitor Communication - Establish communication between Arduino and computer
- IR Sensor - Detect obstacles using infrared technology
- Ultrasonic Sensor - Measure distances using sound waves
- Speed and Direction Control - Control motor speed and direction for robot movement
- Angle of Rotation - Precise control of servo motors for robotics applications
- 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
- Mobile Robot Assembly - Build a complete mobile robot with various components
- GSM Integration - Connect robots to cellular networks
- Bluetooth Communication - Implement wireless robot control
- Publisher-Subscriber Implementation - Implement basic ROS communication patterns
- Service-Client Programming - Create request-response based interactions
- Recording and Playing Back Data - Use rosbag for data recording and playback
- Reading Messages from Bag File - Extract and process recorded sensor data
- LIDAR-based Localization - Implement laser-based robot positioning
- ROS Implementation - Integrate localization algorithms in ROS
- Sensor Interfacing - Connect touch sensors to robots
- Feedback System Implementation - Create responsive touch-based feedback systems
- Line Following Robot - Build and program a robot that follows a line path
- Obstacle Avoidance Robot - Create a robot that detects and avoids obstacles
- Object Detection using a Standard Algorithm - Implement computer vision for object recognition
- Turtlebot Simulation - Simulate autonomous navigation using Turtlebot platform
- Push Button Interfacing - Learn how to use push buttons for robot interaction
- More examples and utilities will be added throughout the course
-
Clone the repository:
git clone https://github.com/venkideshVenu/KTU-S6-Robotics-Lab-AIL332 cd KTU-S6-Robotics-Lab-AIL332
-
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
-
Navigate to specific experiment directory
cd "01 Familiarisation of Arduino IDE, microcontroller & IO interfacing"
-
Follow instructions in individual experiment READMEs
![]() Arduino |
ROS |
![]() Python |
![]() C++ |
Gazebo |
π€ Moveit |
π Rviz |
π Sensors & Motors |
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 |
- Lab Performance: 40% - Quality of implementation and demonstration
- Lab Records: 30% - Documentation and analysis of experiments
- Viva Voce: 30% - Understanding of concepts and applications
- Siegwart, Roland, "Introduction to Autonomous Mobile Robots", MIT Press
- Peter Corke, "Robotics, Vision and Control: Fundamental Algorithms in MATLAB", Springer
- John. J. Craig, "Introduction to Robotics (Mechanics and control)", Pearson
- S K Saha, "Introduction to Robotics", McGraw Hill
- R K Mittal and I J Nagrath, "Robotics and Control", Tata McGraw Hill
- Dahiya, Ravinder S., Valle, Maurizio, "Robotic Tactile Sensing", Springer
- TurtleBot3 e-Manual
- ROS Wiki
- Arduino Documentation
Contributions to improve this repository are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for Robotics Students