• Support
  • calibration gives 3 times different results

Hi Guys,

I got some mixed results on my calibration.
If i run it 3 times https://youtu.be/yz6vcJ2mwVs
As you can see on this video i got some pretty mixed up results on calibration on the same spot in blender.
Sensors are not moved but sometimes they move completely the wrong direction. while the other sensors move opposite.
Any idea's? it is not standard as you can see that it moves oppositie directions.
But its irritating because sometimes its the head then an arm then a leg or any random sensor that goes wrong.

Also stretched arms gives me bend elbows. Need some help before we can start recording.

Hi!

a couple of things to point out regarding the calibration procedure.

  • It's mandatory to have a second person pressing the buttons in the blender addon.
    For example, when you are doing the static calibration, all the data that should be recorded during the period in which the button is pressed have to be the performer standing still. If your are wearing the suite and pressing the buttons you will "record" the movement of your arm reaching the mouse and that will give you incorrect results.

  • The movement of the arms should be done with both at the same time

Let me know if this give you better results

  • zxwt replied to this.

    I got better results by using a remote so position does't switch for clicking or moving to the next.
    but T-pose is still off and left elbow is bending

      daylanKifky
      is it possible to implement a delay settings, so it would only start record after the performer is standing still, making a second person unnecessary? 🤔

        zaanen

        Yes we are aware that the arms sometimes give deviated results. We are currently working on a new version of the pose-calibration algorithm. There's a factor that need to be tweaked in order to align the arms correctly. We are looking for a way to auto-detect the correct factor for each case.

        In the meantime we added sliders to control the factor, you can find a pre-release of the next version of the addon here: https://gitlab.com/chordata/Blender-addon/-/jobs/3507027554/artifacts/browse

        If you install it you will be able to modify the STA left and STA right factors after you have done the calibration to align the arms. Right now you will see that is only applied to the upperarm segment, but as I said before it's just a step in the process of enhacing this part of the calibration.

        I would like to take a closer look at your situation. We included an easy mechanism to export the calibration data from the addon. Could you please send us the dump of a couple of calibration sequences? Here's how:

        1. Select the Armature node and press the N key on your keyboard. The properties panel of the node will appear on the right.

        1. Save your .blend file somwhere

        2. Enable the Dump Calibration Data option that you will find at the bottom of the properties panel

        1. Do the calibration sequence. Once it's finished you will find a couple of files (a .csv, a .json and a .log) in the folder where the blend file was saved. Please send those to us.

        If you can send us a couple of versions with some variations it would be great! For example one of them doing it alone with the remote and other one with a second person pushing the buttons. More about this below..

        zxwt is it possible to implement a delay settings, so it would only start record after the performer is standing still, making a second person unnecessary? 🤔

        Here's the thing: pose calibration is by far the most important factor to obtain a good capture. The role of the second person is not only pressing the buttons, but also guiding the one wearing the suite to have correct posture and perform accurate movements. It's really hard for a regular person to have enough self awareness of their own body to do the sequence correctly or even stand still in N-pose without external guidance. That's why we (and any provider of inertial mocap gears) strongly discourage doing the calibration alone.
        Moreover, as you can see, we are still in the process of tweaking the algorithm to get the best possible results. And we plan to use capture data coming from you guys to enhace the calibration (as I asked zaanen to do). If we add a timer at this point it would not only make users think that using it would give you equivalent results, but it will also provide us misleading data for the debugging process we are carring on.

        This is not just an idea, in previous versions of the addon we included the timer for the calibration, in fact if you activate the "Legacy calibration" option from the Armature node properties panel you will see it, and be able to do the legacy calibration (if you want to try it, please do it just out of curiosity, the current one is way better). As soon as we added that timer there was no turning back, all of our users were doing it this way and completely forgot about the importance of doing pose calibration with care.
        I hope this answers your question 🙂

        By the way, taking another look at the video we have a couple of things to point out:

        • in the third calibration sequence you repeat the gestures, like raising the arms, lowering the torso. That will probably give you incorrect results. The algorithm expects a single gesture for each body part

        • It looks like you are standing close to a table or desk. Keep in mind that the sensors are disturbed by magnetic interference, if there's a laptop or the table has metallic parts you might get wrong readings. It's best to do the capture as far away from other objects as possible

        Thanks i will try tonight a few and then if worked i will try a few tomorrow night at a gym/sportvenue where we have more room and more persons available.

        We receive the data, thanks!
        Dis you tried tweaking the STA factors? which results did you get from that?

          Like zxwt saying would be handy to, think rokoko also works like that thought a 5 or 10 sec countdown to get ready.
          What also would be handy is somehow save configuration of multiple actors. so you can recall that person.

          daylanKifky I tried tweaking but it makes it difficult see in the big video 3:36 till 4:00 and 6:25 till 7:35

          so one test done today somebody else pushing buttons and in more open space.
          video of the calibriation again in the same map.

            zaanen
            Thanks we received and are working on them.
            We are missing the log files for the takes:

            T22-20-10
            T22-23-37
            T22-27-02

            Would be ideal to have those too in order to have a complete picture of what's happening

              daylanKifky i checked but i think they are all in one logfile.
              2023-01-05T22-03-58-Chordata_calibration_result.log first run i copied it away it was 19kb now it is 81kb

                zaanen i checked but i think they are all in one logfile.

                yep, you are right. It's a small bug in the addon

                Here you can find a fixed version of the addon which keeps logging in different files:

                https://gitlab.com/chordata/Blender-addon/-/jobs/3580848494/artifacts/browse

                Regarding the calibration takes, here are some observations:

                • In the take T22-20-10 the [Static Calibration] button was pressed twice. This is not really problematic since the second one overwrites the first, but to keep in mind that for every calibration sequence each movement must be done just once. For example in another take the arms were raised twice, this will probably lead to incorrect results

                • In the take T22-23-37 the left-leg calib button was accidentally pressed twice, this will make the calibrator use data from the second period in which there was no movement

                • The take T22-27-02 was the best one. The general result is correct, but there are some adjustments to make to the calibration procedure to obtain better results

                General comments for the calibration procedure:

                • When doing static calibration in N-POSE the feet should be separated with the same distance than the hips. If the distance between your feet in this part of the calibration is bigger you will see the legs tending to the center, and perhaps crossing with each other when you walk.

                • In the functional calibration part (when you need to move arms, torso, etc) we care about the velocity during raising and falling of the body part, so it's better to do a continuous movement without pauses. A natural movement will work best, try not to force it to be too slow (it's not easy to do). When you reach the peak of your movement there's not need to hold the pose in that position.

                • Avoid abrupt movements. During legs calibration in particular it's normal to raise the leg in a way which reassemble more a kick than the steady motion we need. There's no need for the leg to reach 90deg or even closer. Most people are confortable up to the 45deg of elevation, and that's enough for the calibration to work well

                • The STA sliders have a just a small incidence in the rotation of the upperarms on the Y axis (so in the roll of the bone). To make bigger corrections change the angle of your arms in N-POSE. For example in the T22-23-37 take the calibration was mostly correct, but when you put your arms in T-POSE, with the arms just above the horizontal line of your shoulders the avatar had a similar pose but with the arms just below that horizontal line. Making the static calibration with your arms closer to your body will probably solve that.

                Observations on the data you sent us

                We found an almost imperceptible drift in the sensors when you are still. Could you test a couple of individual KCeptors as described in this section of the docs? We are particularly interested in discovering drift when your sensors are still, so please follow the procedure in the Note:

                To test the calibration throughly, make several rotations, aligning different axis of the KCeptor with the World axis inside Blender. Hold the KC still for a few seconds and make sure there's no drift.

                What i notice is that the new release harder connects to the notochord.

                The drift i still have to investigate bit busy this week and a 5 month old sleeping a lot in the room

                  zaanen What i notice is that the new release harder connects to the notochord.

                  So you are getting some problems when you hit the [connect] button? could you please give us some more details? The version I sent you only contain a few small patches over the currently public one (0.1.2), The connectivity part was left untouched. So if you confirm that you are finding more errors we should investigate why

                  PYTHON INTERACTIVE CONSOLE 3.10.8 (main, Oct 18 2022, 21:01:35) [MSC v.1928 64 bit (AMD64)]
                  
                  Builtin Modules:       bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bpy.utils, bgl, gpu, blf, mathutils
                  Convenience Imports:   from mathutils import *; from math import *
                  Convenience Variables: C = bpy.context, D = bpy.data
                  
                  Chordata Engine (v1.2.1, #3b622e06) started @ 2023-01-19 17:30:59
                  Checking connection at http://notochord:80
                  Connection found
                  Sending configuration
                  Activating configuration
                  Initializing
                    HTTP error  
                  ==============
                  GET http://notochord:80/notochord/init?addr=192.168.85.17&port=6565&scan=True&verbose=0&raw=True
                  status code: 0
                  Chordata Engine stopped
                  Chordata Engine (v1.2.1, #3b622e06) started @ 2023-01-19 17:31:22
                  Sending configuration
                  Activating configuration
                  Initializing
                  Notochord running
                  Listening OSC
                  
                    info: [       2] I2C adapter initialied on: /dev/i2c-1
                    info: [       2] == Notochord setup done ==
                    info: [       2] Conf file.................: /opt/chordata/notochord-control-server/notochord_control_server/files/blender_config.xml
                    info: [       2] Target msg................: None
                    info: [       2] Target error..............: PYTHON
                    info: [       2] Target transmit...........: OSC
                    info: [       2] OSC ip:port...............: 192.168.85.17:6565
                    info: [       2] Log file..................: /opt/chordata/notochord-control-server/.notochord_log/chord_log
                    info: [       2] Verbosity.................: 0
                    info: [       2] Send Raw..................: True
                    info: [       2] Send Bundles..............: True
                    info: [       2] Gyro scale................: gyro_2000
                    info: [       2] Accel scale...............: accel_8
                    info: [       2] Mag scale.................: mag_4
                    info: [       2] == Started Hierarchy scanning ==
                    info: [     142] Scanning complete
                    info: [     142] Notochord start @ 2023-01-02 01:34:22.095908
                    info: [     143] First sensor in Scheduler: kc_0x40branch2
                    info: [     143] Starting timer. [NODES < 6 , 1 > = 7 | ODR = 50  | Sleep = 19730us]
                    info: [     577] Setup KCeptor++: kc_0x40branch2 OK!

                    zaanen
                    In this log it seems like you had one HTTP initialization error and after hitting the button again you were able to start the notochord and receive the capture stream, right?

                      daylanKifky This time yes but sometimes its 3 or 4 times the initialization error and then i can connect.
                      And normally its more the 3 or 4 times then this time only the first time.