Technological advances have enabled us not just to overcome new obstacles, but it helps lead us towards overcoming existing ones as well. My objective here is to make delivery services offered by companies such as FedEx, Amazon, UPS, and the US Postal service, more efficient for customers and the client with drones. I plan on creating a simulation that will model different environments and incorporate the cooperation of not just a delivery truck, but a delivery drone (or UAV) as well. The drone will work in unison with the delivery trucks and will enable quick and more efficient delivery services. When a truck goes out on delivery, it normally follows specific routes so as to deliver within specific time periods. With a delivery drone, the driver of the truck will simply load a package onto the drone and possibly a delivery code that carries the delivery information. With drone set, it will fly off to make its delivery while the truck driver continues with their route. The drone will have to take its environment in for consideration. This includes things like wind, rain, snow, ice, heat, collision detection, and guidance system. There a few other things the drone has to keep track of as well. This includes an updated list of deliveries, the location of the truck, fuel (battery), the location of drop-off, and an environment awareness detection in which it can verify whether it may reconsider making a delivery due to its surroundings. The drone will also have to know how to ascend and descend in appropriate locations so as to not have any issues with arriving at its destination. There will have to be weight limits for what the drone may deliver. The package weight and size will determine the amount of fuel (battery) it will take, and the drag it might/could create. The drone will also be able to detect obstacles in the air and on the ground so as to avoid those objects. A guidance system will enable the drone to land in an appropriate spot and will communicate with the truck so that it knows how to return. This will allow the drone to continue with delivering more packages. The drone will also have a speed limiter to lock its max speed, time arrival estimator, and delivery status. The drone will be modeled using Visual Studio along with OpenGL and glut. I plan on modeling the drone into two parts, and that is the body and propellers. I will also be modeling a 3D environment which will contain trees, roads, buildings, and vehicles along with the delivery truck. Through this simulation, I hope to allow a more efficient way of delivering packages while working in unison with truck drivers.
Throughout this semester, I chose to do a project revolved around a simulation of a Drone Delivery Service. I utilized Visual Studio 2015, packages such as nupengl.core and nupengl.core.redist (OpenGL), and notepad++. I chose C++, due to my familiarity with it, as my programming language. The first step was to do my research on what I could potentially aim towards doing as my project. This took about a week to figure out since I wanted to make sure I picked out something Dr. Samuel Rodriguez was knowledgeable in. I had previously taken Computer Graphics with Dr. Rodriguez and formed a foundation around computer graphics in general. I wanted to build my skills around this subject, so I incorporated previous projects in with ideas of where technology might be headed in the next few years. I then decided that doing a simulation on drone delivery would be a good direction primarily because major companies (FedEx, UPS, and Amazon) are racing towards incorporating this idea into their already established services. After discussing my topic with my peers as well as with Dr. Rodriguez, I established a small description of what I wanted to do and some milestones I wanted to accomplish. The first thing I accomplished was building a 3D grid for my drones to fly in. This took a while primarily because I hardcoded the grid. I had to draw out on paper where my X, Y, and Z coordinates would be before actually coding it. Afterwards, I modeled a drone with a simple sphere shape and a delivery truck with a simple square shape. I applied attributes to the drone agents similar to those of the truck agents. The next task I had was having the drones find paths with 3-Dimensional coordinates instead of 2-Dimensional coordinates. The difficulty I had here was trying to visualize how my changes would affect my simulation. I truly learned the importance of debugging and trying to determine what is happening in the background. Once I was able to create drones moving around in a 3D space, I then focused on trying to find a path to a specific location (instead of just a random location). Again, it was a matter of determining how the drone agents determined where to go to begin with and passing values into those functions accordingly. Towards my final days of the semester, I pushed to have the drones and truck communicate efficiently. It was done to an extent but it was not as efficient as I would like it. I was not able to fix the issue before my presentation but I want to continue working on it primarily because I know this is a great learning opportunity for me in not just coding, but time management, time scheduling, task management, and personal skill building. Throughout the semester I had constantly run into some complications. One of the things I had learned the most with this project was to be patient with yourself and carefully assess any complications you might be having. A few of the errors I would have was over basic concepts, but with the amount of code around, I felt overwhelmed when I shouldn’t have. This project helped me better grasp my fundamentals and build my confidence in programming. Towards the beginning and end (day of my presentation) I found myself being extremely hard on myself. It wasn’t until after my first presentation that I realized that I know how to code very well, but I let my frustration get the best of me and I overthought very simple concepts. This has been a great experience and I plan on continuing with this as well as many other projects as well.