Filtering by
- All Subjects: engineering
To facilitate rapid, correct, efficient, and intuitive development of graph based solutions we propose a new programming language construct - the search statement. Given a supra-root node, a procedure which determines the children of a given parent node, and optional definitions of the fail-fast acceptance or rejection of a solution, the search statement can conduct a search over any graph or network. Structurally, this statement is modelled after the common switch statement and is put into a largely imperative/procedural context to allow for immediate and intuitive development by most programmers. The Go programming language has been used as a foundation and proof-of-concept of the search statement. A Go compiler is provided which implements this construct.
However, road driving at any reasonable speed involves some risks. Therefore, even with high-tech AV algorithms and sophisticated sensors, there may be unavoidable crashes due to imperfection of the AV systems, or unexpected encounters with wildlife, children and pedestrians. Whenever there is a risk involved, there is the need for an ethical decision to be made [33].
While ethical and moral decision-making in humans has long been studied by experts, the advent of artificial intelligence (AI) also calls for machine ethics. To study the different moral and ethical decisions made by humans, experts may use the Trolley Problem [34], which is a scenario where one must pull a switch near a trolley track to redirect the trolley to kill one person on the track or do nothing, which will result in the deaths of five people. While it is important to take into account the input of members of a society and perform studies to understand how humans crash during unavoidable accidents to help program moral and ethical decision-making into self-driving cars, using the classical trolley problem is not ideal, as it is unrealistic and does not represent moral situations that people face in the real world.
This work seeks to increase the realism of the classical trolley problem for use in studies on moral and ethical decision-making by simulating realistic driving conditions in an immersive virtual environment with unavoidable crash scenarios, to investigate how drivers crash during these scenarios. Chapter 1 gives an in-depth background into autonomous vehicles and relevant ethical and moral problems; Chapter 2 describes current state-of-the-art online tools and simulators that were developed to study moral decision-making during unavoidable crashes. Chapters 3 focuses on building the simulator and the design of the crash scenarios. Chapter 4 describes human subjects experiments that were conducted with the simulator and their results, and Chapter 5 provides conclusions and avenues for future work.
User interface development on iOS is in a major transitionary state as Apple introduces a declarative and interactive framework called SwiftUI. SwiftUI’s success depends on how well it integrates its new tooling for novice developers. This paper will demonstrate and discuss where SwiftUI succeeds and fails at carving a new path for user interface development for new developers. This is done by comparisons against its existing imperative UI framework UIKit as well as elaborating on the background of SwiftUI and examples of how SwiftUI works to help developers. The paper will also discuss what exactly led to SwiftUI and how it is currently faring on Apple's latest operating systems. SwiftUI is a framework growing and evolving to serve the needs of 5 very different platforms with code that claims to be simpler to write and easier to deploy. The world of UI programming in iOS has been dominated by a Storyboard canvas for years, but SwiftUI claims to link this graphic-first development process with the code programmers are used to by keeping them side by side in constant sync. This bold move requires interactive programming capable of recompilation on the fly. As this paper will discuss, SwiftUI has garnered a community of developers giving it the main property it needs to succeed: a component library.
Planning coordination between robots in a multi-agent system requires each robot to know the position of the other robots. To address this, the localization server tracked visual fiducial markers attached to the robots and relayed their pose to every robot at a rate of 20Hz using the MQTT communication protocol. The robots used this data to inform a potential fields path planning algorithm and navigate to their target position.
This project was unable to address all of the challenges facing true distributed multi-agent coordination and needed to make concessions in order to meet deadlines. Further research would focus on shoring up these deficiencies and developing a more robust system.