couldn't agree more. i'm not an "engineer" but i do like to tinker and build, and i've watched a ton of an engineering videos. it seems like it's all about failing 99 times, learning from it, and then finally nailing it. (and hopefully know why it went right, because let's be honest, sometimes u just restart it or give it a little percussive maintenance and it suddenly works lol)
It’s crazy how fast this guy produces designs. The rate of his content is just incredible. M an engineer and in the time it takes me to come up with one solution for one part of my project, this guy will bang out entire systems.
@@JimmyBatchelder yes he is extremely fast no doubt. However, often he has some mild problems in his designs that could be corrected if he was maybe working at slower pace.
I spent an evening with the guys from FireFly drones shows during their practice session. I asked a bunch of questions regarding how they work. They couldn't give many details but one thing that was rather shocking is that each drone has no idea where the others are at any given time. Meaning, they may collide with each other if the drones are setup improperly. Regardless, it was an amazing sight to see, especially when I was only one of a handful of people there to view this amazing work. EDIT - that was a few years ago, so things may have changed since then.
Makes a lot of sense. If drones know where other drones are, that information would take exponentially more processing and storage the more drones you add
@@AlannaStarcrossed it would only be exponential if each drone was keeping track of the relative positions of each other drone in relation to the entire set, which wouldn't be useful. If each drone was only keeping track of its position in relation to all others then the processing would only increase linearly
Since you're using IR beacons already, you could try to imitate the System of the Vive Lighthouses. There's a great talk from Alan Yates on YT talking about how it works. Basically, you have two IR lasers sweep the room and an IR beacon lets the devices know when the laser passes a certain angle. That way the devices can measure the time between beacon pulses and when they measure the laser sweep to estimate the laser angle at the time they see the laser and they can work out their position. I think this should be doable with just an IR laser emitter, a mirror and line laser lens on a rotating platform above that emitter for the base stations, plus the beacon ofc. EDIT damn, should've finished the video first, then I would've seen you hold the Vive tracker xD. But you can still try to DIY a system like this, could bring the cost down.
as soon as I saw the IR arrays I thought the same thing, looking up at the lighthouse in the corner of my office. but managed to wait until the end. James! Excited to see the drones on lighthouse tracking!
Its a bit more difficult, but even 1 Base station is enought for 3d tracking... I am using VR all the time and i have 4 of them... Would be way more interesting!
I'd love to see a cost analysis of this system for comparison's sake; those lighthouses are $150, though the tiny TS4231 sensors that goes on the robot are only ~$0.80 each, which means you can put a dozen of them all over the robot for better coverage, without needing to do any fancy orientation to keep them pointed at the base stations.
@@SeanSiem 🔴 What Is Islam? 🔴 Islam is not just another religion. 🔵 It is the same message preached by Moses, Jesus and Abraham. 🔴 Islam literally means ‘submission to God’ and it teaches us to have a direct relationship with God. 🔵 It reminds us that since God created us, no one should be worshipped except God alone. 🔴 It also teaches that God is nothing like a human being or like anything that we can imagine. 🌍 The concept of God is summarized in the Quran as: 📖 { “Say, He is God, the One. God, the Absolute. He does not give birth, nor was He born, and there is nothing like Him.”} (Quran 112:1-4) 📚 🔴 Becoming a Muslim is not turning your back to Jesus. 🔵 Rather it’s going back to the original teachings of Jesus and obeying him. More .....
Worked for a company making ultrasonic IPS systems for model cars, my job was to make autonomous drones and robots using this system, for industrial applications. For ultrasound, controlling the power and timing of the us-signal is crucial and a lot of filtering is needed for accuracy and precision (cutting through rotor downdraft and reduce noise from refraction, diffraction and reflection).
I had this same idea a few days ago. I was trying to think of alternate ways of tracking for VR use, and came up with something somewhat similar. The idea of using the domes to spread out the signal is genius!
Im so glad I rediscovered James’ channel. I used to come home every day after school and watch his videos but stopped at some point. After a random thought about his hulkbuster armor, I decided to look up his channel and was reminded how good this guy is at what he does.
This is good stuff. I’ve been noodling for a while on how to make a DIY 3D printed model of the solar system that a teacher could place on a flat surface, have all the planets self-organize, and then begin to revolve and rotate. Like a robot version of an orrerie.
You should look at using UWB modules for positioning. You get ones purpose built and they use radio waves. You have modules that you place statically (anchors) and then the modules you want to track (tags), this may work much better than your current setup and isn’t directional like this and won’t be affected by the drones propellers.
@@andrewmaples5 here’s a link to an overview: ua-cam.com/video/KVPQaBgxUQg/v-deo.html The board uses a DW3000 which is now manufactured by Qorvo and is compatible with Apple’s U1 chip, so it should work with an iPhone. There’s also an arduino lib. But it’s a little thin. However, you finagle it to make demos similar to this one. The only downside is that UWB can be noisy. But that is fairly easy to deal with.
You could use cameras and accelerometers. The Oculus Quest 2 determines its position and orientation in space using 4 cameras and an accelerometer and It does that very well without any external transmitters. The algorithm may however be somewhat tricky :)
Thinking back 15 years or so, Nintendo Wii controllers had an infrared camera (the "bar" placed below the TV contained IR LEDs) and could compute their position in space. That was all in custom hardware... I wonder if a larger array of LEDs would work in this case. Also, could "near" and "far" IR filters be used on another camera to get a second positioning "channel"...
You could try using the decawave dwm1000. Like Bluetooth and Wi-Fi, ultra-wideband (UWB) is a short-range, wireless communication protocol that operates through radio waves. But unlike its counterparts, it operates at very high frequencies - a broad spectrum of GHz frequencies - and can be used to capture highly accurate spatial and directional data.
It has functionality for anchors and tags. There is also a Arduino library for them. I bit more expensive than the ultrasonic solution, but should be more stable.
for the ultrasonics, see if you could filter frequency on the ping sensors. if you could have the ultra sonics send a specific frequency based on their position, the drone could figure out which transmitter has a specific delay which could give you orientation data aswell
Watch Steve Mould's video on acoustic cameras! this would better be implemented as the Ultrasonic transmitter on the robot, the "ground station" doing the calcuations, and transmiting the data back to the robot (optimally with an rf transmitter). this settup would also allow 3-dimensional positioning with a wider field of view. latency may be a concern, though. finally, you can use an accelerometer to filter out the noise and spikes. if the slope of the spike doesn't match up the the accelerometer, then filter it out. The accelerometer doesn't know where it is or its velocity, but it knows how much the velocity changed by, and using previous positioning data you can estimate what it's velocity *was*, so you can then estimate what the velocity *is*, so then you can estimate how far it should have moved, so then you can estimate it's position. if the estimated position is close to the detected position, it's good. if not, filter it out. Yes,. the thing of the accelerometer is very reminiscent of "The missle knows where it is."
Using Ultrasonic for positioning is pretty much beging for problems A really simple solution is having IR transmitters that just send out a burst in synk. Then a wide lense IR camera that position them, and if the unit know what order they fire in, they could have a pretty accurate angle to every IR transmitter they see. A other system that is used in professional indoor guided robots is simple reflective tape and a IR transmitter and reserved (Typically a very narrow field or a laser) rotating quite fast. Those are typically used on ground based vehicle that have a very solid altitude to begin with
The Infrared broadcast system reminds me of how the minatur wunderland in hamburg communicates with all of the little cars using infrared lights to flood the entire system with infrared, broadcasting to all the cars
Cool! Thank you, James, for experimenting with ultrasound for indoor positioning :-) We accidentally spotted that our system was mentioned in the video. Guys, if you are interested, we can comment and advise on indoor positioning in general because we do have some 10-year experience with precise indoor positioning particularly with ultrasound+radio systems. We believe we are in the industrial automation business but it looks like half of the US universities are playing with our system already... Maybe, we are in education tech, actually?... :-) Thus, don't hesitate to ask us. We are always happy to help :)
Those cheap nRF24L01+ modules could be used to replace the IR trigger. I wrote some code once which used the nRF21L01+ modules as a wireless flash trigger. The system was fast enough to use as wireless flash trigger so it may be fast enough to trigger the ultrasonic devices. I used the Parallax Propeller microcontroller which has 8 processors so one processor was dedicated to listening for the RF trigger using assembly code. Thanks for another fun and interesting video.
I build something like this 6 years ago. I used NRF24L01 radio's for transmission. The delay is negligible, and it's a lot more reliable than IR. Just a recommendation. Finding the best matching point in 3d space from multiple transmitters is not trivial though...
Your maximum range with the ultrasonic sensor might be larger that the 4m now. Normally the ultrasonic sensors rely on reflections, and reflections lose energy, if you have a transmitter and receiver separate then it doesn’t lose energy due to reflections and it might work at a longer range.
maybe 4 ir emitters could be placed around a circle, then the controls might be handed to the automated landing computer part, first centering the drone, possibly levelling the drone, and landing the drone, safely in the landing pad center automatically.
Positioning autonomous vehicles precisely is a very interesting topic but that's a challenge outside. What I would love to see is an affordable system that would enable drones to chase a moving object or coordinate small swarms with < 1m accuracy. For both a precise absolute position isn't necessary, just the relative position between the vehicles.
@Henry From the very short googling I've done, it seems like the DWM1001 modules unfortunately have a pretty short range and and while great at ~10cm of precision, it just isn't there yet if you need a bit more precision, which is quite unfortunate as I've been looking for something like this but better and thought this module was going to solve all my issues. So close, yet so far.
So I've often wondered how hard it would be to get drones, on the ground, to locate their positions accurately so you could make an army of metal detecting robots who could scan an entire pasture. One drone could do it unattended, 10 drones 10x as fast. Roomba but for searching fields for relics and hoards. :)
The infra red leds only transmit information about the phase of the pulses. It should be possible to get rid of the infra red channel by detecting the phase of the pulses automatically. The receiver could run a sweep across the phase range and see what phase gives the best signal.
Fantastic James! I've thought about making an ultrasonic positioning system for an automated lawn mower and having the transceivers on trees throughout the yard and a 360° tweeter array on the mower. Glad to see the accuracy I would hope for! I didn't think about trying to use an existing distance sensor, I tried using a tweeter for the transmitter with the arduino making a 30kHz tone, and then an electret microphone with a bandpass filter and peak detector circuit for the receiver. Was going to use a radio link for the sync. My first few go's didn't work and I ended up using the tweeters for my sound system rather than keeping with it. 🤭 Maybe that approach would work for you! You could use cheap Amazon tweeters to get higher powered audio than what those little modules can produce.
Pretty cool what you were trying here. Couple of thoughts: 1. If in case you are kinda fixated on ultrasound. Maybe having a range of just pure transmitters along a flat rule working as a phased array might get more accuracy. This of course would need a filter to remove rotar noise. 2. You could try IMU sensors and ultrasonic sensors in a sensor fusion kalman filter. Hope this helps!
if you had a room with a flat ceiling you could make a grid of downward-facing ultrasound units with spacing of say one meter. Then the drone could have just one upward-facing ultrasound unit, if you mounted it on a stick it might overcome the noise problem. You would need a compass unit on the stick as well (away from the motors) to measure yaw. Another dodge might be to blip the motors instantaneously at ping time. You might not need many position fixes to control the drone. I don't think you would need diffusers on the ceiling units. Anyway a quick simple experiment would show whether the idea was worth pursuing
The flight controller has a magnetometer, so that isn't such a problem. I think at the point of covering the ceiling with ultrasonics you'd be better of with Aruco markers.
I am looking at this problem for cameras and virtual sets. The dome reflectors is a good hint. I re-worked the electronics to improve receiver response (Transimpedence->High pass filter-> Comparitor). Four transmitters are needed to get 3D positioning in a square space. I am using RF keyfob module to sync.
Hi James. Blutooth Low Energy (BLE) has a positioning feature. You should have a look at devices like the DWM1000 (and the equivalents). These have 30m range, 10cm accuracy, are pretty cheap, and would be immune to most of the interference you are experiencing ... Great videos. Thanks!
The central system knows where the drones are at all times. It knows this because it knows where they aren't. By subtracting where they are from where they aren't, or where they aren't from where they are, whichever is greater, it obtains a difference, or deviation. The central system uses deviations to generate corrective commands to drive the drones from a position where they are to a position where they aren't, and arriving to a position where they weren't, they now are. Consequently, the position where the drones are, is now the position that they weren't, and it follows that the position that they were, is now the position that they aren't. In the event that the position the drones are is not the position that they weren't, the system has acquired a variation, the variation being the difference between where the drones are, and where they weren't. If variation is considered to be a significant factor, it too may be corrected by the CEA. However, the system must also know where the drones were. The drone guidance computance scenario works as follows: because a variation has modified some of the information the central system has obtained, it is not sure just where the drones are. However, it is sure where they aren't, within reason, and it knows where they were. It now subtracts where the drones should be from where they weren't, or vice-versa, and by differentiating this from the algebraic sum of where they shouldn't be, and where they were, it is able to obtain the deviation and its variation, which is called error.
Your audio issue is not due to downdraft. Your rotors and motors make sounds in the ultrasonic range. Ive seen this alot at my previous company which make soundcameras (also visualising ultrasonic frequencies)
Check out time-of-flight sensors which are low cost but optical so should avoid the turbulence issues. The VL53L series from ST should be a good fit. Adafruit even have a module for the VL53L0X
Using ChatGPT to create the smoother code sounds interesting, how much time would this save you, what are the limitations, etc? Would be great to know more.
Smoothing out the domes might help a bit with the coverage. The layers of the print are all perpendicular to the transmitter facing increasing the strength of the unscattered reflection, especially in the middle where the layer lines are quite pronounced.
The SRF05 operates at 40khz, which means a wavelength of ~8.5mm; would surface features under ~4.25mm even be detectable? I obviously have no idea what print settings were used, but typical layer height can be anywhere from 0.1mm to 0.6mm.
agreed, though I wonder if, from a level of effort standpoint, it would make more sense to reorient and reprint the domes in quarters then join them together, to take advantage of how much smoother 3d printed curves are when the wide side is on the xz plane
Could you use a Lidar module out of a robot vacuum cleaner? They are somewhat affordable (around 80€) and as far as I can tell also accurate. That way you wouldn't need any base stations in the room.
HTC just announced a new all in one inside out tracker. Also Sony has a new motion tracker set for v tubing and mocap. I’m sure they are expensive I just thought they may be options for you to try if you didn’t know they exist. Thanks for sharing!
Hi there! I love the work! It's just that I feel that a positioning system relying on ultrasonics is somewhat unreliable for drones, have you considered RF. I'm pretty sure you can send out clock signals using transmitters (2 minimum, 3 or more for accuracy) set at fixed location and have them in different bandwidth channels. Then in the drones you'll have a receiver, due to using multiple channels, a single receiver can pick up all the data using software filters for each specific channel. Pretty much a clone of how gps works, but on a small scale, and I guess it'll be very precise and will have almost no dead areas. Anyways, this is just a suggestion, keep up the good work!
I messed around with ultrasonic sensors a number of years ago and hated them. They suffer from reflection problems. What about borrowing a page from VOR transmitters and receivers used for Aviation? They use VOR stations that transmit a omnidirectional pulse every second, and a narrow, directional beam that physically rotates at a fixed speed. When that beam lines up with 0 degrees, the omnidirectional pulse activates. The receiver in the airplane sees the omnidirectional pulse and computes the time it takes for it to see the directional beam. For example, if it sees the directional beam 500ms after the omnidirectional, the receiver knows it is on the 180 radial south of that station. If you tune a second VOR station and draw the lines on a map, your position is where the lines intersect. So, what if you did the inverse of this... Have the drone emit an omnidirectional IR light (or several). Have 2 towers on tripods with an IR receiver that is hidden inside a rotating 3d printed cup that has a narrow window in it. Drive it with a stepper so you can precisely rotate it 360 degrees at a fixed length of time. You know when it it is a the start position, and as the cup rotates, observe when you see the drone's light and you can compute the radial. Detect this from 2 such towers and you can accurately know the position of the drone, as long as the IR light is not obscured from the drone.
Omg this is super related to my uni dissertation. My title was Uav drone collision avoidance using BLE. anyway I used Bluetooth aod and Rssi to ascertain distance and direction of nearby drones.
I'd think the ultrasonic sound is bouncing off the large wall just past the left-hand wooden strip. This could explain some of the non-symmetrical issues you were seeing.
I'm thinking something like the Wii controllers to get directional awareness, optical mice sensors could track the ground with different optics... Ultrasound is very efficient when it comes to determine indoor distance, great idea you had there.
I stumbled upon your channel. I'm very impressed with your thought process, workmanship, knowledge and more Keep up the great work/content. I'm looking forward to the follow-up part(s). 👍👍👍
Would there be any benefit in switching around the functions so the drone is the transmitter and the 2 booms are the receivers. I feel like transmitting ultrasonic and IR is a less susceptible to vibration and noise when compared to the receivers/sensors. Awesome project as per usual.
Can't wait to see what you do with the vive tracker. I've been wanting to combine my VR equipment that I don't use much anymore, with robotics knowledge that I have yet to obtain.
I worked an IT job last summer at Jellystone Park in Caledonia, WI. Most of my job revolved around our drone show, and it was an amazing experience. The software that is used to program them is beyond impressive. I plan on doing it next summer (I can't do it during the rest of the year as High School + Sports + FIRST Robotics Competition becomes a lot to handle sometimes) and I'm now looking into getting my FAA Drone Pilots License so that I may legally operate the show on my own.
Could you modify the ultrasonic sensors to accept sounds from any direction? Both the transmitter and sensor are designed to work in a narrow cone so it doesn't hear itself, only the echoes, but since you don't care about that, it would stop the dropouts when the sensors weren't pointed directly at the transmitter. You would have to filter out the echoes, though, since now you have that sound being heard from all over. The first received sound should be the one that's travelled directly, though, so it should be possible.
James, don't use ultrasonics, that doesn't really work that well. Get the HTC Vive Lighthouse base stations and one (or more) of the HTC Trackers (tracking pucks). Cheaper and much more accurate solution that is impervious to noise. Not great for really small drones but for larger robots it works great. And small stuff you can track put a bunch of LEDs on the bot and use two (or more) cameras with a bit of OpenCV to track them. Even webcams will do. It won't be as accurate as Vicon but it won't costs 10k€ + neither.
I think you highlighted a flaw when you said that the massive amount of IR light reflects off of everything. Are you really measuring the distance from the lamp or the distance to whatever is reflecting the most light?
Why not use IR distance sensors directly? You can get long distance high precision ones pretty cheap nowadays. (5m @0.1-1mm precision) ToF sensors are also only slightly more expensive but give you even better specs and 3D output with no chance of interruption
Great video! It is really a interesting idea :D I love these videos where the whole process from idea to experimentation is shown. It really got me thinking and something came to my mind: I understand that the general goal is to be able to track multiple robots. But, if the objective was to track just one, it might be a good idea to switch the places of the transmitter and receiver. The transmitters will be syncronised at the robot and the receivers at the static positions (obviously changing the atennas the other way around to catch the ultra-sound from all places.) That way you won't have the problem of just one signal being received by both receivers (well you could but the transmitter are at the same place so the measurement will still be "correct"). You will get two measurements of distances, one per receiver and with it do some triangulation to estimate the position. What do you guy think? Again this is something I just quickly thought about, but I think it might work.
What if you use, for example, EPS32 bluetooth beacons and EPS32 to measure the signal strength. How well it tolerates changes in the room. Assumed that without changes, the accuracy of the triangle measurement would be quite good when using the calibration table. Outside, you could perhaps use the wifi strength for longer distances.
Wow, very cool! Have you thought about using a single transmitter and multiple receivers rather than pairs? If you know the separation of each receiver then you can get their distances from the transmitter based on the difference in time of receipt. Same concept, just pairing multiple receivers to the same transmitter. Really cool project, I would love to see one that tracks in 3D!
That's against the purpose of the device. The goal is to make the mobile unit figure out its own position based on transmitters that don't actually care where it is. If you put the receivers on the fixed stations they would need to transmit the time of flight data back to the robot. That would mean the two base stations would only be able to track the single mobile unit as opposed to an arbitrarily large number of mobile units that could work off a single pair of beacons.
Great Video! On the next project, could you maybe have 2 drones holding either end of a skipping rope, and program them to synchronise the harmonic motion to swing the rope?
Cool project to try and do coordinated flight cheaply! Did you see Vive's video the other day on their new stand alone body tracker? It uses the same 2 cameras pointing outwards for tracking as their headsets but tiny. Maybe you can get your hands some of those one day to play with how they did it.
Omg the dome! Genius! Can you comment on the comparison between your approach (obviously cheaper) and the indoor positioning system of the first generation of Roomba Braava mopping robot? It relied on one beacon only, projecting a signal on the ceiling, and the robot on the floor sensing its relative positioning. Much more expensive than yours, but way cheaper than the drone system, as the entire product was 300 euros when it got out. Thanks!
Try UWB Ultra Wide Band Indor GPS is much cheaper but the position is updated only with 10HZ. If u have more multible "Ankors" it would be more akurat.
The drone light shows are so cool, but it's a shame they need the expensive drones. If your position tracking was good enough it would be cool to have a fleet of balloons with no propulsion, but just computing which ones to light up to make shapes. Even without the precise positions you could do cool abstract patterns by having short range communication between them like "balloon 9908: tell all the balloons within 20m of you to flash red." How much are ten thousand Arduino nanos and radio transmitters?
I think its great that you show your exploratory dead ends - really interesting and an important part of the learning/inventing process.
couldn't agree more. i'm not an "engineer" but i do like to tinker and build, and i've watched a ton of an engineering videos. it seems like it's all about failing 99 times, learning from it, and then finally nailing it. (and hopefully know why it went right, because let's be honest, sometimes u just restart it or give it a little percussive maintenance and it suddenly works lol)
I love how James just throws together a drone of an evening like it's nothing.
To be fair anyone with some basic drone knowledge and a 3d printer can do that. The US sensor stuff is interesting though.
@@SirDragonClaw it's not the building of the drone I'm impressed by. It's how quickly he seems to have built it.
It’s crazy how fast this guy produces designs. The rate of his content is just incredible. M an engineer and in the time it takes me to come up with one solution for one part of my project, this guy will bang out entire systems.
@@JimmyBatchelder yes he is extremely fast no doubt. However, often he has some mild problems in his designs that could be corrected if he was maybe working at slower pace.
I spent an evening with the guys from FireFly drones shows during their practice session. I asked a bunch of questions regarding how they work. They couldn't give many details but one thing that was rather shocking is that each drone has no idea where the others are at any given time. Meaning, they may collide with each other if the drones are setup improperly. Regardless, it was an amazing sight to see, especially when I was only one of a handful of people there to view this amazing work. EDIT - that was a few years ago, so things may have changed since then.
Makes a lot of sense. If drones know where other drones are, that information would take exponentially more processing and storage the more drones you add
@@AlannaStarcrossed it would only be exponential if each drone was keeping track of the relative positions of each other drone in relation to the entire set, which wouldn't be useful. If each drone was only keeping track of its position in relation to all others then the processing would only increase linearly
@@theycallme_nightmaster You're right, I didn't think about that. I was thinking of them as one connected unit but it's not
This is so amazing! Using the faster light signal as a clock for the slower ultrasonic is such a great concept!
Since you're using IR beacons already, you could try to imitate the System of the Vive Lighthouses. There's a great talk from Alan Yates on YT talking about how it works. Basically, you have two IR lasers sweep the room and an IR beacon lets the devices know when the laser passes a certain angle. That way the devices can measure the time between beacon pulses and when they measure the laser sweep to estimate the laser angle at the time they see the laser and they can work out their position. I think this should be doable with just an IR laser emitter, a mirror and line laser lens on a rotating platform above that emitter for the base stations, plus the beacon ofc.
EDIT damn, should've finished the video first, then I would've seen you hold the Vive tracker xD. But you can still try to DIY a system like this, could bring the cost down.
as soon as I saw the IR arrays I thought the same thing, looking up at the lighthouse in the corner of my office. but managed to wait until the end. James! Excited to see the drones on lighthouse tracking!
Its a bit more difficult, but even 1 Base station is enought for 3d tracking... I am using VR all the time and i have 4 of them... Would be way more interesting!
I'd love to see a cost analysis of this system for comparison's sake; those lighthouses are $150, though the tiny TS4231 sensors that goes on the robot are only ~$0.80 each, which means you can put a dozen of them all over the robot for better coverage, without needing to do any fancy orientation to keep them pointed at the base stations.
At 13:18 James shows a Vive Puck so he was already onto this idea long ago.
@@SeanSiem 🔴 What Is Islam?
🔴 Islam is not just another religion.
🔵 It is the same message preached by Moses, Jesus and Abraham.
🔴 Islam literally means ‘submission to God’ and it teaches us to have a direct relationship with God.
🔵 It reminds us that since God created us, no one should be worshipped except God alone.
🔴 It also teaches that God is nothing like a human being or like anything that we can imagine.
🌍 The concept of God is summarized in the Quran as:
📖 { “Say, He is God, the One. God, the Absolute. He does not give birth, nor was He born, and there is nothing like Him.”} (Quran 112:1-4) 📚
🔴 Becoming a Muslim is not turning your back to Jesus.
🔵 Rather it’s going back to the original teachings of Jesus and obeying him.
More .....
There is so much innovation in here it would be sufficient for a start-up that has already much more to offer than most tech-companies offer initially
I’ve been toying with similar ideas for a motion cap system in my workshop-glad I’m not the only one trying!
Worked for a company making ultrasonic IPS systems for model cars, my job was to make autonomous drones and robots using this system, for industrial applications. For ultrasound, controlling the power and timing of the us-signal is crucial and a lot of filtering is needed for accuracy and precision (cutting through rotor downdraft and reduce noise from refraction, diffraction and reflection).
amazing ,and duing your workingtime ,can you use some navigation system?
really cool, using IR to trigger the ultra sonic sensors is a great idea!
actually, its a stupid idea to use IR instead of radio waves!
I had this same idea a few days ago. I was trying to think of alternate ways of tracking for VR use, and came up with something somewhat similar. The idea of using the domes to spread out the signal is genius!
Im so glad I rediscovered James’ channel. I used to come home every day after school and watch his videos but stopped at some point. After a random thought about his hulkbuster armor, I decided to look up his channel and was reminded how good this guy is at what he does.
This is good stuff. I’ve been noodling for a while on how to make a DIY 3D printed model of the solar system that a teacher could place on a flat surface, have all the planets self-organize, and then begin to revolve and rotate. Like a robot version of an orrerie.
You should look at using UWB modules for positioning. You get ones purpose built and they use radio waves. You have modules that you place statically (anchors) and then the modules you want to track (tags), this may work much better than your current setup and isn’t directional like this and won’t be affected by the drones propellers.
There’s also a uwb module built into esp32 with an arduino library. Smaller. Cheaper. Faster. And far more reliable.
@@doublebyte01 can you point me toward more information on this?
@@andrewmaples5 here’s a link to an overview: ua-cam.com/video/KVPQaBgxUQg/v-deo.html The board uses a DW3000 which is now manufactured by Qorvo and is compatible with Apple’s U1 chip, so it should work with an iPhone. There’s also an arduino lib. But it’s a little thin. However, you finagle it to make demos similar to this one. The only downside is that UWB can be noisy. But that is fairly easy to deal with.
@@doublebyte01 I think you mean there are boards that have an ESP32 and UWB module. No ESP32 has UWB built in.
Great idea to combine the IR and ultrasonic! I love seeing experiments like these with easily available tech, and I hope to see many more!
You could use cameras and accelerometers. The Oculus Quest 2 determines its position and orientation in space using 4 cameras and an accelerometer and It does that very well without any external transmitters. The algorithm may however be somewhat tricky :)
I did some research. ORB-SLAM3 is the magic keyword.
@@iBlue0riginal Hmm.
Thinking back 15 years or so, Nintendo Wii controllers had an infrared camera (the "bar" placed below the TV contained IR LEDs) and could compute their position in space. That was all in custom hardware... I wonder if a larger array of LEDs would work in this case. Also, could "near" and "far" IR filters be used on another camera to get a second positioning "channel"...
@@MagicalPorkChop
Those cameras are dirt cheap and readily available.
Some do 4 points in order of intensity, some do 2.
I have worked a bit with vslam and found out that it is very difficult to get working well enough to be very useful, besides orb-slam we tried rtabmap
You could try using the decawave dwm1000. Like Bluetooth and Wi-Fi, ultra-wideband (UWB) is a short-range, wireless communication protocol that operates through radio waves. But unlike its counterparts, it operates at very high frequencies - a broad spectrum of GHz frequencies - and can be used to capture highly accurate spatial and directional data.
It has functionality for anchors and tags. There is also a Arduino library for them. I bit more expensive than the ultrasonic solution, but should be more stable.
for the ultrasonics, see if you could filter frequency on the ping sensors. if you could have the ultra sonics send a specific frequency based on their position, the drone could figure out which transmitter has a specific delay which could give you orientation data aswell
Watch Steve Mould's video on acoustic cameras!
this would better be implemented as the Ultrasonic transmitter on the robot, the "ground station" doing the calcuations, and transmiting the data back to the robot (optimally with an rf transmitter). this settup would also allow 3-dimensional positioning with a wider field of view. latency may be a concern, though.
finally, you can use an accelerometer to filter out the noise and spikes. if the slope of the spike doesn't match up the the accelerometer, then filter it out. The accelerometer doesn't know where it is or its velocity, but it knows how much the velocity changed by, and using previous positioning data you can estimate what it's velocity *was*, so you can then estimate what the velocity *is*, so then you can estimate how far it should have moved, so then you can estimate it's position. if the estimated position is close to the detected position, it's good. if not, filter it out.
Yes,. the thing of the accelerometer is very reminiscent of "The missle knows where it is."
wow, u are right,and i have a qustion ,did accelerometers filter the noise?
Using Ultrasonic for positioning is pretty much beging for problems
A really simple solution is having IR transmitters that just send out a burst in synk. Then a wide lense IR camera that position them, and if the unit know what order they fire in, they could have a pretty accurate angle to every IR transmitter they see.
A other system that is used in professional indoor guided robots is simple reflective tape and a IR transmitter and reserved (Typically a very narrow field or a laser) rotating quite fast. Those are typically used on ground based vehicle that have a very solid altitude to begin with
The Infrared broadcast system reminds me of how the minatur wunderland in hamburg communicates with all of the little cars using infrared lights to flood the entire system with infrared, broadcasting to all the cars
Put foil on the dome and reflect the IR off it as well.
This is GENIUS, no matter it worked or not
Cool! Thank you, James, for experimenting with ultrasound for indoor positioning :-) We accidentally spotted that our system was mentioned in the video. Guys, if you are interested, we can comment and advise on indoor positioning in general because we do have some 10-year experience with precise indoor positioning particularly with ultrasound+radio systems. We believe we are in the industrial automation business but it looks like half of the US universities are playing with our system already... Maybe, we are in education tech, actually?... :-) Thus, don't hesitate to ask us. We are always happy to help :)
Those cheap nRF24L01+ modules could be used to replace the IR trigger. I wrote some code once which used the nRF21L01+ modules as a wireless flash trigger. The system was fast enough to use as wireless flash trigger so it may be fast enough to trigger the ultrasonic devices. I used the Parallax Propeller microcontroller which has 8 processors so one processor was dedicated to listening for the RF trigger using assembly code.
Thanks for another fun and interesting video.
I build something like this 6 years ago. I used NRF24L01 radio's for transmission. The delay is negligible, and it's a lot more reliable than IR. Just a recommendation. Finding the best matching point in 3d space from multiple transmitters is not trivial though...
Bitcraze manufactures a super lightweight steamvr tracking module for small drones. They also have another indoor positioning module called loco.
Your maximum range with the ultrasonic sensor might be larger that the 4m now. Normally the ultrasonic sensors rely on reflections, and reflections lose energy, if you have a transmitter and receiver separate then it doesn’t lose energy due to reflections and it might work at a longer range.
maybe 4 ir emitters could be placed around a circle, then the controls might be handed to the automated landing computer part, first centering the drone, possibly levelling the drone, and landing the drone, safely in the landing pad center automatically.
The idea of using a Pixhawk on a 3D printed frame with no name motors and a FS-16x is killing me.
Positioning autonomous vehicles precisely is a very interesting topic but that's a challenge outside. What I would love to see is an affordable system that would enable drones to chase a moving object or coordinate small swarms with < 1m accuracy. For both a precise absolute position isn't necessary, just the relative position between the vehicles.
Hi James, Great video! I’d try Ultra Wideband transceivers the DWM1001 modules work really well.
UWB is not cheap with the complete infrastructure you need ...
@@peepopalaber but maybe if more people start using it, it becomes cheaper :)
I worked with that System u can even send data over the system
@Henry From the very short googling I've done, it seems like the DWM1001 modules unfortunately have a pretty short range and and while great at ~10cm of precision, it just isn't there yet if you need a bit more precision, which is quite unfortunate as I've been looking for something like this but better and thought this module was going to solve all my issues.
So close, yet so far.
So I've often wondered how hard it would be to get drones, on the ground, to locate their positions accurately so you could make an army of metal detecting robots who could scan an entire pasture. One drone could do it unattended, 10 drones 10x as fast. Roomba but for searching fields for relics and hoards. :)
...or land mines.
The infra red leds only transmit information about the phase of the pulses. It should be possible to get rid of the infra red channel by detecting the phase of the pulses automatically. The receiver could run a sweep across the phase range and see what phase gives the best signal.
Fantastic James! I've thought about making an ultrasonic positioning system for an automated lawn mower and having the transceivers on trees throughout the yard and a 360° tweeter array on the mower.
Glad to see the accuracy I would hope for! I didn't think about trying to use an existing distance sensor, I tried using a tweeter for the transmitter with the arduino making a 30kHz tone, and then an electret microphone with a bandpass filter and peak detector circuit for the receiver. Was going to use a radio link for the sync. My first few go's didn't work and I ended up using the tweeters for my sound system rather than keeping with it. 🤭 Maybe that approach would work for you! You could use cheap Amazon tweeters to get higher powered audio than what those little modules can produce.
Awesome cheap positioning! I was pretty scared when you were holding the drone powered on!!! 😬 The rolling bot was much better.
Pretty cool what you were trying here. Couple of thoughts:
1. If in case you are kinda fixated on ultrasound. Maybe having a range of just pure transmitters along a flat rule working as a phased array might get more accuracy. This of course would need a filter to remove rotar noise.
2. You could try IMU sensors and ultrasonic sensors in a sensor fusion kalman filter.
Hope this helps!
Fun fact! This is the same system the Nintendo Power Glove used for position tracking.
It'd be great to see an outdoor @jamesbruton light show on 5th November (when the UK typically has firework displays)
if you had a room with a flat ceiling you could make a grid of downward-facing ultrasound units with spacing of say one meter. Then the drone could have just one upward-facing ultrasound unit, if you mounted it on a stick it might overcome the noise problem. You would need a compass unit on the stick as well (away from the motors) to measure yaw. Another dodge might be to blip the motors instantaneously at ping time. You might not need many position fixes to control the drone. I don't think you would need diffusers on the ceiling units. Anyway a quick simple experiment would show whether the idea was worth pursuing
The flight controller has a magnetometer, so that isn't such a problem. I think at the point of covering the ceiling with ultrasonics you'd be better of with Aruco markers.
This is very impressive, you are such a smart guy.
Plastics absorb IR light. Use an IR reflective material to increase range. Aluminium foil might work better.
I am looking at this problem for cameras and virtual sets. The dome reflectors is a good hint. I re-worked the electronics to improve receiver response (Transimpedence->High pass filter-> Comparitor). Four transmitters are needed to get 3D positioning in a square space. I am using RF keyfob module to sync.
Hi James. Blutooth Low Energy (BLE) has a positioning feature. You should have a look at devices like the DWM1000 (and the equivalents). These have 30m range, 10cm accuracy, are pretty cheap, and would be immune to most of the interference you are experiencing ... Great videos. Thanks!
The central system knows where the drones are at all times. It knows this because it knows where they aren't. By subtracting where they are from where they aren't, or where they aren't from where they are, whichever is greater, it obtains a difference, or deviation. The central system uses deviations to generate corrective commands to drive the drones from a position where they are to a position where they aren't, and arriving to a position where they weren't, they now are. Consequently, the position where the drones are, is now the position that they weren't, and it follows that the position that they were, is now the position that they aren't.
In the event that the position the drones are is not the position that they weren't, the system has acquired a variation, the variation being the difference between where the drones are, and where they weren't. If variation is considered to be a significant factor, it too may be corrected by the CEA. However, the system must also know where the drones were.
The drone guidance computance scenario works as follows: because a variation has modified some of the information the central system has obtained, it is not sure just where the drones are. However, it is sure where they aren't, within reason, and it knows where they were. It now subtracts where the drones should be from where they weren't, or vice-versa, and by differentiating this from the algebraic sum of where they shouldn't be, and where they were, it is able to obtain the deviation and its variation, which is called error.
Your audio issue is not due to downdraft. Your rotors and motors make sounds in the ultrasonic range. Ive seen this alot at my previous company which make soundcameras (also visualising ultrasonic frequencies)
Oh wow a sound camera sounds(ha ha) like a really cool idea! Got any demonstration videos?
@@trekintosh ua-cam.com/video/QtMTvsi-4Hw/v-deo.html
Check out time-of-flight sensors which are low cost but optical so should avoid the turbulence issues. The VL53L series from ST should be a good fit. Adafruit even have a module for the VL53L0X
Question: Where do you get your screws and what type are they?
Using ChatGPT to create the smoother code sounds interesting, how much time would this save you, what are the limitations, etc? Would be great to know more.
It took about three goes starting again each time before I got something that worked. The code is on Github.
@@jamesbruton With the GPT 3.5 version of ChatGPT I'm guessing? Not GPT-4?
@@jamesbruton but you don't know the original license of the code pulled by GPT
I love using the SparkFun stuff!
Ai is going to love this and sky net
Smoothing out the domes might help a bit with the coverage. The layers of the print are all perpendicular to the transmitter facing increasing the strength of the unscattered reflection, especially in the middle where the layer lines are quite pronounced.
The SRF05 operates at 40khz, which means a wavelength of ~8.5mm; would surface features under ~4.25mm even be detectable? I obviously have no idea what print settings were used, but typical layer height can be anywhere from 0.1mm to 0.6mm.
agreed, though I wonder if, from a level of effort standpoint, it would make more sense to reorient and reprint the domes in quarters then join them together, to take advantage of how much smoother 3d printed curves are when the wide side is on the xz plane
Super interesting exploration of ultra-sonics!
You could use an audio camera that’s homemade and have each device broadcast a different frequency
I love that you hacked the ultrasonics in this way.
Could you use a Lidar module out of a robot vacuum cleaner?
They are somewhat affordable (around 80€) and as far as I can tell also accurate.
That way you wouldn't need any base stations in the room.
HTC just announced a new all in one inside out tracker. Also Sony has a new motion tracker set for v tubing and mocap. I’m sure they are expensive I just thought they may be options for you to try if you didn’t know they exist. Thanks for sharing!
Hi there! I love the work! It's just that I feel that a positioning system relying on ultrasonics is somewhat unreliable for drones, have you considered RF. I'm pretty sure you can send out clock signals using transmitters (2 minimum, 3 or more for accuracy) set at fixed location and have them in different bandwidth channels. Then in the drones you'll have a receiver, due to using multiple channels, a single receiver can pick up all the data using software filters for each specific channel. Pretty much a clone of how gps works, but on a small scale, and I guess it'll be very precise and will have almost no dead areas. Anyways, this is just a suggestion, keep up the good work!
lidar maybe, steam vr sensors
I messed around with ultrasonic sensors a number of years ago and hated them. They suffer from reflection problems. What about borrowing a page from VOR transmitters and receivers used for Aviation? They use VOR stations that transmit a omnidirectional pulse every second, and a narrow, directional beam that physically rotates at a fixed speed. When that beam lines up with 0 degrees, the omnidirectional pulse activates. The receiver in the airplane sees the omnidirectional pulse and computes the time it takes for it to see the directional beam. For example, if it sees the directional beam 500ms after the omnidirectional, the receiver knows it is on the 180 radial south of that station. If you tune a second VOR station and draw the lines on a map, your position is where the lines intersect. So, what if you did the inverse of this... Have the drone emit an omnidirectional IR light (or several). Have 2 towers on tripods with an IR receiver that is hidden inside a rotating 3d printed cup that has a narrow window in it. Drive it with a stepper so you can precisely rotate it 360 degrees at a fixed length of time. You know when it it is a the start position, and as the cup rotates, observe when you see the drone's light and you can compute the radial. Detect this from 2 such towers and you can accurately know the position of the drone, as long as the IR light is not obscured from the drone.
Omg this is super related to my uni dissertation. My title was Uav drone collision avoidance using BLE. anyway I used Bluetooth aod and Rssi to ascertain distance and direction of nearby drones.
This is such an awesome idea! Keen to try something similar
Nice project, I propose you try more positioning sensor systems. Its quite interesting.
Amazing video bro
When you switched from ultrasonic to infrared you lost me completely.. it took me untill 5:05 when I was like "ooooohhhhhhhh that's super smart" :D
I'd think the ultrasonic sound is bouncing off the large wall just past the left-hand wooden strip. This could explain some of the non-symmetrical issues you were seeing.
I'm thinking something like the Wii controllers to get directional awareness, optical mice sensors could track the ground with different optics... Ultrasound is very efficient when it comes to determine indoor distance, great idea you had there.
you might be able to increase the ultrasonic FOV by placing the emitter further from the "dish"
I stumbled upon your channel. I'm very impressed with your thought process, workmanship, knowledge and more
Keep up the great work/content. I'm looking forward to the follow-up part(s). 👍👍👍
Maybe some sort of echo / reflection on the right hand to explain your test results?
Excellent work sir! 👍
Would there be any benefit in switching around the functions so the drone is the transmitter and the 2 booms are the receivers. I feel like transmitting ultrasonic and IR is a less susceptible to vibration and noise when compared to the receivers/sensors. Awesome project as per usual.
you can totally use bluetooth beacons or wifi beacons to track the drones too
Could you setup IR LEDs on each drone that each flash at certain differing frequencies, then using two cameras to find their positions?
popcorn time.
thank you
It should be siificient to sync the clocks/interval from time to time by IR to synchronize sender/receiver.
this is incredible, good work!
Can't wait to see what you do with the vive tracker. I've been wanting to combine my VR equipment that I don't use much anymore, with robotics knowledge that I have yet to obtain.
I worked an IT job last summer at Jellystone Park in Caledonia, WI. Most of my job revolved around our drone show, and it was an amazing experience. The software that is used to program them is beyond impressive. I plan on doing it next summer (I can't do it during the rest of the year as High School + Sports + FIRST Robotics Competition becomes a lot to handle sometimes) and I'm now looking into getting my FAA Drone Pilots License so that I may legally operate the show on my own.
I'd love to see someone try to adapt this to a cheap DIY VR outside in controller tracker.
Could you modify the ultrasonic sensors to accept sounds from any direction? Both the transmitter and sensor are designed to work in a narrow cone so it doesn't hear itself, only the echoes, but since you don't care about that, it would stop the dropouts when the sensors weren't pointed directly at the transmitter.
You would have to filter out the echoes, though, since now you have that sound being heard from all over. The first received sound should be the one that's travelled directly, though, so it should be possible.
James, don't use ultrasonics, that doesn't really work that well. Get the HTC Vive Lighthouse base stations and one (or more) of the HTC Trackers (tracking pucks). Cheaper and much more accurate solution that is impervious to noise.
Not great for really small drones but for larger robots it works great. And small stuff you can track put a bunch of LEDs on the bot and use two (or more) cameras with a bit of OpenCV to track them. Even webcams will do. It won't be as accurate as Vicon but it won't costs 10k€ + neither.
I think you highlighted a flaw when you said that the massive amount of IR light reflects off of everything. Are you really measuring the distance from the lamp or the distance to whatever is reflecting the most light?
Great project. Looking forward to your next video about tracking the drones.
Why not use IR distance sensors directly? You can get long distance high precision ones pretty cheap nowadays. (5m @0.1-1mm precision)
ToF sensors are also only slightly more expensive but give you even better specs and 3D output with no chance of interruption
I couldn't really see the graphs in the white boxes. It was blown out on my screen and I couldn't see the lines at all for some reason.
Amazing! Always loving some copter stuff!!!
Is the dome made out of a spherical cap? I thought it should've been a paraboloid of revolution. Still working great
Great video! It is really a interesting idea :D I love these videos where the whole process from idea to experimentation is shown.
It really got me thinking and something came to my mind: I understand that the general goal is to be able to track multiple robots. But, if the objective was to track just one, it might be a good idea to switch the places of the transmitter and receiver.
The transmitters will be syncronised at the robot and the receivers at the static positions (obviously changing the atennas the other way around to catch the ultra-sound from all places.) That way you won't have the problem of just one signal being received by both receivers (well you could but the transmitter are at the same place so the measurement will still be "correct"). You will get two measurements of distances, one per receiver and with it do some triangulation to estimate the position. What do you guy think?
Again this is something I just quickly thought about, but I think it might work.
What if you use, for example, EPS32 bluetooth beacons and EPS32 to measure the signal strength. How well it tolerates changes in the room. Assumed that without changes, the accuracy of the triangle measurement would be quite good when using the calibration table. Outside, you could perhaps use the wifi strength for longer distances.
Wow, very cool! Have you thought about using a single transmitter and multiple receivers rather than pairs?
If you know the separation of each receiver then you can get their distances from the transmitter based on the difference in time of receipt. Same concept, just pairing multiple receivers to the same transmitter.
Really cool project, I would love to see one that tracks in 3D!
That's against the purpose of the device. The goal is to make the mobile unit figure out its own position based on transmitters that don't actually care where it is. If you put the receivers on the fixed stations they would need to transmit the time of flight data back to the robot. That would mean the two base stations would only be able to track the single mobile unit as opposed to an arbitrarily large number of mobile units that could work off a single pair of beacons.
Angle your transmitters down a bit. The small transmitter is inline with your drone.
Great Video! On the next project, could you maybe have 2 drones holding either end of a skipping rope, and program them to synchronise the harmonic motion to swing the rope?
I'll try to get it flying first ;-)
hi James
you shuld flip ultrasonic tower undernith the dron body to be more stable
Cool project to try and do coordinated flight cheaply!
Did you see Vive's video the other day on their new stand alone body tracker? It uses the same 2 cameras pointing outwards for tracking as their headsets but tiny. Maybe you can get your hands some of those one day to play with how they did it.
now this is something
Omg the dome! Genius! Can you comment on the comparison between your approach (obviously cheaper) and the indoor positioning system of the first generation of Roomba Braava mopping robot? It relied on one beacon only, projecting a signal on the ceiling, and the robot on the floor sensing its relative positioning. Much more expensive than yours, but way cheaper than the drone system, as the entire product was 300 euros when it got out. Thanks!
Imagine hundreds of drones set to maintain a lattice then one fails and they all fly into the ground
That is how GPS works. Both units need to know when the signal I transmitted
Great work. any chance of getting the dish files as stl to 3D print? Thank you.
Try UWB Ultra Wide Band Indor GPS is much cheaper but the position is updated only with 10HZ.
If u have more multible "Ankors" it would be more akurat.
The drone light shows are so cool, but it's a shame they need the expensive drones. If your position tracking was good enough it would be cool to have a fleet of balloons with no propulsion, but just computing which ones to light up to make shapes. Even without the precise positions you could do cool abstract patterns by having short range communication between them like "balloon 9908: tell all the balloons within 20m of you to flash red." How much are ten thousand Arduino nanos and radio transmitters?