CS684: Embedded System Course

Lab 5: Final Project Implementation


Aim

This lab builds upon your Lab 4, enhancing the robot's capabilities with a hybrid control system: autonomous and manual. Problem Statement of Lab 4 remains same, The robot should park itself from any of the start point to an empty parking location using Line Following and Obstacle Avoidance algorithm. However, you'll now introduce a joystick-based remote control for manual control along with Autonomous Navigation.

Testing:

In Lab 5 first we will design the Joystick based remote and do the initial Testing:

  1. Joystick-Based Remote Design:

All the components for designing the Remote is already provided to you. You will be designing the remote controller. (You have to do the soldering and mounting. During lab slot, we will provide access to the soldering station.)

Joystick-based Remote
  1. Remote-Robot Communication:

For remote, one Joystick and two Limit switches are provided. These will be interfaced with the Arduino nano. Based on the values received from the joystick write a code to control the robot. (Note: For communication use Zigbee) Note: For zigbee configuration you will require XCTU: XCTU Install

Also configure the zigbee to communicate with each other.

Following is the control of the robot:

InputRobot Action
Joystic Middle ButtonStop
Joystick LeftLeft
Joystick RightRight
Joystick FrontForward
Joystick BackBackward
Limit Switch 1Buzzer On
Limit Switch 2buzzer Off

Integrating Remote Control with Lab 4 implementation:

Following arena will be used for the finals.

parking-arena
  1. The robot can be started from any Start position. Once you start the robot, wait for the input from the remote. Two limit switches can be used to indicate the position of the robot, wether it started from the right or left.
  2. Once robot receives input from the remote, it should start following the line.
  3. If the robot deviates from the line, team members can use the remote to guide it back on track. (You can implement additional communication functionalities as needed.)
  4. Once the robot enters in the parking area, it should search for the empty parking slot and park itself.

Important Notes:

  • Remote control serves as a backup due to potential robot inconsistencies.
  • Excessive reliance on remote control will result in point deductions. A perfectly autonomous run earns the highest marks.
  • The final competition will involve four robots navigating the arena simultaneously. Consider dynamic obstacle avoidance (other robots) while enhancing your line following implementation.
  • If robots collide, we will instruct one to stop using the remote control.
  • Final project demo will be in person, so make sure that you test the robot in different lighting conditions.

Video Instructions:

  • Keep the robot at the start loaction. Turn on the robot. Initially robot should follow the white line.
  • Keep obstacle (alphabot box can be used) in 4 random parking locations.
  • Show that the robot has avoided the obstacles and parked itself in an empty parking location..

Follow the same instructions as outlined in Lab 4. If you've made improvements to the robot's speed or overall implementation, feel free to reshoot the video for submission and submit it.

Finals of the project will be done on 16th April. During 16th we will have run in person. This video will just be a backup. Evaluation will be done based on the final run.


Submission Instructions

  • For Lab-5 submission you have to upload a .tar.gz file.
    1. Heptagon Project folder: It should contain following
      • Heptagon Folder: Containing the heptagon implementation of the logic.
      • Integrate.sh file: to generate the c files from heptagon.
      • Supervisor Folder: it contains supervisor.ino file and auto generated c files from the heptagon.
    2. Readme.txt file:
      • Youtube link of the video - shoot the working of the robot moving from Point A to Point B.
    3. Contribution.txt file: stating detailed contribution of each member
  • Compress the folder and rename it as <GroupName>_Lab_5.tar.gz (check your file, it shouldn't be empty)
  • Upload the file on Moodle
  • There should be only one submission per group. Member having highest roll no should do the submission.