This document describes an autonomous vehicle project undertaken by a team of students. The team modified a remote control truck to navigate hallways and avoid obstacles autonomously using an Arduino microcontroller. The vehicle uses ultrasonic sensors for obstacle detection and PID control to follow walls at a set distance. The team developed software for wall following and obstacle avoidance behaviors to enable the vehicle to maneuver autonomously.
1) The intern summarized their 10-week internship at Cipta Teguh Architects SDN. BHD., where they gained experience in areas like 3D modeling, interior design, drafting permit drawings, and more.
2) They worked on several projects including residential and mixed-use developments, providing 3D modeling, schematic design, and permit drawing assistance.
3) Through this internship, the student learned practical skills like 3D modeling in SketchUp, design development, and understanding regulatory requirements. They also gained valuable insights into working in an architectural firm.
Project report on multiplex management systemSavita Sharma
This report contain the detailed structure of a multiplex system.
How it can be manages.
The tools and platform used.
How does it work and what are its benefits.
مقدمة في إدارة العقود الهندسية
The lecture includes:
- 5/50 Questions of Contract Fundamentals
- 3 Suites of Standard Forms of Contracts
- 5 Examples of Case Law
- 1 Sub-clause of FIDIC Red Book 2017
Video: https://youtu.be/2vrYi0PxpYg
This document is a summer practice report submitted by an electrical engineering student named Cem Recai ÇIRAK. The report details the student's 4-week summer internship at OKIDA Electronics, a Turkish company that develops electronic modules for appliances and security systems. During the internship, the student familiarized themselves with electrical components like bridge diodes and relays. They also learned soldering techniques and tested prototypes for electromagnetic compatibility and thermal performance. The report provides an overview of the company and a description of the work the student performed in OKIDA's research and development department during their summer internship.
The document provides details about the author's internship at Kaz Software Limited. It discusses the company profile including services provided, tools and technologies used, office location and culture. It also outlines two projects the author worked on around bug fixing and feature development. The author reflects on learning new skills and technologies as well as professional and personal growth during the internship experience.
Sample of A logbook for Bachelor of Science in computer science , software en...Paullaster Okoth
This is a well summarised internship/attachment logbook that has covered critical areas in information technology that any computer science student or any related course might want to learn...
BIM extends superior capabilities for architects, builders, and other stakeholders in streamlining the construction process. Planning and execution are key processes that need clashes to be identified and resolved to mitigate risks and project delays. Project teams and stakeholders can keep projects on track through 3D coordination while reducing rework with accurate clash detection services.
Clash detection is one of the most crucial aspects of preconstruction wherein contractors can improve construction costs and enhance constructability using in-depth 3D visualization capabilities. Clash-detection promotes the flawless onsite installation of building equipment or components that save on project time and costs.
1) The intern summarized their 10-week internship at Cipta Teguh Architects SDN. BHD., where they gained experience in areas like 3D modeling, interior design, drafting permit drawings, and more.
2) They worked on several projects including residential and mixed-use developments, providing 3D modeling, schematic design, and permit drawing assistance.
3) Through this internship, the student learned practical skills like 3D modeling in SketchUp, design development, and understanding regulatory requirements. They also gained valuable insights into working in an architectural firm.
Project report on multiplex management systemSavita Sharma
This report contain the detailed structure of a multiplex system.
How it can be manages.
The tools and platform used.
How does it work and what are its benefits.
مقدمة في إدارة العقود الهندسية
The lecture includes:
- 5/50 Questions of Contract Fundamentals
- 3 Suites of Standard Forms of Contracts
- 5 Examples of Case Law
- 1 Sub-clause of FIDIC Red Book 2017
Video: https://youtu.be/2vrYi0PxpYg
This document is a summer practice report submitted by an electrical engineering student named Cem Recai ÇIRAK. The report details the student's 4-week summer internship at OKIDA Electronics, a Turkish company that develops electronic modules for appliances and security systems. During the internship, the student familiarized themselves with electrical components like bridge diodes and relays. They also learned soldering techniques and tested prototypes for electromagnetic compatibility and thermal performance. The report provides an overview of the company and a description of the work the student performed in OKIDA's research and development department during their summer internship.
The document provides details about the author's internship at Kaz Software Limited. It discusses the company profile including services provided, tools and technologies used, office location and culture. It also outlines two projects the author worked on around bug fixing and feature development. The author reflects on learning new skills and technologies as well as professional and personal growth during the internship experience.
Sample of A logbook for Bachelor of Science in computer science , software en...Paullaster Okoth
This is a well summarised internship/attachment logbook that has covered critical areas in information technology that any computer science student or any related course might want to learn...
BIM extends superior capabilities for architects, builders, and other stakeholders in streamlining the construction process. Planning and execution are key processes that need clashes to be identified and resolved to mitigate risks and project delays. Project teams and stakeholders can keep projects on track through 3D coordination while reducing rework with accurate clash detection services.
Clash detection is one of the most crucial aspects of preconstruction wherein contractors can improve construction costs and enhance constructability using in-depth 3D visualization capabilities. Clash-detection promotes the flawless onsite installation of building equipment or components that save on project time and costs.
Srinivasa D is seeking a challenging position that utilizes his skills in testing. He has experience in manual testing, HTML, SQL, and core Java. He has certifications in manual testing and Oracle 10g from QSPIDERS Institute. As a student, he led a project on multicast protocols and conducted testing projects on Gmail and web applications. His strengths include being self-motivated, a team player, and good listener.
This document describes a project to interface an application with a master product database. It discusses functional and technical overviews of change requests, cancellation requests, approval/routing processes, and generating NOPC reports. It also covers testing plans and provides information on using AngularJS to develop a single page application for the NOPC report. Diagrams illustrate the technical processes and flowcharts depict the functional workflows. The project aims to integrate an application with a centralized product database to support change management.
Anteneh Temesgen Ejigu has provided his curriculum vitae. He has a MSc in Communication System Engineering from Bahir Dar University and a BSc in Electrical Engineering also from Bahir Dar University. He has worked for Ethio Telecom for over 10 years in various roles including as a radio access network engineer, transmission engineer, and purchaser. He has extensive experience working with mobile radio networks including 2G, 3G, GSM, and UMTS technologies. He also lists his education history, languages, skills, training, references, and confirms the accuracy of the information provided.
Simulating Presence: BIM to Virtual RealityJason Halaby
Virtual Reality is becoming a powerful tool for architects to validate and communicate their designs. Jason Halaby presents recent experimentation and implementation of VR at WRNS Studio. This presentation was given in San Francisco on February 13, 2015 at an AIA event on "Emerging Technology in Architecture" sponsored by the Bay Area Young Architects (BAYA) group.
www.wrnsstudio.com
TrueCADD - Leading BIM Engineering Solutions provider firm in India. We have expertise in MEP BIM, Clash Detection, Revit MEP Coordination, Quantity Take off etc.
Suravi Akhter presented on her internship at Leads Corporation Limited. She discussed that Leads has been providing ICT solutions, training, and consulting since 1992 in Bangladesh. It follows agile development processes and has a friendly work culture. Suravi observed flexible work hours and a goal-oriented environment. She learned skills like Microsoft Bot Framework, Entity Framework, and ASP.NET MVC. Her contribution was on LINDA, an AI chatbot for LankaBangla Bank that provides account services. Some challenges were adjusting to the new environment and meeting deadlines.
Scott Allen Williams Résumé - Senior Java Software Developer - Agile Technolo...Scott Williams
ATTN: Currently seeking employment in the Austin, TX area as of 6-10-2014. Please ignore any older copies of my résumé you may find on Slideshare as they were posted w/out my permission, not to mention they are out of date.
Scott Allen Williams
512-277-4254
The student visited Flexronics Technology Pvt Ltd, a leading manufacturer of computer peripheral devices. The key points:
1) Flexronics manufactures Public Call Office Monitors (PCOM) and Fixed Cellular Terminals which are used for billing in call booths.
2) The company has departments for administration, quality control, assembly, testing, and packaging. Components are formed, mounted onto circuit boards, soldered, and tested.
3) PCOMs play an important role in call booths by calculating billing amounts based on call duration and location. They detect signals from the telephone exchange to determine when a call starts and ends.
Internship report on IT Audit. Report includes complete IT Audit process followed by the industry with Vulenerability Assessment Tools most commonly used.
AI-Human Dialogue for Architectural Design Concept Generation presentation 26...Galala University
AI-Human Dialogue for Architectural Design Concept Generation presentation
Architectural design concept generation is the process of coming up with the initial ideas for a new building or structure.
It is an essential part of the architectural design process, as it provides the foundation for the rest of the design.
AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
The AI system can be used to:
Generate ideas: The AI system can be used to generate a wide range of design ideas
Evaluate ideas: The AI system can also be used to evaluate design ideas. This can be done by considering factors such as functionality, aesthetics, and sustainability. This can help the architect to make informed decisions about the design.
Collaborate with the architect: The AI system can also be used to collaborate with the architect. This can be done by providing feedback on the architect's ideas or by generating new ideas based on the architect's input.
AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
The AI system can be used to:
Generate ideas: The AI system can be used to generate a wide range of design ideas
Evaluate ideas: The AI system can also be used to evaluate design ideas. This can be done by considering factors such as functionality, aesthetics, and sustainability. This can help the architect to make informed decisions about the design.
Collaborate with the architect: The AI system can also be used to collaborate with the architect. This can be done by providing feedback on the architect's ideas or by generating new ideas based on the architect's input. AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
The AI system can be used to:
Generate ideas: The AI system can be used to generate a wide range of design ideas
Evaluate ideas: The AI system can also be used to evaluate design ideas. This can be done by considering factors such as functionality, aesthetics, and sustainability. This can help the architect to make informed decisions about the design.
Collaborate with the architect: The AI system can also be used to collaborate with the architect. This can be done by providing feedback on the architect's ideas or by generating new ideas based on the architect's input.
AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
As AI systems continue to develop, they are likely to play an increasingly important role in the design process.
AI is not an end …It is only another beginning.
Thank you.
The document provides an overview of the training organization Zone24x7. It describes Zone24x7 as a technological company that provides hardware and software solutions. It details Zone24x7's organizational structure, products and services, partners and clients, and an assessment of its current position including strengths, weaknesses and suggestions. The training experience involved working on various software development projects at Zone24x7 to gain exposure to tools, technologies and company practices.
This document is the final year project report for a student who developed an attendance and access system. It includes sections on acknowledging contributors, describing the project objectives and scope, discussing the software and hardware used including LABView, a fingerprint reader, camera and card scanner. It also covers setting up a database in Microsoft Access to store student and attendance data. The system reads student cards and captures their photo and fingerprint, updates the database with time in/out and can generate web reports.
Sushma provides a resume summarizing her skills and experience in software testing. She has undergone training in manual testing, including smoke, functional, integration and system testing. She has skills in test case writing, execution and review. Sushma has experience with test management tools like Quality Centre and defect tracking tools like JIRA. She has a bachelor's degree in electronics and communication engineering and her hobbies include reading, designing saris and cooking.
This document summarizes an internship at Abu Dhabi EHS (Abu Dhabi Environment Health and Safety Center) where the intern engaged in tasks like writing emails and calls, creating PowerPoints and proposals, research, design work, translation, and more. The internship helped them learn about asking questions when unsure, being professional, organizing work, learning through observation, and presentation techniques. The environment and employees were described positively and the intern believes the experience will help them get a job in the future. Suggestions are made for Zayed University to provide more internship preparation and job application support.
RENOVATION AGREEMENT FORMAT
FREE LEGAL AND ACCOUNTANT FORMATS
KANOON KE RAKHWALE INDIA
HIRE LAWYER ONLINE
LAW FIRMS IN DELHI
CA FIRM DELHI
VISIT : https://www.kanoonkerakhwale.com/
VISIT : https://hirelawyeronline.com/
This document is a resume for Ankush Panchal. It includes his contact information, personal details like date of birth and marital status, languages known, career summary with over 5 years of experience in hydraulic engineering, educational qualifications including a diploma in mechanical engineering and pursuing a B.Tech, internship and plant experience, software skills, and experience working as a quality inspector, draughtsman, technical instructor, and junior design engineer for various companies. It expresses interest in drafting, designing, and the hydraulic field and declares all information provided is true and correct.
ePocket Solutions is a Norwegian company founded in 1985 that provides Handyman, a mobile work order management solution. Handyman allows field technicians to view work orders, register parts and time used, and capture signatures on customized checklists directly on a mobile device. It has over 10,000 users across industries like telecommunications, facilities management, and manufacturing. Customers like Dorma, Sønnico, Hafslund, and ASSA ABLOY have experienced benefits such as increased productivity, improved service quality, and faster response times through the use of Handyman's out-of-the-box mobile work order management capabilities.
Research in Internet of Things' Operating Systems (IoT OS's)Salahuddin ElKazak
This technical report explores research in operating systems for the Internet of Things (IoT OSs). It first defines IoT and operating systems, explaining their relationship. It then surveys the field of IoT OSs, comparing different systems and their specialized uses. The report argues that the growth of IoT has reignited research in OSs. It concludes that while IoT offers opportunities, current IoT OSs still require further research to ensure the safe and efficient development of the IoT.
This document is a training report submitted by M.K.P.R. Jayawardhana detailing their internship at WSO2 Lanka (pvt) Ltd from February 28, 2011 to September 23, 2011. The report includes an introduction to WSO2 as the training establishment, an overview of their technical training experiences working on projects related to security and implementing SAML to XACML, and a conclusion reflecting on the overall training.
It provides background on WSO2's vision, business model, organizational structure, and products. The technical training section describes building a sample client, developing an entitlement handler, and implementing SAML single sign-on for authentication and authorization using XACML. Non-
Student Industrial Training Presentation SlideKhairul Filhan
1) The document summarizes the student's 6-month internship at MIMOS KHTP working on the Software Development Team.
2) During the internship, the student worked on several projects involving NoSQL databases like MongoDB and MapDB, serialization with Gson and Avro, Elasticsearch, and parsing HTML with Jsoup.
3) The student faced challenges from the professional work environment and new technologies but achieved skills in databases, frameworks, testing, and coding best practices.
This short document promotes the creation of Haiku Deck presentations on SlideShare by providing an example Haiku Deck presentation. It encourages the reader to get started making their own Haiku Deck presentations by clicking a button to get started.
Drinking Profile: Meet the High Risk DrinkersAmmie_Sotelo
This document discusses high risk drinking behaviors. It defines different levels of drinking according to the NIAAA, with binge and heavy drinking being considered high risk. High risk drinking can lead to alcohol use disorder and involves behaviors like drinking games, drinking to get drunk, and drinking while driving or medicated. High risk patterns are characterized by frequent and large amounts of alcohol consumed, often developing from a young age within a social system that encourages drinking. Recognizing high risk behaviors and seeking help is important to change this habit.
Srinivasa D is seeking a challenging position that utilizes his skills in testing. He has experience in manual testing, HTML, SQL, and core Java. He has certifications in manual testing and Oracle 10g from QSPIDERS Institute. As a student, he led a project on multicast protocols and conducted testing projects on Gmail and web applications. His strengths include being self-motivated, a team player, and good listener.
This document describes a project to interface an application with a master product database. It discusses functional and technical overviews of change requests, cancellation requests, approval/routing processes, and generating NOPC reports. It also covers testing plans and provides information on using AngularJS to develop a single page application for the NOPC report. Diagrams illustrate the technical processes and flowcharts depict the functional workflows. The project aims to integrate an application with a centralized product database to support change management.
Anteneh Temesgen Ejigu has provided his curriculum vitae. He has a MSc in Communication System Engineering from Bahir Dar University and a BSc in Electrical Engineering also from Bahir Dar University. He has worked for Ethio Telecom for over 10 years in various roles including as a radio access network engineer, transmission engineer, and purchaser. He has extensive experience working with mobile radio networks including 2G, 3G, GSM, and UMTS technologies. He also lists his education history, languages, skills, training, references, and confirms the accuracy of the information provided.
Simulating Presence: BIM to Virtual RealityJason Halaby
Virtual Reality is becoming a powerful tool for architects to validate and communicate their designs. Jason Halaby presents recent experimentation and implementation of VR at WRNS Studio. This presentation was given in San Francisco on February 13, 2015 at an AIA event on "Emerging Technology in Architecture" sponsored by the Bay Area Young Architects (BAYA) group.
www.wrnsstudio.com
TrueCADD - Leading BIM Engineering Solutions provider firm in India. We have expertise in MEP BIM, Clash Detection, Revit MEP Coordination, Quantity Take off etc.
Suravi Akhter presented on her internship at Leads Corporation Limited. She discussed that Leads has been providing ICT solutions, training, and consulting since 1992 in Bangladesh. It follows agile development processes and has a friendly work culture. Suravi observed flexible work hours and a goal-oriented environment. She learned skills like Microsoft Bot Framework, Entity Framework, and ASP.NET MVC. Her contribution was on LINDA, an AI chatbot for LankaBangla Bank that provides account services. Some challenges were adjusting to the new environment and meeting deadlines.
Scott Allen Williams Résumé - Senior Java Software Developer - Agile Technolo...Scott Williams
ATTN: Currently seeking employment in the Austin, TX area as of 6-10-2014. Please ignore any older copies of my résumé you may find on Slideshare as they were posted w/out my permission, not to mention they are out of date.
Scott Allen Williams
512-277-4254
The student visited Flexronics Technology Pvt Ltd, a leading manufacturer of computer peripheral devices. The key points:
1) Flexronics manufactures Public Call Office Monitors (PCOM) and Fixed Cellular Terminals which are used for billing in call booths.
2) The company has departments for administration, quality control, assembly, testing, and packaging. Components are formed, mounted onto circuit boards, soldered, and tested.
3) PCOMs play an important role in call booths by calculating billing amounts based on call duration and location. They detect signals from the telephone exchange to determine when a call starts and ends.
Internship report on IT Audit. Report includes complete IT Audit process followed by the industry with Vulenerability Assessment Tools most commonly used.
AI-Human Dialogue for Architectural Design Concept Generation presentation 26...Galala University
AI-Human Dialogue for Architectural Design Concept Generation presentation
Architectural design concept generation is the process of coming up with the initial ideas for a new building or structure.
It is an essential part of the architectural design process, as it provides the foundation for the rest of the design.
AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
The AI system can be used to:
Generate ideas: The AI system can be used to generate a wide range of design ideas
Evaluate ideas: The AI system can also be used to evaluate design ideas. This can be done by considering factors such as functionality, aesthetics, and sustainability. This can help the architect to make informed decisions about the design.
Collaborate with the architect: The AI system can also be used to collaborate with the architect. This can be done by providing feedback on the architect's ideas or by generating new ideas based on the architect's input.
AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
The AI system can be used to:
Generate ideas: The AI system can be used to generate a wide range of design ideas
Evaluate ideas: The AI system can also be used to evaluate design ideas. This can be done by considering factors such as functionality, aesthetics, and sustainability. This can help the architect to make informed decisions about the design.
Collaborate with the architect: The AI system can also be used to collaborate with the architect. This can be done by providing feedback on the architect's ideas or by generating new ideas based on the architect's input. AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
The AI system can be used to:
Generate ideas: The AI system can be used to generate a wide range of design ideas
Evaluate ideas: The AI system can also be used to evaluate design ideas. This can be done by considering factors such as functionality, aesthetics, and sustainability. This can help the architect to make informed decisions about the design.
Collaborate with the architect: The AI system can also be used to collaborate with the architect. This can be done by providing feedback on the architect's ideas or by generating new ideas based on the architect's input.
AI-human dialogue for architectural design concept generation is a process where an architect and an AI system collaborate to generate architectural design concepts.
As AI systems continue to develop, they are likely to play an increasingly important role in the design process.
AI is not an end …It is only another beginning.
Thank you.
The document provides an overview of the training organization Zone24x7. It describes Zone24x7 as a technological company that provides hardware and software solutions. It details Zone24x7's organizational structure, products and services, partners and clients, and an assessment of its current position including strengths, weaknesses and suggestions. The training experience involved working on various software development projects at Zone24x7 to gain exposure to tools, technologies and company practices.
This document is the final year project report for a student who developed an attendance and access system. It includes sections on acknowledging contributors, describing the project objectives and scope, discussing the software and hardware used including LABView, a fingerprint reader, camera and card scanner. It also covers setting up a database in Microsoft Access to store student and attendance data. The system reads student cards and captures their photo and fingerprint, updates the database with time in/out and can generate web reports.
Sushma provides a resume summarizing her skills and experience in software testing. She has undergone training in manual testing, including smoke, functional, integration and system testing. She has skills in test case writing, execution and review. Sushma has experience with test management tools like Quality Centre and defect tracking tools like JIRA. She has a bachelor's degree in electronics and communication engineering and her hobbies include reading, designing saris and cooking.
This document summarizes an internship at Abu Dhabi EHS (Abu Dhabi Environment Health and Safety Center) where the intern engaged in tasks like writing emails and calls, creating PowerPoints and proposals, research, design work, translation, and more. The internship helped them learn about asking questions when unsure, being professional, organizing work, learning through observation, and presentation techniques. The environment and employees were described positively and the intern believes the experience will help them get a job in the future. Suggestions are made for Zayed University to provide more internship preparation and job application support.
RENOVATION AGREEMENT FORMAT
FREE LEGAL AND ACCOUNTANT FORMATS
KANOON KE RAKHWALE INDIA
HIRE LAWYER ONLINE
LAW FIRMS IN DELHI
CA FIRM DELHI
VISIT : https://www.kanoonkerakhwale.com/
VISIT : https://hirelawyeronline.com/
This document is a resume for Ankush Panchal. It includes his contact information, personal details like date of birth and marital status, languages known, career summary with over 5 years of experience in hydraulic engineering, educational qualifications including a diploma in mechanical engineering and pursuing a B.Tech, internship and plant experience, software skills, and experience working as a quality inspector, draughtsman, technical instructor, and junior design engineer for various companies. It expresses interest in drafting, designing, and the hydraulic field and declares all information provided is true and correct.
ePocket Solutions is a Norwegian company founded in 1985 that provides Handyman, a mobile work order management solution. Handyman allows field technicians to view work orders, register parts and time used, and capture signatures on customized checklists directly on a mobile device. It has over 10,000 users across industries like telecommunications, facilities management, and manufacturing. Customers like Dorma, Sønnico, Hafslund, and ASSA ABLOY have experienced benefits such as increased productivity, improved service quality, and faster response times through the use of Handyman's out-of-the-box mobile work order management capabilities.
Research in Internet of Things' Operating Systems (IoT OS's)Salahuddin ElKazak
This technical report explores research in operating systems for the Internet of Things (IoT OSs). It first defines IoT and operating systems, explaining their relationship. It then surveys the field of IoT OSs, comparing different systems and their specialized uses. The report argues that the growth of IoT has reignited research in OSs. It concludes that while IoT offers opportunities, current IoT OSs still require further research to ensure the safe and efficient development of the IoT.
This document is a training report submitted by M.K.P.R. Jayawardhana detailing their internship at WSO2 Lanka (pvt) Ltd from February 28, 2011 to September 23, 2011. The report includes an introduction to WSO2 as the training establishment, an overview of their technical training experiences working on projects related to security and implementing SAML to XACML, and a conclusion reflecting on the overall training.
It provides background on WSO2's vision, business model, organizational structure, and products. The technical training section describes building a sample client, developing an entitlement handler, and implementing SAML single sign-on for authentication and authorization using XACML. Non-
Student Industrial Training Presentation SlideKhairul Filhan
1) The document summarizes the student's 6-month internship at MIMOS KHTP working on the Software Development Team.
2) During the internship, the student worked on several projects involving NoSQL databases like MongoDB and MapDB, serialization with Gson and Avro, Elasticsearch, and parsing HTML with Jsoup.
3) The student faced challenges from the professional work environment and new technologies but achieved skills in databases, frameworks, testing, and coding best practices.
This short document promotes the creation of Haiku Deck presentations on SlideShare by providing an example Haiku Deck presentation. It encourages the reader to get started making their own Haiku Deck presentations by clicking a button to get started.
Drinking Profile: Meet the High Risk DrinkersAmmie_Sotelo
This document discusses high risk drinking behaviors. It defines different levels of drinking according to the NIAAA, with binge and heavy drinking being considered high risk. High risk drinking can lead to alcohol use disorder and involves behaviors like drinking games, drinking to get drunk, and drinking while driving or medicated. High risk patterns are characterized by frequent and large amounts of alcohol consumed, often developing from a young age within a social system that encourages drinking. Recognizing high risk behaviors and seeking help is important to change this habit.
The document discusses how email came to dominate business communications and some of its downsides. It notes that while email was initially appealing due to being fast, easy to use, and cheap, it has led to issues like email overload which reduces productivity. Some key problems with relying heavily on email include it being a poor knowledge repository, lack of accountability, and allowing work to be passed to others without consent. Alternatives to email are emerging, but reducing reliance on email is challenging given its entrenchment in business culture.
This SQL query uses joins, inner joins, and self joins to present a report on invoice amounts spent against their corresponding Purchase Orders. The query selects various fields like PO ID, vendor, PO number, amount, total pending amount, total paid, total rejected, total invoice amount, and percentage of amount spent. It then joins tables for PO details, invoices, invoice details, and projects to retrieve the required data and displays the results on page 3.
The document is the final report for an automated welding system developed by a senior design team to improve the process of installing PVC roofing membranes. The system uses induction heating to fuse metal plates adhered to insulation to the membrane in a non-destructive manner. The team's prototype aims to semi-automate the plate locating and welding processes to improve job quality, consistency and reduce time compared to existing manual tools. It features a sensor array to locate plates, an induction coil for heating, and integrated systems to automate critical functions while maintaining performance. Testing showed the prototype was able to successfully locate and weld plates meeting strength specifications.
The document provides a summary of Manish Anilkumar Gajjar's work experience, education, and skills. It details his 15 years of experience in maintenance and planning roles at a large steel plant. It also lists his educational qualifications including a B.E. in Mechanical Engineering. His technical skills include expertise in SAP modules, maintenance planning, and overhauling of various industrial equipment.
1. The document discusses customer demands and pain points regarding collaboration using email and traditional tools. It notes that while email is ubiquitous, it is not well-suited for collaboration and leads to issues like miscommunication and information overload.
2. It then evaluates the Vmoso strategy and how it addresses key areas for effective communication and collaboration, such as personalized communication, unified work both internally and with external partners, integrated systems that connect to existing tools, and organized information.
3. Vmoso is presented as a cloud-based solution that can improve workplace productivity through features like transforming emails into collaborative activities, seamless desktop and mobile access, and connecting internal and external users while maintaining security and organization of information.
This document provides specifications and calculations for an aircraft design. It estimates weights, wing loading, thrust-to-weight ratios, center of gravity locations, and landing gear specifications. Gross weight is estimated to be 295,660 lbs. Minimum wing loading is 38,977 lbs/ft^2. Maximum thrust-to-weight ratio is 0.3143. Preliminary center of gravity is at 50.175 ft. Secondary estimates incorporate wings and tails to obtain a center of gravity of 50.889 ft. Landing gear and wing placement locations are also calculated.
The document summarizes trends in oil and gas claims, including differences between traditional and fracking blowouts, issues with old plugged and abandoned wells interacting with CO2 injection fields, pollution claims that interact with control of well and general liability policies, additional insured claims, and relationship issues between operators and service companies due to liability claims. It also provides case studies on specific claims and discusses final remarks and contact information from industry experts.
This document summarizes trends in oil and gas claims, including differences between traditional and fracking-induced blowouts, issues with old plugged and abandoned wells interacting with CO2 injection fields, pollution claims involving both control of well and general liability policies, additional insured claims, and relationship problems between operators and service companies due to liability claims. Key points discussed include available casing repair endorsements, court rulings on coverage, new regulations in Texas, CO2 injection processes, cement and rock factors in well integrity, and case studies on claim amounts and abandoned well liabilities.
The document is a cover letter and resume submitted by Mirela-Maria Moldovan for a new position. She has over 15 years of experience in customer service, operations, and logistics roles focused on transportation and shipping. Her objective is to use her knowledge and experience to advance her career at a company that offers opportunities for growth.
This document outlines a presentation for a University Risk Management and Insurance Association conference on construction defect and delay issues. It discusses common causes of construction problems like faulty materials and workmanship. It also covers risk mitigation strategies like contractor selection methods, construction contract types, project management best practices, and quality and safety programs. Case studies are presented to illustrate construction accidents and defects. Strategies are discussed for achieving zero construction defects.
- Ganesh Chinadurai has over 17 years of experience conducting inspections of mechanical, pressure vessels, piping, modules, structures, tanks, welding, painting and insulation projects for oil, gas and petrochemical plants.
- He is certified in API, ASNT and AWS standards and has experience working in countries like Saudi Arabia, Qatar, Nigeria, Oman and India.
- His responsibilities have included scheduling inspections, assessing equipment condition, authoring reports and recommendations, and ensuring compliance with codes and procedures.
This document discusses fog computing, which extends cloud computing to the edge of the network. It describes the existing cloud computing model and proposes fog computing as an alternative to address issues like latency. Key topics covered include security issues, privacy issues, potential scenarios and applications of fog computing, and ideas for future enhancement.
- Business communication has become inefficient due to communication overload from too many messaging channels, lack of accountability when people don't respond to messages, and fragmentation of information across different apps.
- To address these issues, the document recommends adopting an enterprise social network that integrates messaging, file sharing, tasks, and social features into one centralized place to reduce overload and fragmentation while increasing accountability. It also warns against relying on multiple best-of-breed apps that scatter corporate knowledge and data across various services.
Este documento presenta un sílabo para la asignatura de Danza y Expresión Corporal. Contiene información general sobre la asignatura, ubicación, distribución horaria, sumilla, competencias y capacidades a desarrollar, programación del proceso de aprendizaje, y bibliografía. El sílabo cubre cuatro unidades temáticas: el arte y la cultura, el arte y la pedagogía, el folklore peruano, y la apreciación y expresión de la música y danza peruanas.
The document provides information about renting, buying, financing, and servicing test equipment from TMG. It includes a disclaimer stating that trademarks appearing in the PDF are owned by their respective companies. The second page describes the JDSU 2000 Platform, a handheld, modular tester designed for fiber network construction, turn-up, and maintenance. It has a user manual and complies with the WEEE Directive for electronic waste.
This document describes a project to design a real time clock using a microcontroller. It includes:
- Interfacing an RTC chip and LCD with an 8051 microcontroller to display the current time and date.
- Interfacing a temperature sensor with the microcontroller using an ADC to measure temperature.
- Details about the 8051 microcontroller, RTC chip, LCD, temperature sensor, and ADC used.
- Block diagram of the system and description of how the components are interconnected.
- The document is the user manual for the CL3108 / CL3116 LCD KVM switch, which provides instructions on installation, operation, and specifications of the device.
- It includes information on FCC compliance, a list of package contents, diagrams of the front and rear panels, instructions for hardware setup and basic operation, and descriptions of the on-screen display functions.
- The manual is intended to guide users on safely installing and using the KVM switch to control multiple computers from a single console.
Motorola solutions ap6532 access point installation guide (part no. 72 e 1493...Advantec Distribution
The document provides instructions for installing the Motorola AP6532 Access Point. It can be mounted on a wall or suspended ceiling and is available with integrated or external antennas. The wall mount uses two screws and anchors. For ceilings, the integrated model twists onto a T-bar grid and the external model uses additional hardware attached to ceiling tiles. Setup and configuration instructions are also included to complete the installation.
Motorola solutions ap6532 access point installation guide (part no. 72 e 1493...Advantec Distribution
This document provides installation instructions for the Motorola Solutions AP6532 Series Access Point. It includes details on package contents, hardware installation, initial setup, specifications, regulatory information, and support resources. The access point can be mounted on a wall or ceiling and receives power over Ethernet, with integrated antennas or external antenna options. Setup involves using an initial wizard to define a basic configuration.
This document is a project report submitted by Danburam Ayuba Kwasako to the Department of Electrical and Computer Engineering at Ahmadu Bello University in partial fulfillment of a B.Eng degree in Electrical and Computer Engineering. The report documents Kwasako's six month industrial training with the Power Holding Company of Nigeria Gombe Business Unit, where he learned both administrative and technical aspects of power distribution and maintenance. During the training, Kwasako participated in activities like installing transformers, mounting poles, and was educated on safety practices for working with electricity. The report is organized into five chapters that describe Kwasako's experiences and what he learned during the industrial training placement.
This document is the final project report for a group that designed and built a manually controlled 6 degree of freedom Stewart platform called TILTIT. It provides background on Stewart platforms and the RUMBA microcontroller used. It then details the design, build and testing process. The hardware was laser cut and assembled, and the software translates controller input to motor movements. Some errors in tilting and slow serial communications between components were encountered. The project resulted in a functional prototype but improvements are discussed for future work.
Motorola ap650 access point installation guide (part no. 72 e 131207-01 rev. d )Advantec Distribution
The document provides instructions for installing the Motorola AP-650 Thin Access Point, which can be mounted on a wall or suspended ceiling. It includes details on package contents, placement guidelines, wall and ceiling mounting procedures, and specifications. The integrated antenna model mounts using wall screws or clips on a suspended ceiling T-bar. The external antenna model also mounts on walls or ceilings and has options for external antenna connections.
Motorola ap650 access point installation guide (part no. 72 e 131207-01 rev. d )Advantec Distribution
The document provides installation instructions for the Motorola AP-650 Series Thin Access Point. It includes details on package contents, features, hardware installation instructions for wall and ceiling mounts, specifications, regulatory information, and customer support resources. Wall and ceiling mount options are described along with required hardware. Status indicators and technical specifications are listed.
The document provides installation instructions for the Motorola AP-650 Thin Access Point. It can be mounted on a wall or suspended ceiling and is available with integrated or external antennas. The document describes the package contents, features, wall and ceiling mounting procedures, specifications, regulatory information, and support resources. Installation requires attaching the access point to a wall or ceiling using the provided hardware and connecting an Ethernet cable from the access point to a switch with 802.3af power.
The document provides installation instructions for the Motorola AP-650 Thin Access Point. It can be mounted on a wall or suspended ceiling and comes in integrated antenna and external antenna models. The instructions describe the package contents, recommended placement, and step-by-step procedures for wall mounting or mounting on a suspended ceiling T-bar for both antenna models. Specifications and regulatory information are also included.
This document provides an overview of a European Commission-funded project called AC/DC that aims to advance the automotive industry through collaboration and modularity. The project supports the transition from build-to-order to customize-to-order production approaches. Key contributions of the project include the development of smart modular products like an innovative rear axle module, methods for collaborative production network management called Dynamic Supply Loops, and making production systems more flexible. The document provides details on the technical components developed and results of applying the new approaches, which achieved strategic objectives like reducing lead times and inventory.
This document provides information on planning and selecting AC drives with fixed speeds. It describes the working principle and run-up behavior of AC squirrel-cage motors, including their speed-torque characteristics. It also discusses multi-speed motors and switching torque. The document then covers rated motor data like size, power, speed and voltage. It concludes with synchronous speeds for different motor pole numbers.
This document is the bachelor's thesis of Cristóbal Cuevas García from June 2018. The thesis proposes a preliminary collision avoidance system for unmanned aerial vehicles using ultrasonic range finders and an Arduino microcontroller board. The system involves assembling a quadcopter from scratch and integrating additional hardware and software for collision avoidance. Ground and flight tests were conducted to evaluate the effectiveness of the collision avoidance system in detecting obstacles and maneuvering the quadcopter to avoid collisions. While the system was able to detect obstacles and trigger avoidance maneuvers, improving stability after avoidance maneuvers was identified as an area for future work.
This document provides guidance for developers of utility-scale solar photovoltaic power plants. It covers the entire project development process from early stage development through to construction, operation and financing. The document discusses key topics such as solar PV technology, site selection, plant design, permitting, contracts, construction, operations and maintenance, policies to support solar development, and financial analysis. It is intended to help project developers successfully develop, build and operate large-scale solar power plants.
This document provides guidance for developers of utility-scale solar photovoltaic power plants. It covers the entire project development process from early stage development through to construction, operation and financing. Key topics covered include solar PV technology, site selection, plant design, permitting, contracts, construction, operation and maintenance. The intended audience is project developers seeking to build large-scale solar farms.
This document provides guidance for developing utility-scale solar photovoltaic power plant projects. It covers the entire project development process from initial site selection and design through construction, operation and maintenance. Key topics discussed include solar PV technology, predicting energy yield, environmental permitting, power purchase agreements, and financial analysis. The intended audience is project developers.
Motorola solutions ap6522 access point installation guide wi ng 5.5 version...Advantec Distribution
This document provides installation instructions for the AP6522 Access Point. It includes guidelines for site preparation, package contents, hardware installation including wall and ceiling mounting options, antenna configuration, LED indicators, basic access point configuration, specifications, regulatory information, and support contact details. Installation requires an Ethernet switch or power supply to power the access point via Ethernet cable.
Utility-Scale Solar Photovoltaic Power Plants - A Project Developer’s GuidePrivate Consultants
This document provides guidance for developing utility-scale solar photovoltaic power plant projects. It covers the entire project development process from initial site selection and resource assessment through construction and long-term operation. Key topics discussed include solar PV technology, assessing the solar resource, predicting energy yield, site selection factors, plant design considerations, permitting requirements, engineering procurement and construction contracts, and financial analysis methods. The intended audience is project developers of large-scale solar power projects.
This document describes a student project to design and implement a prototype aviation control unit using LabVIEW software and hardware interfaces. The project aims to replicate key functions of a real aviation control unit such as detecting aircraft with an IR sensor, communicating between the control unit and pilot, and controlling runway lights. The students implemented systems for aircraft detection, motor control, data logging, user login, and a flight schedule announcement board. Some issues encountered included limitations of the breadboard setup and slow performance from multiple while loops updating data constantly. Overall the prototype was able to perform all functions as planned without difficulties.
1. Department of Mechanical Engineering and Mechanics
MEM 380: Autonomous Vehicles
Instructor: Dr. Harry Kwatny
Date: June 4, 2015
Team Members: Jon Affleck
Tyler Darrah
Elliot Farquhar
Jeff Fuller
Robert Stricek
Abstract
The design team had been tasked with developing an autonomously functioning vehicle,
converted from a Traxxas E-Maxx Remote Control Truck, capable of navigating hallways and
avoiding obstacles along the way. Such obstacles included small doorways, water fountains, conduit,
and corners. The team had performed slight modifications to the vehicle’s pre-existing electrical
configuration in order to alleviate performance issues, and then focused primarily on delivering the
software from which the vehicle would perform its intended task. This had been done using the
Arduino IDE (Integrated Development Environment) in conjunction with the Arduino UNO
controller board. The group developed two core functionalities for the vehicle to perform its intended
task, namely a wall following PID integrated controller and obstacle avoidance software.
2. 1 | P a g e
Table of Contents
I. Introduction ............................................................................................................................................ 3
1.1 Problem Statement .......................................................................................................................... 3
1.2 Applications ..................................................................................................................................... 3
II. Car Setup ............................................................................................................................................... 3
2.1 Hardware Specifications ................................................................................................................. ?
2.2 Modifications ................................................................................................................................... ?
2.2.A Electrical............................................................................................................................... ?
2.2.B Mechanical............................................................................................................................ ?
III. Logic Design ......................................................................................................................................... ?
3.1 Following Along Walls .................................................................................................................. ?
3.2 Obstacle Avoidance ........................................................................................................................ ?
3.2.A Doorways .............................................................................................................................. ?
3.2.B Obstacle In Front ................................................................................................................. ?
3.2.C Dead Ends and Right Hand Turns ..................................................................................... ?
3.2.D Left Hand Turns .................................................................................................................. ?
IV. Software Development ........................................................................................................................ ?
4.1 General Process............................................................................................................................... ?
4.2 Function Development ................................................................................................................... ?
4.3 PID Library Modifications ............................................................................................................ ?
V. Performance .......................................................................................................................................... ?
VI. Conclusion ............................................................................................................................................ ?
VII. Future Work ....................................................................................................................................... ?
VIII. References ......................................................................................................................................... ?
Appendix IX: Component Pictures .......................................................................................................... ?
Appendix X: Final Vehicle Pictures ......................................................................................................... ?
Appendix XI: Final Arduino Code ........................................................................................................... ?
3. 2 | P a g e
List of Figures
Figure 1: Original E-Maxx Factory Configuration…………..…..……………………………………………..……..4
Figure 2: Modified E-Maxx Configuration ...…………………………………………………………………..……..4
Figure 3: Ultrasonic Limiting Sensing Angle …………………………………………………………………....…...7
Figure 4: (Left) sensing field given a flat object (Right) sensing field given a round object …….…………………..7
Figure 5: Top down view of vehicle layout …………..…..………………………………………..…………..……..8
Figure 6: Wiring Diagram of the Control System …………..…..………………..…………………………………..9
Figure 7: PID Functional Block Diagram …………..…..…………………………………………………….……..10
Figure 8: Device Path as it Passes a Small Doorway …………..…..…………………………..………………..…..12
Figure 9: (Left to Right) Increasing Doorway Width Causing Sensor 1 to Reach its Limiting Angle ……….……..12
Figure 10: Sensor Limitations as the Device Becomes too Close to a Doorframe ………….………………………13
Figure 11: Device Response Given Full or Partially Path Obstruction …………..…..……………..…………..…..14
Figure 12: Device Obstacle Avoidance Routine …………..…..………………………………………….…..……..14
Figure 13: Device Path Given a Dead End or Right Hand Turn …………..…..……………..………………….…..15
Figure 14: Device Response Given a Left Hand Turn ………………………………………………………..……..16
Figure 15: PID Library Source Code, PID_compute() Method …………..…………………………………..……..18
Figure 16: Servo Turn Conditionals …………..…..………………………...………………………………..……..19
Figure 17: Obstacle Avoidance Code …………..…..………………………………….……………………..……..20
Figure 18: Parallax Ultrasonic Sensor …………..…..……………………………………………..………………..24
Figure 19: Arduino Uno Microcontroller …………..…..…………………………………………………….……..24
Figure 20: Victor 884 Motor Controller …………..…..……………………………………………………...……..24
Figure 21: Futaba S9402 Servo …………..…..……………………………………………..…………………….....24
Figure 22: Titan 550 Electric Motor …………..…..………………………………………………………….……..24
Figure 23: Tower Hobbies 7.2V 1500 mA Battery …………..…..…………………………………….……..……..24
Figure 24: Turnigy 7.4V 5000mA Battery …………..…..……………………….…………………………..……..25
Figure 25: Front View of Vehicle …………..…..……………………………………………………...……..……..25
Figure 26: Side View of Vehicle …………..…..……………………………………………..……………………..26
List of Tables
Table 1: Victor 884 Factory Specifications …….………………………………………………….......……………..4
Table 2: Futaba S9402 Factory Specifications ……………………………………………………………………….5
Table 3: Arduino Uno Factory Specifications ………………………………………………………………………..6
Table 4: Ultrasonic Sensor Factory Specifications.……………………………………………………….…………..6
Table 5: PI/ Servo Relationship..…………………………………………………………………………...………..19
4. 3 | P a g e
I. Introduction
1.1 Problem Statement
The main objective of this project was to explore the possible scenarios and solutions that
an autonomous vehicle could encounter in real world application. The team determined, from
instructor suggestion and our own personal goals, that the vehicle should be able to follow a wall
at a set distance, avoid obstacles, and maneuver corners. All of these challenges are based
indoors and on relatively level ground to allow the team to understand the fundamentals of
autonomous navigation.
1.2 Applications
As technology continues to improve the possibility of automated vehicles continues to
grow. For example, in today’s market there are a few vehicles which can parallel park without
the guidance of the driver. These vehicles rely on exterior sensors to relay proximity values to
microprocessors which then calculate the needed vehicle trajectory. These sensor values are
monitored by controllers which adjust the steering angle and speed as the car completes this task.
In more recent news, the first autonomous car drove itself across the country, from San Francisco
to New York City. No incidents were reported and no user was required except intricate city
maneuvering.
These examples and many others show the growing importance and possibilities of
autonomous driving. In such a busy world, every minute is precious. One day it will be possible
to read a book, sleep, or get dressed on your way to work instead of wasting that time dealing
with traffic. Though the vehicle the team is developing is a simpler version of the car which
drove across the country, the principles are still the same and the lessons learned could be
applied to your next car.
II. Car Setup
2.1 Hardware and Specifications
To start the project the design team was given a modified Traxxas E-Maxx Model 3906
Battery-Powered All-Terrain Truck. As seen in Figure 2 below, the modified truck utilized two
Titan 550 brushless motors, a Victor 884 motor controller, two Futaba S9402 steering servos,
heavier springs, and various Traxxas gears which lowered the differential speed. Some hardware,
5. 4 | P a g e
such as the radio receiver and the shifting servo, were removed due to their irrelevance to the
project. More detailed pictures of these individual components can be found in Appendix X.
Figure 1: Original E-Maxx Factory Configuration [1]
Figure 2: Modified E-Maxx Configuration
Of the mentioned truck components, the motor controller and the steering servos affect
the wall following capabilities of the device the most. Thus, in order for the microprocessor to
precisely maneuver the vehicle, the limitation of these components needed to be taken into
consideration. The specifications and limitations of each component are shown below.
Table 1: Victor 884 Factory Specifications [2]
6. 5 | P a g e
Table 2: Futaba S9402 Factory Specifications [3]
The team, for instance, needed to make sure that the proper operating voltage was
supplied to both the controller and the cooling fan. This was done through a new wiring setup
which will be explained in section 2.2A. Another concern was limiting the amount of current
sent to the motor controller. The batteries and microprocessor used in this project are well within
these component’s limits. As for moving the vehicle, the team wanted to keep the device at a
relatively slow pace. However, the team did have to maintain a speed greater than 5.4% of the
controller’s maximum value. This pace was determined through trial and error of analog values,
which will be explained in section 4.1.
Moving onto the control system, the main components consisted of an Arduino Uno and
three ping ultrasonic distance sensors from Parallax. The Arduino Uno is a fairly inexpensive
microprocessor which has some great features that can be seen in the table below. From a design
standpoint, the team was mainly concerned with the operating voltage, input voltage limits, and
the DC current output to the pins. As shown in Tables 3 and 4, the output voltages or currents do
not interfere with any of the other parts. The Arduino Uno also has the capability of sending
analog signals required by the servos. One feature which the team did not get to utilize was the
Arduino’s interrupts which were originally going to be used for the obstacle avoidance routine
explained in section 3.2.
Parameter Value
Nominal Voltage 12V
Min/Max Voltage 6V - 15V
Continous Current 60 A
Surge Current 150 A
Nominal PWMInput Pulse (high time) 1-2 miliseconds
Min/Max PWMInput Pulse (high time) .87-2.14 miliseconds
PWMInput Rate (period) 2.1 - 500 miliseconds
PWMOutput Chop Rate 1 KHz
Minimum Throttle 5.40%
Fan Voltage Range 6V - 16V
Parameter Value
Input Signal Analog
Nominal Voltage 6V
Maximum Torque 111 oz-in
7. 6 | P a g e
Table 3: Arduino Uno Factory Specifications [4]
Table 4: Ultrasonic Sensor Factory Specifications [5]
The second component of the control system was the ultrasonic sensors. These sensors
work by recording the time it takes a sound wave to hit an object and then return to the sensor.
Given the sensors pulse speed, the distance between the object and the sensor can be calculated
via D = V*(T/2). Some important limitations of these sensors include the minimum and
maximum sensing distances, the field pattern, and the maximum reading angle of 45. As shown
in Figure 3, at angles greater than 45 the sound waves bounce off of oncoming objects and travel
further away from the sensor. This returns an inaccurate distance value that is equal to the
sensors maximum, three meters. Considering the distance limits of the sensor, the team chose a
wall following distance well within this range of 18 inches.
Parameter Value
Operating Voltage 5V
Nominal Input Voltage 7V - 12V
Input Voltage (limits) 6V - 20V
# Digital I/O Pins 14
# Digital Pins w/ PWMOutput 6
# Interupt Pins 2
# Analog Input Pins 6
DC Current I/O Pins 40 mA
DC Current 3.3V Pin 50 mA
Flash Memory 32 KB
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
Parameter Value
Sensing Range 2cm - 3m
Operating Voltage 5V
Nominal Operating Current 30 mA
Maximum Operating Current 35 mA
Nominal PWMInput Pulse (high time) 2 miliseconds
Maximum PWMInput Pulse (high time) 5 miliseconds
8. 7 | P a g e
Figure 3: Ultrasonic Limiting Sensing Angle [5]
Though this cannot be avoided, another issue is the sensors inability to read certain
objects. As seen in Figure 4, the sensor has the ability to read flat objects, parallel to the sensor,
better than round objects. This is because the sound waves bounce off of round objects in
varying directions. Thus the field of sensing becomes wider but the maximum distance the
sensor can read is lessened. Most of the testing performed utilized flat objects such as walls,
boxes, doors, etc.
Figure 4: (Left) sensing field given a flat object (Right) sensing field given a round object [5]
Lastly, the batteries used for this project were 7.2V 6-cell rechargeable NiCd batteries
and Turnigy 5000mAh 2SIP 7.4V 30C batteries. The NiCd batteries were used to power the
Arduino and the servos while the more powerful Turnigy batteries were used to power the
motors.
9. 8 | P a g e
2.2 Modifications
2.2.A Mechanical Modifications
Figure 5 shows some of the other modifications which were previously made on the
Traxxas E-Maxx. Most notably, a clear acrylic platform was cut and mounted to the body struts
of the vehicle. This platform housed the ultrasonic sensors, Arduino Uno, and the battery supply
for the Arduino Uno and the servos. From this platform, the design team went on to change the
location of the ultrasonic sensors, power supply, and breadboard. The sensors were moves to the
front left of the platform with one facing forward, one on a 45 angle, and one facing left. For the
sake of this report the front facing sensor will be considered as sensor 1, the 45 angle sensor will
be considered as sensor 2, and the left facing sensor will be considered as sensor 3. Slight
modifications were also made to the suspension to level out the platform.
Figure 5: Top down view of vehicle layout
2.2B Electrical Modifications
Again, most of the original modified layout was left the same, but a few crucial changes
were made. The existing AA battery pack used to power the Arduino and servos, for example,
was removed and replaced by 2 NiCad batteries wired in parallel. This provided these
components with more current, allowing the vehicle to operate for longer, within the specified
ranges mentioned earlier.
10. 9 | P a g e
Another big change was commonly grounding the Arduino, servos, sensors, and motor
controller. In order for current to flow, there needs to be a positive and negative source to create
a potential difference. This difference is voltage. By commonly grounding these components to
the 5V ground, only 5V of electricity could flow to these components. Well within the specified
limitations of these components.
Lastly, a switch was added in-between the parallel Turnigy batteries and the motor
controller. This was so the design team could quickly cut power to the vehicle in case of
emergency. This also helped to conserve battery life and kept the vehicle from driving away
while programming was being performed. All of these electronic modifications can be seen in
the wiring diagram shown by Figure 6.
Figure 6: Wiring Diagram of the Control System.
III. Logic Design
3.1 Wall Following
The wall following function of the autonomous vehicle had been the primary objective
for the project. This required a means of the system being aware of its distance away from the
wall, reacting to inconsistencies over the course of its path and maintaining trajectory to the best
of its ability. An ultrasonic sensor had been utilized to pull distance data values into the
controller. These values were then handled by a software implemented PI controller algorithm.
The PI controller would perform the task of smoothing the vehicles trajectory and controlling its
reaction to inconsistencies such as small doorways, water fountains and conduit.
11. 10 | P a g e
Simply stated, a PI controller, a variation of the PID controller, calculates the error
between a measured process variable and a defined setpoint, and then attempts to minimize the
error by adjusting the process variable via a feedback loop. The controller utilizes 3 unique
constant parameters to perform the aforementioned task, namely the proportional, integral, and
derivative gains. In layman’s terms, the proportional component is calculated based on present
error, the integral component is based on the accumulation of past errors, and the derivative
component is based on the prediction of future errors [6]. A block diagram schematic is shown
below to illustrate the feedback and process.
Figure 7: PID Functional Block Diagram [6]
There a variety of ways to tune the parameters of PID controller to obtain a desired
response. Several involve mathematical calculations as per the equations shown in the above
figure. For this project, the design team had opted to use a manual tuning method via software
implementation. Following correct setup of the code, to be explained later, each parameter had
been tuned individually, first starting with the proportional gain. This value was increased from
its default value of 0 by increments of 1 until the team began to see oscillations in the vehicles
trajectory at a proportional gain of 4. From here, the integral component had been adjusted in a
similar fashion beginning with 1. This however produced a response that appeared to “ignore”
almost all inconsistencies in the wall that the vehicle had been using to gauge its distance,
rending the vehicle highly unresponsive. Values lower than 1 had been implemented in the
software controller, achieving more and more immediate results to variations in the walls of the
hallway. A value of 0.5 for the integral component had been used in conjunction with
12. 11 | P a g e
proportional gain of 4 selected previously. The vehicle had then been responsive enough to
navigate obscurities in the wall while also being able to quickly achieve steady-state at the
desired setpoint of 21 inches. The derivative component had been experimented with briefly
however yielded worse results than the PI controller alone, and was thus set aside for remaining
duration of the project. The performance of the controller can be viewed in the video file
packaged with this report.
3.2 Obstacle Avoidance
3.2.A Doorway Avoidance
The main function of the vehicle was to maintain a straight line, but a strict PI controller
was not a viable option due to inherent obstacles along the walls. Thus the group began by
developing a logic step to deal with doorways. Tests showed that as the vehicle rolled past a
doorway the ultrasonic readings would spike, especially if the door was open. If these higher
values were used in the PI controller the controller would then try to compensate by drastically
altering course and crashing the device. After looking at the vehicle geometry, the team decided
to add the values from sensor 2 into the PI controller. It is important to note that these other
ultrasonic sensor values would only be plugged into the controller if sensor 2 was reading closer
to an object than the sensor 3. Figure 8 depicts the vehicle traveling past a standard doorway.
Once sensor 3 reads a doorway the vehicle takes roughly a foot of linear travel to respond to the
spike in readings. This slow response corresponds to the tuned parameters of KP and KI
mentioned in the previous section. As the vehicle turns it gets not only closer to the wall but also
closer to the sensing range of sensor 2. Towards the end of the doorway the vehicle implements
values from sensor 2 causing the device to turn away from the wall.
13. 12 | P a g e
Figure 8: Device Path as it Passes a Small Doorway
In some cases this conditional statement worked to avoid doorways, but it strongly
depended upon the width of the doorway and the device’s distance from the wall as it passed the
doorway. These issues can be attributed to the inherent blind spots and sensor limitations of the
system. For example, if the doorway was much wider than 30 inches the vehicle would not be
able to use the values from sensor 2 to correct the vehicles path. For some doorways, however,
the front sensor would be able to see the doorframe. At a certain width even this sensor reaches
its limiting sensing angle, approximately 45 degrees. At this point the controller will treat this as
a large deviation from the set value causing the device to continue turning left until the set value
is reached again. This scenario can be seen in Figure 9 below. For doorways which the front
sensor can detect, an obstacle avoidance routine was implemented that will be explained shortly.
Figure 9: (Left to Right) Increasing Doorway Width Causing Sensor 1 to Reach its Limiting Angle
Blind Spot
Sensing Area
14. 13 | P a g e
If the device is too close to the doorway then another scenario arises where both sensor 2
and sensor 3 are not capable of seeing the oncoming door frame. In Figure 10, below, the vehicle
has reached the limiting angle of sensor 2 and the blind spot is preventing quick acquisition of
the doorframe by sensor 1. Thus, the vehicle must turn even more until the sensor 1 is within the
reading limits. At this point, even if the sensor 1 value was implemented into the PI controller
via another conditional statement, the device is too close to the door frame to correct. For both
scenarios, a conditional statement was introduced to the code which would only trigger if sensor
2 read less than 10 inches or if sensor 1 read less than 15 inches. If either of these conditions is
satisfied the vehicle will use the obstacle avoidance routine which will be explained next.
Figure 10: Sensor Limitations as the Device Becomes too Close to a Doorframe
3.2.B Obstruction Out Front
In order to identify an obstruction located in front of the device it uses both the 45 and the
0 sensor as described in the previous section. Figure 11 depicts two common scenarios that the
vehicle could encounter as it drives along the wall. The first is an obstruction completely in front
of the vehicle and the other is an obstruction that is only slightly in the path of the vehicle. If the
object is completely in front of the vehicle, sensor 1 will trip the conditional statement before
sensor 2. On the other hand, if the obstruction is only partially in front of the device sensor 2 will
trip the conditional since the sensor 1 will continuously read greater than 15 inches.
15. 14 | P a g e
Figure 11: Device Response Given Full or Partially Path Obstruction
As briefly described in the previous section, once the obstacle avoidance routine is
tripped the device will begin taking evasive maneuvers. First, the ultrasonic readings and the PI
controller are suppressed. Next, the device backs up for so many seconds while the wheels are
turned at an angle of 135 degrees. The device then drives forward while the wheels are turned at
an angle of 45 degrees. Once this is completed the ultrasonic values and the PI controller are then
turned back on and the device continues to correct and follow the wall. This process can be seen
in Figure 12 below.
Figure 12: Device Obstacle Avoidance Routine
3.2.C Dead Ends and Right Hand Turns
16. 15 | P a g e
In these scenarios, the vehicle treats the walls as set of obstacles located directly in front
of it. The vehicle will continue to perform the obstacle avoidance routine until the device is
heading in the same direction as it came or it makes the right hand turn of a hallway as seen in
Figure 13.
Figure 13: Device Path Given a Dead End or Right Hand Turn
3.2.D Left Hand Turns
The vehicle experiences left hand turns when the hallway it is driving down turns into a
hallway intersection or a large object is protruding from the wall. In this case, the main
correction comes from the PI controller. After repeated tests, it was apparent that the larger KI
was hurting the devices ability to make these turns fast enough as to stay 18 inches from the
wall. The further past the intersecting wall the vehicle traveled before beginning the turn the
harsher the impact angle of the device. Implementing the 45 sensor values into the PI controller
helped to alleviate this issue but did not completely solve it. The other scenarios were solved
after inserting the obstacle avoidance routine. Figure 14, below, depicts these two scenarios the
vehicle encountered after making the left hand turn. The first scenario uses the PI controller to
bring the device back to 18 inches from the wall while the second uses the obstacle avoidance
routine to back up turn and then use the PI controller to settle the device.
17. 16 | P a g e
Figure 14: Device Response Given a Left Hand Turn
IV. Software Development
Note: All unique and modified code is included in the appendices of the report, fully
commented for convenience. Below is a more detailed walkthrough of the program execution
and developmental process.
For sensing distance from the wall, a Ping))) Ultrasonic sensor had been mounted to the
left-hand side of the vehicle which would transmit and receive high frequency sound waves.
Example code had been modified from the NewPing library page of Arduino’s open source
website to trigger an emission pulse from the ultrasonic sensor and then change the sensors status
from an output to an input in which it would, in most cases, receive the sound pulse previously
emitted. The program was then designed to store the time value of the duration from which the
pulse had travelled and returned in the variable duration, accomplished through the use of a pre-
defined NewPing library method. From this point, another function had been called within the
sensor read function, which simply converts the stored duration to an inch value according to
pre-defined hardware specifications. Returning to the function, an inch value is now stored in the
variable inches, and returned upon exiting the function. This code had been placed in a custom
function to enable the design team to pull accurate distance data from any Ping sensor linked to
the controller board at any point during in the program. This also eliminated the need for lengthy
and messy sections of code. The function properties had also been modified to return a data type
18. 17 | P a g e
of double instead of the default integer value. This gave the readings much higher resolution with
distance values and thus, the vehicle could be more responsive.
The team knew that there had been a desired setpoint of 18 inches away from the wall,
established on the first day of the class. The ultrasonic used to gauge distance from the wall had
been offset into the vehicle body, thus 3 inches had been added to the setpoint of 18 making it
21. The team understood that the vehicle was required to maintain a certain distance from the
wall, and the team also knew that the vehicle must adapt reactively to changes in distance as it
travelled. The solution to this problem had been a PID controller, or PI because the Derivative
component had been set to 0, mentioned earlier in the report. Research had been conducted, and
it was found that the Arduino website also had an open source PID library available for
download. This code was implemented in the project to return a modified output value which is
adjusted based on the input from a ping sensor and the desired setpoint of 21. An example of the
PID input function is shown below.
PID PID1(&In1, &Out1, &Set1, 4.00, 0.5, 0.00, DIRECT);
The parameters accepted by the method are the input, output, desired setpoint, controller
parameters, and on-off state respectively. The sampling time for the controller had been set to the
smallest possible time of 1 millisecond via a method from the PID library. During testing with
the vehicle, it had been found that the PID computation algorithm in the PID library functioned
similarly to an Arduino PWM output. How this works, is that the Arduino can supply a voltage
to a load anywhere between 0 and 5V on a pre-defined scale of 0 to 255. 0 corresponds to 0
Volts and 255 corresponds to 5 Volts, with fractional values lying between. The PID code was
developed to restrict the integral gain and total output gain to the same range as the Arduino
PWM output, 0 to 255 respectively. This proved to be problematic for the team because the PI
controller output was used to position the steering servos appropriately. The servos work on an
angular scale, with 0 degrees on the positive x-axis corresponding to a complete rightward
position, and a maximum of 180 degrees corresponding to a complete leftward position. 90
degrees would therefore position the wheels of the vehicle straight forward. As a side note, the
wheels had been restricted to turning between the angles of 45 degrees and 135 degrees because
of the mechanical limitations of the vehicle. Any angles beyond these points would cause strain
19. 18 | P a g e
on the components and cause jittering. The problem encountered however was that it was unclear
how to mathematically turn the servos in either the left or right directions using only the
Arduino’s and PI’s 0 to 255 scale.
The challenge was address by modification of the PID libraries source code, shown in
Figure 15 below.
Figure 15: PID Library Source Code, PID_compute() Method
The modifications had been dated for appropriate documentation. There had been two sets of
conditionals limiting the maximum and minimum values that the integral and total outputs could
achieve. These conditionals had simply been commented out whereas the code would now be
able to return a full spectrum of both positive and negative values on an uneven scale, which had
then been utilized for even positioning of the servos. Now that an even output scale from the PI
had been achieved, it had been necessary to translate this mathematically to a scale that the servo
driving function could use. This had been accomplished by taking the PI controller output and
finding the percent difference between it and the desired setpoint. The percent difference can
then be used to compute a percent deviation on the restricted, 45-135, degree scale from which
the servos would be positioned. The conditionals below represent the aforementioned
mathematical process and a sample table of controller inputs, outputs, and servo angles are
20. 19 | P a g e
displayed below according to that conditional. Recall that the input is a distance value pulled
from the ultrasonic sensor #3 on the left-hand side of the vehicle.
Table 5: PI/ Servo Relationship
Figure 16: Servo Turn Conditionals
Looking at the above table, the green illustrates when the wheels are straight and the vehicle is
travelling on its intended course. The yellow marks where the vehicle achieves its maximum
turning angles with 45 being the sharpest right turn it can possibly make and 135 the sharpest left
turn it could possibly make. The calculations are accurate up to 2 decimal places as per the
modification to the Ping distance return function. The Servo.write() function will only accept
integer values however so some accuracy is lost. The wheel turning is as smooth as possible
through the given hardware components and programming methods.
At the end of the repeated loop in the microcontroller, the vehicles drive servos are
instructed to turn 12 degrees (value of 102) in the positive direction, achieving a moderate
forward speed. Faster speeds are possible however the PI controller becomes less and less
accurate, and thus the vehicle cannot react quick enough to adapt to distance changes along the
wall. It should be noted that there had been complications with the drive servos. They did not
turn according to Arduino Servo library’s description. Some angles did not produce movement at
all when they indeed should have. This is likely attributed to a faulty electrical setup, but
troubleshooting did not yield any solutions.
Once the wall following component of the project had been completed, the team noticed
that the vehicle still retained issues with avoiding larger obstacles and navigating corners. An
obstacle avoidance section had been added to the program allowing the vehicle to use 2
additional ultrasonic sensors, namely sensor 2 (45 degrees) and sensor 3 (forward facing). This
Setpoint Input Output Servo Angle
21 15.67 24 45
21 16.33 21 45
21 17.89 14 60
21 21 0 90
21 24.11 -14 120
21 25.67 -21 135
21 26.33 -24 135
21. 20 | P a g e
section of code is executed before the computation of the PI controller because the controller was
adapted to handle the smallest input between the left side sensor 1 and the 45 degree sensor 2.
The vehicle had now been able to begin turning away from the wall earlier if it found itself
entering the wall at too sharp an angle for the left-side sensor to pick up accurately. This is the
pre-emptive section of obstacle avoidance because the vehicle tries to preserve its forward travel,
however there is another more complicated section of obstacle avoidance that acts as a last
resort. A conditional checks the front facing sensor and 45 degree sensor for how close an
incoming object is, and once an object meets certain threshold values, a second obstacle
avoidance technique is triggered. At this point, the vehicle has moved beyond a point where it
will successfully be able to move forward around an object. Instead of collision, the vehicle stops
for ½ second and turns the steering servos 135 degrees to the left and backs up for 1.25 seconds.
The steering servos then adjust to 45 degrees rightward and continue driving forward.
Figure 17: Obstacle Avoidance Code
Obstacle avoidance had been the final addition to the code and concluded the development of the
vehicle for the Spring 2015 Term.
V. Performance
22. 21 | P a g e
The performance of the vehicle (as can be seen in the attached video) was as expected; all
major performance objectives were achieved. The vehicle was able to autonomously follow a
wall, avoid various obstacles on the left side (including doorways), and make turns to both the
left and right as the setup of the hallway dictated. Left turns were made smoothly and in one
motion, while 90 degree right turns required one or several reversals in order to successfully
complete. Making a 90 degree right turn in one motion would require beginning the turn at 21”
from the wall, based on the physical turning radius of the vehicle, which would not be feasible.
The performance involving reversals to make a 90 degree right turn is acceptable for this
application, even if not ideal.
In some cases, the vehicle will come across an object on the right side that is not
detected, and is not able to avoid it. This is why in figure 1 a front-facing camera was installed
on the right side. This would help alleviate blind spots in front and avoid this issue, but logic for
handling objects detected by this sensor was not implemented in the code due to time constraints.
Future work would include implementing this sensor or some similar orientation to take account
of other more complicated object avoidance scenarios.
The wall following was relatively smooth, even in the presence of various obstacles.
However, some more detailed PI parameter tuning may be advantageous. Including a derivative
term could have been useful as well. Although the smoothness of the performance was good in
general, there was still room for further improvement if more time was available for parameter
tuning.
VI. Conclusion
At the end of this project the main objectives were met. A vehicle was created that
followed a wall and was able to avoid obstacles. The objectives were accomplished by using
sonar distance sensors to obtain real time data. This data was then fed into the Arduino controller
to control the steering servos. This data was in a constant feedback to a PI controller was
programmed into the Arduino controller. This was done so that the following of the wall would
be smooth straight line and not in a jerky motion. The PI control program filtered out the noise
from the sensors and adjusted the turning rate based from how far the truck was from the wall
and obstacles. Any future work that is recommended to be performed can be found in the next
section.
23. 22 | P a g e
VII. Future Recommendations
This project has endless possibilities for improvements to many different components and
systems of the vehicle. One possibility is to change the sensor layout or type. Currently there are
three ultrasonic sensors oriented at various angles in the front left corner of the vehicle. This
sensor grouping can be replicated in the other corners of the vehicle in order to eliminate blind
spots and allow the vehicle to perform more complicated tasks such as following a wall on the
right side of the vehicle or detecting more complicated obstacles that require specialized
maneuvering. An alternative to this setup would be to use a range-finding sensor (either
ultrasonic or laser) that can rotate 360 degrees and allow the vehicle to map its surroundings and
perform precise movements. Improvements can be made to the programing as well. Currently
backing up to allow for a turn in obstacle avoidance relies on a time constant which is imprecise
and the addition of a rear sensor can allow for more accurate movement.
A situation the group ran into various times during testing was when individuals in the
hallway moved in the way of the vehicle and caused a false object detection. A possible solution
would be to create a sensor array that is mounted on servo-motors that would allow the vehicle to
track moving objects and determine if they are going to be in the way of the vehicle. This motion
tracking and intercept capability would be a large undertaking for the group and would have
required more time and resources, but this tool is entirely possible to create and would allow for
the vehicle to have better obstacle avoidance capabilities.
25. 24 | P a g e
[10] T. Eckel, 'Arduino Playground - NewPing Library', Playground.arduino.cc, 2015. [Online].
Available: http://playground.arduino.cc/Code/NewPing. [Accessed: 06- Jun- 2015].
[11] B. Beauregard, 'Arduino Playground - PIDLibrary', Playground.arduino.cc, 2015. [Online].
Available: http://playground.arduino.cc/Code/PIDLibrary. [Accessed: 06- Jun- 2015].
Appendix IX: Component Pictures
Figure 18: Parallax Ultrasonic Sensor [5] Figure 19: Arduino Uno Microcontroller [4]
Figure 20: Victor 884 Motor Controller [2] Figure 21: Futaba S9402 Servo [3]
Figure 22: Titan 550 Electric Motor [7] Figure 23: Tower Hobbies 7.2V 1500 mA Battery [8]
26. 25 | P a g e
Figure 24: Turnigy 7.4V 5000mA Battery [9]
Appendix X: Final Vehicle Pictures
Figure 25: Front View of Vehicle
27. 26 | P a g e
Figure 26: Side View of Vehicle
Appendix XI: Final Arduino Code
NewPing Library Credit [10]
PID Library Credit [11]
Sketch Code (Modified to Fit Word Document):
//----------------------------------------------------------------------------------------------------------------------------//
// Sketch: MEM380 ST Automated Vehicles
// Date: 6 June 2015
// Author: Tyler Darrah
// Contributors: Jon Affleck, Elliot Farquhar, Jeff Fuller, Robert Stricek
//
// Purpose: This program had been developed for an autonomous vehicle to navigate Drexel
// University hallways, with the additional functionality of avoiding obstacles such as
// small doorways, water fountains, and conduit.
//----------------------------------------------------------------------------------------------------------------------------//
//------------------------------------------------------Libraries-----------------------------------------------------------//
#include <PID_v1.h>
#include <NewPing.h>
#include <Servo.h>
Servo drive;
Servo steer;
//------------------------------------------------Variable Declarations-------------------------------------------------//
const int ping1 = 11; // Front Left sensor pin //
const int ping2 = 8; // 45 degree angled sensor pin //
28. 27 | P a g e
const int ping3 = 9; // Left-side forward mounted sensor pin //
const int ping4 = 10; // Front Right sensor pin // [UNUSED]
int SampleTime = 1; // Controller sampling time //
double FLread; // Create variable to store values for front left sensor //
double F45read; // Create variable to store values for 45 angled sensor //
//----------------------------------------------PID Controller Definition----------------------------------------------//
// Define PID variables // In1 will store values for the left-mounted Ping sensor //
double In1, Out1, Set1, In2, Out2, Set2;
// PID #1 parameters // Format (Input, Output, Setpoint, Kp, Ki, Kd, Mode) //
// Mode(DIRECT, MANUAL)// DIRECT = Controller on // MANUAL = Controller off //
PID PID1(&In1, &Out1, &Set1, 4.00, 0.5, 0.00, DIRECT);
//------------------------------------------------Function Prototypes---------------------------------------------------//
// Ping time-to-distance conversion function prototype //
// Modified to return variable type double //
double microsecondsToInches(double microseconds);
//Function prototype for reading a Ping sensor on any pin //
double Ping_Read(int sensor);
//--------------------------------------------Program Setup (to run once)---------------------------------------------//
void setup() {
// initialize serial communication:
Serial.begin(9600); // Serial window set, 9600 bit/s //
PID1.SetSampleTime(SampleTime); // Decrease sampling time for controller to 1ms //
steer.attach(4); // Attach steering servo to pin #4 //
drive.attach(6); // Attach driving servo to pin #6 //
Set1 = 21.0; // Setpoint 21 inches //
In1 = Ping_Read(ping3); // Read Ping sensor pin #9 (Left Front) and set to Input 1 //
PID1.SetMode(AUTOMATIC); // Set controller to function continuously //
}
//------------------------------------------Program Setup (to run continuously)--------------------------------------//
void loop()
{
In1 = Ping_Read(ping3); //Read-in a value from the PID sensor
FLread = Ping_Read(ping1); //Read-in a value from the front mounted sensor
F45read = Ping_Read(ping2); //Read-in a value from the 45 deg angled sensor
//---------------------------Avoidance--------------------------------//
/* The first section is a preliminary attempt
at avoiding the wall but still maintaining
29. 28 | P a g e
forward travel. This uses the 45 degree
angled sensor to first detect an incoming
obstacle and begin steering away from it.
This changes the PID input to the 45 sensor
which produces a smaller value and sharpens
the turning angle. */
if (F45read < In1)
In1 = F45read;
/* This section of obstacle avoidance can be
considered as a last ditch effort. The
vehicle is at a point where it will no
longer be able to maintain forward travel
and steer around the obstacle. The vehicle
must execute a reverse maneuver backing away
from the wall and turning right. */
if (F45read < 10 || FLread < 15)
{
drive.write(90); // Stop the vehicle //
delay(500); // Delay 1/2 second until vehicle stopped //
steer.write(135); // Turn wheels complete left //
drive.write(85); // Reverse moderate speed //
delay(1250); // Delay program, reverse for 1.25 seconds //
steer.write(45); // Turn wheels complete right //
drive.write(102); // Forward at normal speed //
delay(1250); // Delay program, forward for 1.25 seconds //
In1 = FLread; // Assign the smallest value to PID input //
}
//---------------------------Steering Algorithm----------------------//
/* This stores the output value of the PID
controller in the variable val according
to Out1's value. Negative Values correspond
to a left turn and positive value are right
turns. Values in between are handled by the
equation below to compute fractional turning
angles according to the controller output. */
PID1.Compute();
double val;
if (Out1 > 21)
val = 45;
else if (Out1 < -21)
val = 135;
else
30. 29 | P a g e
val = ((21 - Out1)/42)*90 + 45;
steer.write(val);
//------------------------------Drive--------------------------------//
/* A value of 102 is written to the Drive Servo
This value is not accurate to angular
displacement but works well enough to
accomplish the intended task. Troubleshooting
of system should be performed. */
drive.write(102);
}
//--------------------------------------Modified Ping Sensor Return Function---------------------------------------//
double Ping_Read(int sensor)
{
double duration, inches;
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(sensor, OUTPUT);
digitalWrite(sensor, LOW);
delayMicroseconds(2);
digitalWrite(sensor, HIGH);
delayMicroseconds(5);
digitalWrite(sensor, LOW);
// The same pin is used to read the signal from the PING))): a HIGH
pinMode(sensor, INPUT);
duration = pulseIn(sensor, HIGH);
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
inches = microsecondsToInches(duration); // convert the time into a distance
return inches;
}
//--------------------------------------Ping Time to Distance Pre-defined Function--------------------------------//
double microsecondsToInches(double microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
31. 30 | P a g e
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Arduino PID Library Source Code (After Modification) :
/* Compute() **********************************************************************
* This, as they say, is where the magic happens. this function should be called
* every time "void loop()" executes. the function will decide for itself whether a
new
* pid Output needs to be computed. returns true when the output is computed,
* false when nothing has been done.
**********************************************************************************/
bool PID::Compute()
{
if(!inAuto) return false;
unsigned long now = millis();
unsigned long timeChange = (now - lastTime);
if(timeChange>=SampleTime)
{
/*Compute all the working error variables*/
double input = *myInput;
double error = *mySetpoint - input;
ITerm+= (ki * error);
//---------- EDIT: 4/30/2015 ---------------//
//if(ITerm > outMax) ITerm= outMax;
//else if(ITerm < outMin) ITerm= outMin;
//------------------------------------------//
double dInput = (input - lastInput);
/*Compute PID Output*/
double output = kp * error + ITerm- kd * dInput;
//---------- EDIT: 4/30/2015 ---------------//
//if(output > outMax) output = outMax;
//else if(output < outMin) output = outMin;
//------------------------------------------//
*myOutput = output;
/*Remember some variables for next time*/
lastInput = input;
lastTime = now;
return true;
}
else return false;
}