Hardware selection:
I hope that the motion capture device can be connected to the PC wirelessly, so esp32 has become the first choice. There is no need to add an additional transparent transmission module, and the price is also cheap.
The other is the selection of IMU. There are many options for this. Some high-precision IMUs are very expensive, so the most common six-axis IMU MPU6050 is used here. It is high quality and low price. The drift and noise problems are definitely big, but It can be put into the software algorithm to optimize as much as possible, but as everyone who has adjusted attitude control knows, the yaw angle of the six-axis sensor is almost unusable. This is caused by the working mechanism of the six-axis sensor, and can only be obtained by integrating the angular velocity. The yaw angle is then corrected to a certain extent by the roll angle and pitch angle. In an ideal state, the static response is adequate, but the dynamic response is almost a disaster. In the field of motion capture, this is obviously inappropriate, so In order to obtain a more accurate yaw angle, I chose to add a magnetometer, HMC5883L. Although the magnetometer also has the problem of being interfered by the environment, such as the surrounding magnetic field, its yaw angle is at least credible to a large extent. Environmental interference can also be put into the software algorithm to correct it as much as possible. So the final solution for the lower computer is to use esp32+mpu6050+HMC5883L. The cost is about 30 yuan. Then about the choice of the upper computer, because this time it involves 3D models, of course we invite our old friend Unity to collect and solve the problem on the lower computer. The Euler angles that come out are directly communicated with the PC via UDP (small delay) via wifi to transmit data, and then the human body posture is restored based on the Euler angles on the PC. The general idea is this.
Hardware design:
In terms of hardware, the IMU directly uses modules, because bare chips cannot be bought (sad), and the size is as small as possible. The reason why it is not drawn as two panels is because even if the size is smaller, the battery capacity may not be enough. Well, I simply settled on the size of 45mm * 45mm, which can be used to complete the painting at one time, and at the same time, it can also hold an 800mah lithium battery.
Software details:
For software details, please see my Github. Attached is the Github repository link here --> https://github.com/isNineSun/Human-Pose-Estimation---Motion-Capture-Device
3D printed shell:
Shell The stl file will be placed in the attachment link.
Host computer & effect display:
There is currently only one host computer software used for testing. The specific instructions are mentioned in Github.