Our team is mainly composed of junior students, and the team members are from the Nizhou Laboratory of Shenzhen University. Shenzhen University Nizhou Laboratory is a highly autonomous laboratory with competition as its core and is active in major electronic competitions. Its team members have won many first and second prizes in provincial and national electronic competitions. We divide our work. It is clearly divided into hardware circuit design, GUI development, algorithm design, embedded software development, and host computer development. They coordinate tasks with each other and develop together efficiently.
With the emergence of more and more large indoor spaces, the demand for indoor positioning functions is gradually expanding. Since the indoor accuracy of satellite navigation is very limited, various indoor positioning solutions continue to emerge. One of the more well-known implementation solutions is ultra-wideband wireless communication. Ultra-wideband technology is a new type of wireless communication technology. Its wireless signal has a bandwidth of GHz and is insensitive to channel fading, low power spectral density of the transmitted signal, low interception capability, low system complexity, and can provide positioning of several centimeters. Accuracy and other advantages.
Using the sub-nanosecond ultra-narrow pulses emitted by the ultra-wideband chip, the flight time of the wireless signal in the air can be obtained, and then the flight distance can be calculated. In other words, two ultra-wideband chips can obtain information about each other by sending wireless signals to each other. distance between. Therefore, if a unit can obtain distance data from at least three other units, the relative position between the unit and other units can be calculated through a geometric mathematical model. If we fix the position of other cells, we can get the specific position of this cell.
In geometric mathematics, if we can know the center coordinates and radii of three circles in the coordinate system, we can calculate the coordinates of their intersection points, but this only exists in an ideal model. In fact, due to errors in various links, the calculated radius value and circle center coordinates cannot be completely consistent with the actual position, and this does not take into account the interference problem. Therefore, it is most likely that the distance measured using ultra-wideband (that is, the radius of each circle) cannot directly obtain the intersection coordinates (the equation has no solution). Therefore, when solving the coordinates of the target unit in the actual process, it is necessary to perform multi-step operations on the measured data to obtain a coordinate value that meets expectations and the calculation method is scientific.
The first-generation system uses three base stations for positioning by default, so its usage scenarios are very limited by ultra-wideband antenna performance. And because it does not have the scalability of a base station, it is not suitable for various scenarios with very large indoor spaces, further limiting its application. In addition, since there are only three base stations in the system for positioning processing, the number of tags that the entire system can carry is also very limited, which does not meet the needs of practical applications.
There is a master-slave relationship between multiple tags and they are not independent of each other. In order to avoid the signal conflict problem caused by simultaneous positioning of multiple tags, a mechanism is designed for the master tag to coordinate the slave tags: there must be a master tag in the system for sending semaphore data packets with a specified ID (that is, the corresponding ID Passes assigned to positioning from labels). In other words, although the system supports multi-label positioning, in fact, the labels are highly correlated, cannot operate independently, and cannot be positioned simultaneously. This results in a decrease in label performance as the number of labels increases.
Hand movement recognition enables lightweight virtual scene interaction
- Basic static indoor positioning function is realized through UWB base station network scanning.
- By adding IMU sensors and vibration motors, a space (three-dimensional) host computer was created using Unity 3D, and two lightweight somatosensory interactive mini-games (tank shooting) were designed to achieve the combination of indoor positioning and somatosensory interaction.
- Qt Creator is used to independently design the UI interface and create a flat (two-dimensional) host computer to visually display the collected data and expand the host computer's electronic fence, route tracking and recording and other functions.
Indoor positioning people flow analysis system in supermarket scene
Competitions that the first-generation positioning system participated in:
This project is a second-generation version that is iteratively improved based on the team’s first-generation project and is made public for the first time.
GPL3.0
所有资料开源,欢迎交流指点!
禁止将项目任何资料放到任何平台以任何方式售卖!
For the first generation of hardware, we used STM32 to drive DWM1000 and used TI's CC1310 for positioning data transmission. Based on the actual use, we designed three base station tag two-in-one boards: Model 1 (STM32+CC1310+DWM1000)
能够完成基本的UWB定位功能,添加了CC1310,能够在898MHZ的频段下传输UWB定位数据,具有独立通讯能力
Model 2 (STM32+CC1310+DWM1000+ESP32+IMU+AP+MOTOR)
双层叠板设计,底板是一个单独的定位模组,顶板集成ESP32以及CC1310等,能够根据需求更换顶板,具有高可适用性
Model 3 (STM32+CC1310+DWM1000)
相比于Model1 UWB天线采用胶棒天线,CC1310采用IPEX外接天线,具有更强的射频性能,抗干扰能力强,适合长距离应用
These first-generation hardware versions are small in size, easy to install, and portable enough to be deployed in various applications. However, considering the upgradability, scalability, playability, and data visualization of the old hardware, they are not very good. Ideal, so I have the following second-generation hardware
Inspired by APPLE's AirTag, we designed a UWB positioning board (base station/tag) that is only the size of a one-yuan coin. It has ultra-high integration, so it is named OneTag. It includes the following hardware modules and interfaces:
In addition to being able to complete basic positioning functions, the provided ESP32 can use Bluetooth to interact with mobile phones, use WIFI to directly upload data to the Internet, the provided IMU can complete trajectory estimation and positioning navigation, and the provided buttons, LED, vibration The motor can provide a good non-visual interactive experience, and the two rows of expansion IO on the board can support the expansion of more functions, full of scalability!
PCB 3D simulation diagram:
Hardware physical picture:
Schematic:
PCB:
In order to demonstrate our algorithm function and positioning algorithm, we designed a relatively small positioning tag, which is mainly used for data visualization and human-computer interaction, so it is named Tag_HMI, including the following hardware modules:
PCB 3D simulation diagram:
Hardware physical picture:
LVGL-based GUI interface:
Schematic:
PCB:
The host computer was developed through QT5, which uses TabWidget as the core control and is divided into three sub-Tabs. TableWidget is used in Tab1 to record various parameters and status of the tags and base stations in this system to facilitate the control of this system. Real-time monitoring of operations. Tab2 draws a map, which includes tags and base stations. By default, the base station will be in red status (offline). When the base station is inserted, the corresponding base station will be in online status (blue). If the tag is scanned in the network , the relative position of the tag relative to each base station will be displayed, and the tag will be monitored at the same time. When the mouse is hovered, the status and coordinates of the tag will be displayed. It also integrates functions such as label trajectory drawing to improve the application of the system. Tab3 records the received data in TextEdit and displays some background log information.
The terminal base station communicates with the software host computer through UART, and the two have their own independent communication protocols. The host will issue a "device search package" to the terminal base station. After receiving the request packet, the terminal base station will conduct a search for all base stations and tags in the network. If a response is obtained, all data will be packaged into a "device response packet" and uploaded to Host computer. After receiving this packet of data, the host computer decodes the data packet and determines how many base stations have several tags at this time, as well as their respective coordinate information and channel information. Finally, it is visually presented in the form of a list through the Tablewidget control, and its channel, coordinates, address, whether it is online, etc. are recorded in real time. Manage each base station and tag in this system from an overall perspective. After solving the "device response packet", the host computer background will refresh and draw the current position of each tag in real time, display the relative distance between it and each base station, and convert the coordinate data into an image as a visual interface. In addition, the host computer integrates functions such as trajectory drawing and saving. After starting, the movement trajectories of each tag will be drawn and updated in real time. At the same time, if necessary, the coordinate data can be directly saved locally as a txt file.
The principle of the TOA positioning algorithm is to obtain the distance from the tag to the base station by measuring the flight time of the electromagnetic wave between the tag and the base station. Then use this distance as the radius and the coordinates of the base station as the center of the circle to create a coordinate model, as shown in the figure below.
Ideally, all ranging data are accurate, and each circle created will have a common intersection point, and the coordinates of this point are the coordinates of the label. However, in practical applications, measurement errors will occur due to interference from various factors. This error will cause the results to be too large or too small. Therefore, in the model established using the actual measured data, the three circles will not have a common intersection point. , but the following situations are more likely.
In these cases, although the three circles do not strictly intersect at one point, they still contain the coordinate information of the label. We need to design an algorithm that can estimate the label coordinates from these data and be compatible with the above different situations.
The goal of the algorithm is to estimate the most likely coordinate point from the above situations. The steps are as follows:
For the three circles of the coordinate model, we first randomly select two for inspection. For two circles, there are four types of relationships between them: intersection, tangency, separation, and inclusion. In the case of two circles, no matter what the relationship between them is, we can get a reference point that we think is closest to the true coordinates of the label. The method is as follows:
When two circles intersect, there will be two intersection points, and we choose one of the intersection points as the reference point. The selection is based on the difference between the two intersection points to the center of another circle and the radius of this circle station. Whichever is smaller will be used as the reference point (red point in the picture)
Select the tangent point as the reference point (the red point in the picture) (the same for both inner and outer cuts)
On the line connecting the center of the circle, select a point that can divide the line segment in proportion to the radius. This point is used as a reference point (the red point in the picture)
Find the shortest line segment from arc to arc, and take its midpoint as the reference point (red point in the picture).
Combine three circles in pairs and find their reference points respectively, so you can get three reference points. Using this strategy of finding reference points, three reference points (red dots in the figure) can be found for all situations.
The three reference points form a triangle, and the centroid of the triangle is used as the label coordinate (blue point in the figure).
All reference designs on this site are sourced from major semiconductor manufacturers or collected online for learning and research. The copyright belongs to the semiconductor manufacturer or the original author. If you believe that the reference design of this site infringes upon your relevant rights and interests, please send us a rights notice. As a neutral platform service provider, we will take measures to delete the relevant content in accordance with relevant laws after receiving the relevant notice from the rights holder. Please send relevant notifications to email: bbs_service@eeworld.com.cn.
It is your responsibility to test the circuit yourself and determine its suitability for you. EEWorld will not be liable for direct, indirect, special, incidental, consequential or punitive damages arising from any cause or anything connected to any reference design used.
Supported by EEWorld Datasheet