ESP32 + UWB | Indoor Positioning + Unity Visualization

Поділитися
Вставка
  • Опубліковано 12 бер 2022
  • The project to be shared this time is about Indoor Position with 3 UWB devices.
    The two UWB devices act as anchors and their positions are fixed.
    On the other hand, the tag device acquires the distance from these two anchors as it moves.
    Unity application uses the information obtained from the tag device, calculates the position on the x-z axis, and displays it in the virtual environment.
    [ESP32 + UWB | Warning sounds depending on the distance]
    • ESP32 + UWB + I2S "Voi...
    [ESP32 + UWB | How far can it go?]
    • ESP32 + UWB | How far ...
    [ESP32 + UWB | Not AirTag, But ESP32Tag]
    • ESP32 + UWB | Not AirT...
    [Makerfabs - ESP32 UWB Indoor Positioning Test]
    www.makerfabs.cc/article/esp3...
    [Project Github]
    github.com/0015/Unity_Project...
    #Visualization #Indoor #Position #UWB #ESP32 #ThatProject
  • Наука та технологія

КОМЕНТАРІ • 108

  • @ThatProject
    @ThatProject  2 роки тому +1

    For more projects - ua-cam.com/users/ThatProject
    That Project Github Repository - github.com/0015/ThatProject
    Join FB Group - facebook.com/groups/138965931539175

  • @advaitkulkarni8929
    @advaitkulkarni8929 2 роки тому

    Dudeeeee....🔥🔥🔥 Great one

  • @bisquestudio
    @bisquestudio 2 роки тому

    Amazing bro 💥🌟

  • @bardenegri21
    @bardenegri21 2 роки тому

    Really cool.

  • @ientucamranh9270
    @ientucamranh9270 2 роки тому

    Thank you very much

  • @youliantroyanov2941
    @youliantroyanov2941 2 роки тому

    Too cool, u da man 👍

  • @KengCat-kt6rt
    @KengCat-kt6rt 2 місяці тому

    hi, how hard would it be to add one more anchor and use mpu6050 to get orientation and rotate the tag based on that.. sorry if this is a dumb question.. i am new to unity

  • @uview920
    @uview920 2 роки тому

    멋집니다! 혹시 관련 튜토리얼을 하실 생각은 없으신가요? 만들어보고싶네요!

  • @speedgood1711
    @speedgood1711 9 місяців тому

    @ThatProject Thank you your excellent example. Are there any specific activate order suggestion? such as, start from two anchors, then start client, then start Unity in the end?
    And for two anchors' mac address BB:AA:5B:D5:A9:9A:E2:9C, should I have to change?

    • @ThatProject
      @ThatProject  9 місяців тому +1

      The MAC addresses of the two anchors must be different.
      BB:AA...
      DD:CC...

  • @yesiamadorito
    @yesiamadorito Рік тому

    Hi, I have a project where I'm supposed to build an Indoor Positioning System for a small-scale production line (roughly about 30 workers in the whole production line). The room measures about 200m*200m. Is it possible to implement the UWB based technology to this? If so, what's the process like for adding more tags. If I were to create a web of beacons (> 2 anchors) in the manufacturing room (more than two to cover the entire room), how would that work? Thank you, your video's excellent!

    • @ThatProject
      @ThatProject  Рік тому

      In order to do indoor tracking for a large number of people, is impossible with the library currently in use. Anchor devices can communicate with only one Tag device with this library. Without addressing this issue, a mass-tracking system cannot be implemented.

  • @sjl4140
    @sjl4140 2 роки тому +1

    Awesome! How did you scale a signal strength to a meter? Is there any mathematical way to calculate it or just empirical?

    • @ThatProject
      @ThatProject  2 роки тому +1

      UWB uses the time of flight instead of signal strength for distance measurements. From this, you can figure out the distance between the Anchor device and the Tag device.

  • @mostafanfs
    @mostafanfs 2 роки тому

    Great work. Thanks. I just had one question. The UWB modules in both Anchor side and the tag are the same right? They just have different firmware inside, true?

    • @ThatProject
      @ThatProject  2 роки тому

      Yes, you're right.

    • @mostafanfs
      @mostafanfs 2 роки тому

      @@ThatProject sir any news of a better and or cheaper module? NXP has a chip but apparently there is no price. I wonder if BU01 has the original DW1000 chip or not

    • @ThatProject
      @ThatProject  2 роки тому

      @@mostafanfs I have no idea about NXP. And BU01 is a cloned version of DWM1000.

  • @smraro
    @smraro Рік тому

    Amazing! Are the anchors aware of the positions of the tag too? Can the anchors be aware of an approximate location of the tag? What can I do si the anchors be aware of the tag location?

    • @ThatProject
      @ThatProject  Рік тому

      You can also know the distance to the connected tag from the anchor. One thing is that you cannot connect multiple tag devices to one anchor with the library of the DWM1000 currently in use. Only one Tag can be connected at a time.

  • @siete8932
    @siete8932 Рік тому

    Hello thanks for this video. I would like to use this technology to track a robot mower on an 800m2 plot of land. Do the anchors have enough reach for an 800m2 plot?

    • @ThatProject
      @ThatProject  Рік тому

      Unless you force power up the UWB module, it seems difficult to cover all 800m2.

  • @user-sx3uh9fz5w
    @user-sx3uh9fz5w 9 місяців тому

    I would like to inquire about an issue where my tags do not move during Play mode.
    I have identified that this may be a problem with the Unity UDP server, as it doesn't seem to start properly or receive data.
    How can I resolve this issue?

    • @ThatProject
      @ThatProject  9 місяців тому

      Please check if the UDP port on your PC is being used by another process. If the port is already in use, please try using a different port.

  • @hyemyoo8051
    @hyemyoo8051 10 місяців тому

    hello.
    I enjoyed the video.
    Is there any method you know that can make the reaction speed faster?
    I'm planning on using it as a game controller, so I need speed and accuracy.
    The accuracy seems to be okay, but the reaction speed seems slow.
    It doesn't matter if a person is holding something.
    thank you!

    • @ThatProject
      @ThatProject  10 місяців тому

      For faster speed, it seems that the speed of calculating the distance from UWB should be increased. But unfortunately, this requires modifying the UWB library, so there is nothing we can do without modifying it.

  • @yukizerotwo6815
    @yukizerotwo6815 2 роки тому

    Can I ask what framework did you use? Thank you

    • @ThatProject
      @ThatProject  2 роки тому

      The hardware used ESP32 and was implemented in the Arduino IDE framework. For visualization, I used the Unity Game Engine.

  • @jlcamry
    @jlcamry 2 роки тому +1

    well done!!
    impressed APP
    why your 3 lolin32 without battery connector??

    • @ThatProject
      @ThatProject  2 роки тому

      It was forcibly removed due to some past project.

    • @jlcamry
      @jlcamry 2 роки тому

      @@ThatProject i see
      i will give you 5 connectors

  • @kodigudlasreenu8602
    @kodigudlasreenu8602 2 роки тому

    can we move the anchor position dynamically and still get the distance between anchor and tag

    • @ThatProject
      @ThatProject  2 роки тому

      Didn't you get my reply? Anyway, here you are again. Even if the anchor and tag move dynamically, the distance between the two devices can be measured continuously because they measure relative. (UWB uses the time of flight instead of signal strength for distance measurements.)

  • @turinosastrawijaya3849
    @turinosastrawijaya3849 2 роки тому

    Very interesting experiment.
    In a 50 X 50 square meters room, how many anchors do we need and what is the maximum number of tags that are still allowed? thanks....

    • @ThatProject
      @ThatProject  2 роки тому

      A maximum of 16 anchors can exist in any one area… if you have > 16 and all of them are within range (i.e. if one anchor can hear the other 16, then you cannot add any more near that one anchor)
      In order to cover 50 meters x 50 meters, it must be delimited by a recognizable distance. For example, in my environment, it was possible to communicate with the Tag-Anchor at about 25 meters. In this case, it looks like I'll need an anchor every 25 meters.

  • @erickfernandoortizmiranda8892
    @erickfernandoortizmiranda8892 8 місяців тому +1

    Would this work inside a house? Or would the walls not let it work?

    • @ThatProject
      @ThatProject  8 місяців тому

      It may vary depending on the environment. Therefore, environmental testing is absolutely necessary.

  • @nolansamrajgodwin3710
    @nolansamrajgodwin3710 Рік тому

    Hi, My Tag code is not connecting with the wifi. can you help in this?

    • @ThatProject
      @ThatProject  Рік тому

      UWB and WIFI modules have nothing to do with each other. Please check your WIFI credentials.

  • @megathilmi4074
    @megathilmi4074 Рік тому

    hi, can I ask. after following your setup, why the tag in unity are not moving. seems like there is no error appear in my unity but still the tag are not moving after clicking play button? hope that you reply to this question. Thank you very much

    • @ThatProject
      @ThatProject  Рік тому

      Make sure your ESP32 is not having problems sending data over UDP.

    • @megathilmi4074
      @megathilmi4074 Рік тому

      @@ThatProject I already made a test using esp32 sending data over udp to my laptop using phyton and there is no problem with the hardware. May i know is there any extra settings for the unity that not shown in the video.

    • @ThatProject
      @ThatProject  Рік тому

      @@megathilmi4074 You've tested it on a Python server, but haven't tested communicating with Unity UDP. Please check if the port is properly opened in Unity. I didn’t hide anything.

  • @LoneXRangerz
    @LoneXRangerz 2 роки тому

    Hello! I've recently started interfacing ESP32 UWB, any tips on how to interface multiple sensors with it? I'm also trying to do a similar project with Indoor positioning but with the tag having multiple sensors. (i.e., heart rate sensor, temp sensor...) The only problem is that I've only started interfacing with UWB. Kinda need some "professional" advice. Thanks!

    • @ThatProject
      @ThatProject  2 роки тому

      You can attach any sensor you need to the Tag device. The main problem is that the DW1000 library is out-of-date and not maintained, so you have to be very careful with your code. ISR conflicts can cause the system to malfunction.

    • @LoneXRangerz
      @LoneXRangerz 2 роки тому

      @@ThatProject Should we be careful with defining I/O pins? Recently, the output of the code similar to your project was not responding after I've added multiple sensor codes.

    • @ThatProject
      @ThatProject  2 роки тому

      @@LoneXRangerz I don't know how you added the sensor, but if data is fetched by interrupt, it may conflict with the UWB chip. Please find out about the ISR.

  • @shunds637
    @shunds637 2 роки тому

    Can multiple positioning base stations be added?

    • @ThatProject
      @ThatProject  2 роки тому

      As far as I know, you can install a lot of Anchors. However, it is questionable whether the DW1000 library currently in use can handle this.

  • @jonathanr4242
    @jonathanr4242 2 роки тому

    Great project. What about lidar sensor in unity?

    • @ThatProject
      @ThatProject  2 роки тому +1

      I guess we can use Lidar Sensor with Arduino or ESP32 in Unity and the quality of the surface data obtained from it will be very good.

    • @jonathanr4242
      @jonathanr4242 2 роки тому

      @@ThatProject Yes. And you could use the unity models for collision and gravity etc...

  • @meinsda5983
    @meinsda5983 2 роки тому

    Nice Project! I also searching für this chip? I found a DMW1000 and a BU01 board. Which one should i choose? Where can i find the esp32 Adapter?

    • @ThatProject
      @ThatProject  2 роки тому

      Well As I mentioned in the video BU01 is the clone version of DWM1000. DWM1000 has a way better antenna.

    • @meinsda5983
      @meinsda5983 2 роки тому

      @@ThatProject is the DWM1000 with the square antenna and a little bit longer?

    • @ThatProject
      @ThatProject  2 роки тому

      @@meinsda5983 Both DWM1000 and BU01 are the same size.

  • @kunalzshah
    @kunalzshah Рік тому

    Can the system simultaneously track say 40 tags?

    • @ThatProject
      @ThatProject  Рік тому +1

      No. This is not possible with currently published libraries.

    • @kunalzshah
      @kunalzshah Рік тому

      @@ThatProject oh :(….. shame

  • @user-xc6ph6dq8i
    @user-xc6ph6dq8i 6 місяців тому

    is there any unity project/code for "ESP32 DW3000"

    • @ThatProject
      @ThatProject  6 місяців тому

      I don't have a real project with DW3000 yet.

  • @neilangelobellen7635
    @neilangelobellen7635 Рік тому

    Hi! Is it possible to send the location via SMS messaging?

    • @ThatProject
      @ThatProject  Рік тому +1

      You can send SMS using GSM module. If Wifi is available, you can send SMS via paid API. ua-cam.com/video/SP4pvYCQAfc/v-deo.html

  • @deepthadinesh8096
    @deepthadinesh8096 Рік тому

    can esp32 wrooms support this project

    • @ThatProject
      @ThatProject  Рік тому

      It's not matter. All you need to run this project is to use a UWB chip (DWM1000).

  • @r.h.d9933
    @r.h.d9933 Рік тому

    What are the codes you used in C#?

    • @ThatProject
      @ThatProject  Рік тому

      You can find it in the video description.

    • @r.h.d9933
      @r.h.d9933 Рік тому

      @@ThatProject is there guides on how to use unity? sorry I've done the project before but only using python and now I want to try using unity for my visualization

    • @ThatProject
      @ThatProject  Рік тому

      @@r.h.d9933 Unfortunately, I stopped currently offering tutorials for Unity. Please googling or find a tutorial video that is best for you on UA-cam.

  • @ientucamranh9270
    @ientucamranh9270 2 роки тому +2

    Please.3 axis dwm1000

  • @temmiethy166
    @temmiethy166 Рік тому

    Hello, I am new to Unity and wanted to ask how do you create your UDP server in Unity? Thanks

    • @ThatProject
      @ThatProject  Рік тому

      Everything for network communication is already included in Unity in the .Net Framework. Use this to build your own server. github.com/manlaig/basic_multiplayer_unity
      I used this UDP server. It's simple but works great on a local network.

    • @temmiethy166
      @temmiethy166 Рік тому

      @@ThatProject Hi Eric, thanks for the information. I'll definitely check this out. When trying to connect my tag to the Unity Program, I'm faced with two errors.
      Before I press "play", a yellow error appears at the bottom of my Unity saying "Assets\Scripts\DataHandler.cs(23,29): warning CS0414: The field 'DataHandler.rightAnchorShortName' is assigned but its value is never used".
      Is this an issue?
      And when I press "play", a red error appears saying "SocketException: Only one usage of ach socket address(protocol/network address/port) is normally permitted."
      Have you faced these issues before? Thanks very much

    • @ThatProject
      @ThatProject  Рік тому

      @@temmiethy166 You can ignore the first warning. It's just a warning about unused variables.
      Seems like the port in your program is already in use in another program, you should use another port or kill the active process to make the port free.
      I use port number 8080 in this project. Please try again after setting a port number other than this port number for Unity and your hardware respectively.

    • @temmiethy166
      @temmiethy166 Рік тому

      @@ThatProject Hi, how do you check that the ESP32 is connected to the UDP port in Unity? I've seen that there are tests like HTTP GET and POST but I think those are for TCP right? Even after changing my port number on the tag and in the Unity editor, the "play" window just displays the server IP address and the port number and the tag cannot move. Thanks

    • @ThatProject
      @ThatProject  Рік тому

      @@temmiethy166 If you look at my ESP32 code, you can see that I use #include . Please check my source code again.

  • @m4gg197
    @m4gg197 2 роки тому

    sir can you put 3 anchors for a 3rd dimension (altitude) there?

    • @ThatProject
      @ThatProject  2 роки тому

      It's still being prepared for testing. I need more BU01.

    • @SuperJoelgeorge
      @SuperJoelgeorge 10 місяців тому

      @@ThatProject even 2d requires 3 anchors, without 3 anchors how did you even triangulate your 2D position in this video. It should be on either side of the circle

    • @ThatProject
      @ThatProject  9 місяців тому

      @@SuperJoelgeorge You're talking about 3 devices for 2D position measurement, right? Here, two Anchor and one Tag devices were used.

    • @SuperJoelgeorge
      @SuperJoelgeorge 9 місяців тому

      @@ThatProject yes what I'm telling is, for triangulation itself 3 anchors will be required in a 2D space

    • @ThatProject
      @ThatProject  9 місяців тому

      @@SuperJoelgeorge Now I got it. Yes, we need 3 anchors for triangulation. So you will try it sooner or later?

  • @KengCat-kt6rt
    @KengCat-kt6rt 5 місяців тому

    Hi, is there any readme files about how to run the unity file .

    • @ThatProject
      @ThatProject  5 місяців тому

      It doesn't have the specific readme file for that. Any issues while running the Unity project?

    • @KengCat-kt6rt
      @KengCat-kt6rt 5 місяців тому

      ​@@ThatProject yes. while running the unity project it wasnt receiving any data. udp.Available was always 0. i checked receiving the data in the same ip and port using a python file and it was successful but the unity file isnt receiving the data

    • @ThatProject
      @ThatProject  5 місяців тому

      @@KengCat-kt6rt Perhaps you need to open a specific port in the firewall of the system you are using. Do you use Windows?

    • @KengCat-kt6rt
      @KengCat-kt6rt 5 місяців тому

      @@ThatProject yes i use windows. I was able to get the data by receiving it via a python file and sending it again to the unity via localhost but communication between uwb and unity is blocked

    • @ThatProject
      @ThatProject  5 місяців тому

      @@KengCat-kt6rt Not sure this is for your case but check it out. forum.unity.com/threads/starting-host-server-shows-port-is-closed.1470026/

  • @user-so4ce5hr4w
    @user-so4ce5hr4w 10 місяців тому

    i had follow the video and i tried with esp32+BU01
    i got a msg was
    DW1000 initialized ...
    Committed configuration ...
    Device ID: FFFF - model: 0, version: 0, revision: 0
    Unique ID: FF:FF:FF:FF:FF:FF:FF:FF
    Network ID & Device Address: PAN: 0A, Short Address: 01
    Device mode: Data rate: 110 kb/s, PRF: 16 MHz, Preamble: 2048 symbols (code #4), Channel: #5
    can u give me more instructions about that !

    • @ThatProject
      @ThatProject  10 місяців тому

      That's the information about your DW1000 chip and settings. Also, you can change the Preamble length and Frequency for your environment.

    • @user-so4ce5hr4w
      @user-so4ce5hr4w 10 місяців тому

      @@ThatProject
      well . u mean that it is common to send this message and everything is in order. However, in this particular case, since I am using Unity, I'm not receiving any immediate response.
      I am interested to know if it would be possible for us to connect directly.

    • @ThatProject
      @ThatProject  10 місяців тому

      @@user-so4ce5hr4w That's weird. It's because UDP connection, you can get the packet as soon as the other one is sent in Unity. I think you need to check both of sender and receiver to address this issue and Your WiFi router too.

    • @user-so4ce5hr4w
      @user-so4ce5hr4w 10 місяців тому

      @@ThatProject
      Im using a grean board similar to the red one you had used it .
      It seems the i got same results when i connect the board without the Chip (bu01)
      So how can i make sure its working ?

    • @ThatProject
      @ThatProject  9 місяців тому

      @@user-so4ce5hr4w I'm not sure if you would have gotten the same results without Bu01.