ApexCoder
Badges: 12
Rep:
?
#1
Report Thread starter 1 year ago
#1
Why are you doing this?
Since I have got nothing to do nowadays, I have decided to do some challenging projects, with the additional reason of 'drone delivery' being a concept still under development, and there are barely any tutorials covering this. So this project may help anyone interested in this field of work, or is planning to do a similar project, as I will cover both the front-end and back-end of it.
How are you doing this?
The whole project will be completely code based, and as the title indicates, the end product would allow anyone to use it practically. The main aim of this project is to replicate the ideal service aimed by Google and Amazon without the need of expensive equipment. Currently, I have no plans in sharing and explaining every code online, but I may make a short coding tutorial on Youtube.

Update 19/11/2019:

Equipment:

  • ArduCopter
  • Raspberry PI 3B+
  • Linux operating PC (I am currently using 19.10)
  • Raspberry Pi Camera
API and Software:
P.S:
  • Sorry in advance for any grammar mistakes. Since English is a huge weakness of mine
  • I may use the name "Tom Waterman" as a placeholder for text, as I don't want to use my real name
  • For the time being, rather than using a real drone, I will be using Flight Gear.
  • I would also like to explicitly point out that I won't use the '3DR 433MHZ telemetry device', but instead installed a 'LTE Base Shield' onto the Raspberry Pi to maintain its connection to the Firebase server, so data and commands can be exchanged/executed in real-time.


Please refrain from making posts, as I would prefer to have a straight linear and uninterrupting blog.


Notice:
I have decided to discontinue this project, as my motivation and interest have been waning the last two months, and decided to undertake a different project, which is more realistic than this one. I may make updates on this blog in the future, as this blog is far from being up-to-date.
Last edited by ApexCoder; 1 year ago
2
reply
ApexCoder
Badges: 12
Rep:
?
#2
Report Thread starter 1 year ago
#2
Update: 24/11/2019:

I have created basically two website pages, which both are either linked to the Firebase database (Firestore), under the collection name 'Drones' or 'Orders'. The designs are inspired to be reflective of the design language 'Material Design' (https://material.io/design/). Whereas I haven't thought up of a good design for the tiles displaying the data yet.

The page 'Drone Manager' purpose is to view the coordinates and altitude of live drones in real-time, linked under the collection 'Drones'. On the other hand, the 'Orders' page is linked under the collection 'Orders', which serves as a method to push data to the collection 'Drones' to start a drones mission. (Will elaborate this point in later blog updates).

The data structure I created, is far from completed but it would suffice for now. Down below is the description of each field (excluding the obvious ones).

- RTL: In cases of an emergency or other reasons, the drone would return to its initial takeoff spot.
- finalAlt: Current Altitude
- finalLat: Current Latitude
- finalLon: Current Longitude
- timestamp: Time and date of takeoff
- ManualLanding: A feature which I am currently working on when if true, rather than using opencv to land on a certain landing spot, a person monitoring the drone (back-end side), would be able to manually land the drone. This feature is ideal in situations, where landing would be difficult, due to terrain or other reasons.
- Takeoff: If true, the drone would takeoff.

I excluded stuff like items which are ordered by the user, to keep it simple for now. And if you are wondering, I have no clue why I named current coordinates, 'final'.


IMG: [
https://ibb.co/dWm5Bb7
https://ibb.co/92Kvdrf
https://ibb.co/6Y94dSX
]
Last edited by ApexCoder; 1 year ago
0
reply
ApexCoder
Badges: 12
Rep:
?
#3
Report Thread starter 1 year ago
#3
Update: 25/11/2019:
I have quickly created an additional page, which allows the user to track the drone in real-time. The website is linked under the Firestore collection name: "Drones". The drone location is updated every 8 seconds. I have considered to display the distance alongside the estimated time of arrival, but decided a more compact, non verbose card design, would be more suitable for mobile usage and user experience. The reason I chose a dark theme for the map is because from my perspective, it looks better.

IMG: [
https://ibb.co/zZP0ftL
]
Last edited by ApexCoder; 1 year ago
0
reply
ApexCoder
Badges: 12
Rep:
?
#4
Report Thread starter 1 year ago
#4
Update: 26/11/2019:
Created a page similar to the previous post, but is meant for 'operatives' as it displays more info regarding the drone, as well as actions while mid-flight can be taken. When clicking on the "more action" icon, an additional card is displayed presenting 5 different buttons. Down below are the description for the buttons which are currently functioning:


  • Return to Land: On tap, it updates the database changing the field "RTL" to true, allowing the drone to return in case of emergency
  • Takeoff: On tap, it updates the database changing the field "Takeoff" to true, allowing the drone to takeoff
  • Details: On tap, it displays an additional element, which simply displays details regarding the ordered item

Video:
https://youtu.be/ZO8r389IQes
Last edited by ApexCoder; 1 year ago
0
reply
ApexCoder
Badges: 12
Rep:
?
#5
Report Thread starter 1 year ago
#5
Update: 28/11/2019:
As an extension to the update on 24/11/2019, I changed the green color to black/gray (#424242), and for the page 'Drone Manager', I made sure that the data being displayed gets updated every 8 seconds. Additionally, I may make a video or post explaining this, but when the user clicks on the view button, the user gets directed to the page mentioned in the previous post, but it takes advantage of something called 'Firebase Functions', which allows me to display the data specifically to the selected drone on a single separate page, rather than needing to create individual pages for each drone.


IMG: [
https://ibb.co/drk0xg7
]
Last edited by ApexCoder; 1 year ago
0
reply
ApexCoder
Badges: 12
Rep:
?
#6
Report Thread starter 1 year ago
#6
30/11/2019:
Extension to the update made on 26/11/2019, I have added an additional button named 'Live Log'. On tap, it basically views the messages from the drone, which are pushed onto the Firebase database, under the field named 'log'

IMG: [
https://ibb.co/pvsmKmX
]
0
reply
ApexCoder
Badges: 12
Rep:
?
#7
Report Thread starter 1 year ago
#7
Update: 30/11/2019:
Made a little addition to the user 'track' page where if the field 'Done' in the database is true, the card color changes to a green and a message is displayed indicating the package has been delivered. However, if an error occurs and the drone is required to return, the card color changes to red and a message is displayed saying the delivery failed.


IMG: [
https://ibb.co/GRgT2pB
https://ibb.co/Y0B1KX7
]
0
reply
ApexCoder
Badges: 12
Rep:
?
#8
Report Thread starter 1 year ago
#8
Update 1/12/2019:
Now the moment you have waited for. I will start covering the "drone part".
So far, at start up the Drone would have an ID which corresponds with the document name under the collection name "Drones" (Firestore). When an order is submitted to the 'Drones' collection via the Orders page, the drone after the necessary checks, would take off when the field 'Takeoff' equaled true.



Video:
https://youtu.be/HhlZ3tjJS_4
0
reply
ApexCoder
Badges: 12
Rep:
?
#9
Report Thread starter 1 year ago
#9
Update 3/12/2019:
Created a simple checkout page, which submits the data towards the collection name 'Orders'. I didn't add details such as methods of payment as I deem it would be unnecessary for now.

Video:
https://youtu.be/VxZi36jacoU
0
reply
ApexCoder
Badges: 12
Rep:
?
#10
Report Thread starter 1 year ago
#10
Update 4/12/2019:
A quick addition to the previous post, is that when an order is placed, an email is sent to the user confirming the order. This feat was accomplished by using Firebase Functions, as I included the tutorial which I have used in this post.


IMG: [
https://ibb.co/C92wMhv
]
Reference:
0
reply
kkboyk
Badges: 21
#11
Report 1 year ago
#11
(Original post by ApexCoder)
Who are you?
I am an 18 year old, who is currently retaking his A-levels due to personal circumstances.
Why are you doing this?
Since I have got nothing to do nowadays, I have decided to do some challenging projects, with the additional reason of 'drone delivery' being a concept still under development, and there are barely any tutorials covering this. So this project may help anyone interested in this field of work, or is planning to do a similar project, as I will cover both the front-end and back-end of it.
How are you doing this?
The whole project will be completely code based, and as the title indicates, the end product would allow anyone to use it practically. The main aim of this project is to replicate the ideal service aimed by Google and Amazon without the need of expensive equipment. Currently, I have no plans in sharing and explaining every code online, but I may make a short coding tutorial on Youtube with enough followers

Update 19/11/2019:

Equipment:

  • 3DR IRIS+
  • Raspberry PI 3B+
  • Linux operating PC (I am currently using 19.10)
  • Raspberry Pi Camera
API and Software:
Plan:
- Will be released in the near future




P.S:
  • Sorry in advance for any grammar mistakes. Since English is a huge weakness of mine
  • I may use the name "Tom Waterman" as a placeholder for text, as I don't want to use my real name
  • For the time being, rather than using a real drone, I will be using flight gear.


Please refrain from making posts, as I would prefer to have a straight linear and uninterrupting blog. I know this is unorthodox, but please upvote this thread, if there is any kind of problem with it.
This seems like an interesting project. Are you aware of the laws of drone use within the UK, or have predicted any sort of legal troubles you may have with this?
0
reply
ApexCoder
Badges: 12
Rep:
?
#12
Report Thread starter 1 year ago
#12
Update 6/12/2019:
After the takeoff which is covered in the '1/12/2019' update, the drone flies towards the coordinates submitted to the database by the user at the checkout page. While in transit, data such as current location, altitude, groundspeed, airspeed, battery, and other important information gets updated and displayed in real-time.

Video:
https://www.youtube.com/watch?v=Bo1KVoke5f4
0
reply
ApexCoder
Badges: 12
Rep:
?
#13
Report Thread starter 1 year ago
#13
Update 9/12/2019:
Finally connected the Raspberry pi to the Pixhawk, by purchasing the "RFD Telemetry Modem to Pixhawk 1 Telemetry Cable". I also made sure that at boot up, the python script is automatically run. While clearly visible in the pictures provided, I was forced to make an incision in the frame itself, as I wasn't able to remove the top frame due to a damaged screw. Due to this, I accidentally damaged the I2C cable, which connected the external compass and light status indicator to the Pixhawk, with the addition of another cable which connected the 3DR 433MHZ telemetry device to the flight controller too. While regrettable, I was fortunate enough that these damaged components were not essential and affect the progression of the project.

IMG: [
https://ibb.co/s5ph5RR
https://ibb.co/GJVtGSJ
https://ibb.co/LzX0Td3

]
Last edited by ApexCoder; 1 year ago
1
reply
ApexCoder
Badges: 12
Rep:
?
#14
Report Thread starter 1 year ago
#14
Update 13/12/2019:
In cases of emergency or any kind of reason, the operator can return the drone to its departure position when in transit. The drone returns when the RTL field is true. When true, the drone flight mode transitions from guided to 'smart-rtl'

Video: https://youtu.be/nGhGheOWkQ8
0
reply
ApexCoder
Badges: 12
Rep:
?
#15
Report Thread starter 1 year ago
#15
Update 22/12/2019:
When a drone mission starts, before takeoff, a tracking code gets sent to the user via email. The tracking code is simply the 'document id' of the Firestore collection 'Orders'. On tap, the user gets directed to the page, showing the drone info and position.

IMG: [
https://ibb.co/v36xyxd
https://ibb.co/kHVyWKV
]
0
reply
ApexCoder
Badges: 12
Rep:
?
#16
Report Thread starter 1 year ago
#16
Update 22/12/2019:
Basically a video showing the progress I made so far.
Video: https://youtu.be/RCBoaB901Kk
0
reply
ApexCoder
Badges: 12
Rep:
?
#17
Report Thread starter 1 year ago
#17
Update 29/12/2019:
Created a separate shopping page by using the web framework Polymer (3.0). Since I was not able to find a good public REST API to provide me with clothing data, I decided to use an web crawling application which gathers the data from 'H&M'. The page design was inspired by the Shop demo provided by Polymer.


IMG: [
https://ibb.co/h18Vjkk
https://ibb.co/r4r2kZY
]
0
reply
ApexCoder
Badges: 12
Rep:
?
#18
Report Thread starter 1 year ago
#18
Notice:
I have decided to discontinue this project, as my motivation and interest have been waning the last two months, and decided to undertake a different project, which is more realistic than this one. I may make updates on this blog in the future, as this blog isn't really up-to-date.
Last edited by ApexCoder; 1 year ago
0
reply
ApexCoder
Badges: 12
Rep:
?
#19
Report Thread starter 1 year ago
#19
Update 8/01/2020:
When the drone has to be returned to its initial takeoff position due to circumstances such as weather, the users track page displays a simple message.

Video: https://youtu.be/GjspBWy-QyY
IMG: [
https://ibb.co/GRgT2pB
]
0
reply
ApexCoder
Badges: 12
Rep:
?
#20
Report Thread starter 1 year ago
#20
Update 10/01/2020:
Just spotted an article where a company decided to use a similar approach to the 'connecting, track and control' issue as me.

Article: https://www.cnet.com/news/manna-5g-d...irborne-pizza/
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

Do you think receiving Teacher Assessed Grades will impact your future?

I'm worried it will negatively impact me getting into university/college (140)
42.55%
I'm worried that I’m not academically prepared for the next stage in my educational journey (39)
11.85%
I'm worried it will impact my future career (27)
8.21%
I'm worried that my grades will be seen as ‘lesser’ because I didn’t take exams (70)
21.28%
I don’t think that receiving these grades will impact my future (34)
10.33%
I think that receiving these grades will affect me in another way (let us know in the discussion!) (19)
5.78%

Watched Threads

View All