EE4214 Presentation
This presentation explores the design and implementation of a sophisticated line-following robot equipped with video streaming capabilities and manual overrides. Key components such as the sensing unit, motor driver (L293D), chassis, and power unit are detailed alongside communication protocols. The robot incorporates hard real-time tasks ensuring responsiveness, while features like RS232 communication enable seamless video chunk transfer. Additionally, the system architecture is outlined through relevant block diagrams and flowcharts, demonstrating an organized approach to real-time control and user interface integration.
EE4214 Presentation
E N D
Presentation Transcript
Abhinav Shukla Dhawal Jitendrakumar Shah Kaushik Narayanan Muhammad Kassim PrabandanaListyanto ShubhangiFaujdar EE4214 Presentation
Features • Line Following • Video Streaming • Manual Over-rides • IPC communication
Line Following • Hard-real time task • To achieve our stated requirements, we have split the robot into various sections. They are as following: • Sensing unit • Motor driver • Chassis, wheels and gearbox • Power unit
Sensors Comparator circuit to obtain TTL compatible logic levels uCSimm (Interfacing through Port D) Motor Driver (L293D) Left Right Motor Motor Block Diagram
Vcc From sensor To uCSimm - + 10k Pot Ground Vcc 10 k resistance From IR transmitter To comparator Photodiode ground Sensing Unit • Initial plan • Chosen sensors
Motor Driver EN • Circuit Diagram MOTOR MOTOR DRIVER
Chassis, Wheels & Gearbox • Platform chassis • Tamiya gearbox • Freely-rotating backwheel
Power Unit • Circuit Diagram
Interfacing Hardware & uCSimm • Checks for the manual over-rides from the User Interface and works accordingly • Checks if the robot is following line
FlowChart Get Input from the H/W Is it following line? Is there a manual Over-ride YES NO YES NO Follow the over-ride Change direction
Start Receive Video chunks via RS232 cable Play the video file No Time >= 4 secs Combine packets into video file. Yes Block Diagram • >>Bash script used to implement the process flow.
Combining Video Packets • Tool used ->Mencoder. • Command line video decoding and encoding tool released under GNU GPL.
Video Playback • Tool Used : Gstreamer . • Pipeline-based Multimedia Framework • Generic pipeline would look like: source -> decoder -> filter -> sink • Rough implementation of our pipeline: Video File ->Decodebin ->XvImageSink ->Osssink
Main Software Diagram uCsimm RS232_task (rs232 scheduler) Video_task (video scheduler) FIFO reader Write_to_port (Motor control) Line-task (line check) Kernel space FIFO 0 FIFO 1 IPC Final_app RS232 Server app Socket Server app User space RS232 Ethernet Host PC Command message RS232 agent app Socket Client app Signal / info message GUI Robot controller Video player Data communication
Real Time Task & Priority • RS232_Task (Priority 1) • Read_Fifo (Priority 1) • Line_Task (Priority 0) • WriteToPort (Priority 0) • Send_Video (Priority 1)
User Space & IPC • The need to build some task in user space • Two tasks to be accomplished in the user space: 1. Reading the RS232 data containing movement override from user 2. Sending video files to host PC via Ethernet
Host PC Application • Socket client apps file transfer • GUI user command override
Task Scheduling • Periodic, Fixed priority • Ensure high priority task not to fail
File Transfer Protocol Server Client Connection setup (setup port, bind, etc) Listen for incoming request SEND_FILE_1 OK [file name] OK [file size] Setup file based on file name and name size OK [file chunk 1] OK ……. [file chunk N] OK FINISH Close file