Mohammad Javad Azadi
Mohammad Javad Azadi
  • 226
  • 103 905
Running Based on the Combined Static and Dynamic Acceleration Vectors
The Unicycle filters inertial measurements before using them in controlling the motors. The Earth pulls the robot towards the ground, and so we should expect a pull of one g in the vertical direction as the static acceleration vector. But, we fuse two different estimates of the acceleration vector for accuracy. Compute one of the estimates by normalizing the three-dimensional vector of the accelerometer. Compute another estimate by taking the estimate from the previous time step and rotating it according to the angular velocity about the principal axes of the chassis (x, y and z). In this particular estimate of the gravity acceleration (static + dynamic) we assume that the position of the robot is constant and only a reorientation about the center of mass is required to update. Multiplying the period of one run of the controller (0.007696 second) by the angular velocities that are obtained from the gyroscope component gives us the rotation angles. Then, the rotation matrix (three rows by three columns) of the reorientation is instantiated, given the angles and the gravity acceleration estimate of the previous time step. The acceleration vector of the previous time step is updated with a current estimate by a matrix-vector multiplication.
Once we have the two estimates (the one straight from the accelerometer and the one induced by the gyroscopic velocity on the old estimate,) the fusion algorithm takes a weighted sum of the two for reducing low-frequency drift and high-frequency noise. For this prototype, we mounted three Inertial Measurement Units (IMU, MPU6050) and took the average of three fusion results. Finally, the result is a 3-vector with a minimal component in the x-y plane whenever the robot is upright and in balance. The acceleration vector points out from the center of mass to the ground, in case most of the acceleration is caused by gravity, which is static. However, the magnitude and direction of the acceleration vectors (three vectors in this prototype) change as soon as the Unicycle moves, because of the dynamic component. For the task of balancing, the acceleration is assumed to be almost all static.
This change is due to the following commit: “Filtered IMU data by calculating the gravitational acceleration.” github.com/iamazadi/unicycle/commit/a2bbb7655138e27eca19c0d9a0f2c80cd81ed7f4
Get the user application of the source code: github.com/iamazadi/unicycle/blob/main/Core/Src/main.c
มุมมอง: 1

วีดีโอ

The Digital Mirror of the Unicycle Robot
มุมมอง 50814 ชั่วโมงที่ผ่านมา
In the real working environment of the robot we don’t have access to wired ports of the unicycle. Therefore, we made the capacity for wireless communication with the robot for acquiring data. But, some features of the data are geometric, which can be directly shown as well as being printed to the com terminal. Featuring the Euler angles includes roll, pitch and yaw. Each angle represents a rota...
Controller in Active Mode
มุมมอง 70216 ชั่วโมงที่ผ่านมา
The visualization of telemetry data. The features include: Roll, Pitch, Yaw and the time period of each controller cycle. 📡🛰️📺🤖🛞⚙️
The Visualization of Telemetry Data
มุมมอง 3816 ชั่วโมงที่ผ่านมา
Debugging the inertial telemetry data with computer graphics (Julia Makie and Porta.) Judging by the results, I think that the drift in the gyroscopic data makes the orientation information less reliable after about 15 seconds. The other thing that I noticed was the fact that the conversion from Euler angles to Quaternions is less than ideal. Because whenever the yaw angle is about pi radian, t...
Integrated Controller Run
มุมมอง 1K14 วันที่ผ่านมา
Modified of the source code of the unicycle, for programming a STM32 microcontroller instead of an AVR. github.com/iamazadi/unicycle The code is written 98.1% in the C programming language and 1.8% in Assembly. Supports serial via Bluetooth. Controls motors and transmits sensor data. This is how the unicycle behaves after sensor fusion. The sensor data includes the accelerometer orientation and...
A Proportional Controller with Inertial Feedback
มุมมอง 80721 วันที่ผ่านมา
The unicycle The integrated test is done before sensor fusion, with accelerometer data only, as a way to check controllers. Next, fuse the accelerometer data with gyroscope data for making the measurements robust to high frequency vibrations due to motion. Sensor fusion increases the time constant of the control system, but gives better results in the real environment. In this video, the contro...
Motor Mounts and Wheels at High RPM
มุมมอง 91228 วันที่ผ่านมา
Testing the motor mounts and the wheels. Now that the measurements have become precise we have no vibration and noise when the angular velocity of the motors is high. Preventing the wheels from vibrating at high speeds helps the unicycle robot to balance itself.
A Nonholonomic Behavior
มุมมอง 763หลายเดือนก่อน
[TOP VIEW] Made the body more rigid by adding two carbon fiber columns. The robot seems to balance better as a consequence. #0:00 Trial and Error #2:22 Balanced C. Fernandes, L. Gurvits, and Z. Li. Attitude control of a space plat-form manipulator system using internal motion. International Journal of Robotics Research, 1994. (to appear) G. Walsh and S. S. Sastry. On reorienting rigid linked bo...
The Goal of Balancing
มุมมอง 51หลายเดือนก่อน
Balancing the robot over short intervals is best done using machine learning. But, balancing the robot over longer intervals works better using nonholonomic motion planning. In other words, the control system must be robust over long windows of time, anti-fragile over short ones. Now that the goal of balancing on a wheel is accomplished, it’s time to add to the definition of the cost function t...
Conservation of Angular Momentum
มุมมอง 342 หลายเดือนก่อน
Conservation of Angular Momentum
Controllability Evaluation
มุมมอง 2.2K2 หลายเดือนก่อน
Controllability evaluation, given an approximate gain. The power supply seems to be sufficient for both motors. Testing the limits of the circuit board with approximate parameters to see if the microcontroller resets due to any supply shortages. This prototype, the motion laws will be written in the language of differential geometry. The hardware is ready for firmware. A Direct Current (DC) gea...
The Hardware 360 View
มุมมอง 8112 หลายเดือนก่อน
The hardware is ready for firmware. A Direct Current (DC) gear motor rotating at 352 Revolutions Per Minute (RPM) using 12 volts. Solves Newton-Euler dynamics, the load torque by the motor reaches 5.6 to 8.0 kilogram centimeters, the issue of the saturation of the reaction wheel. th-cam.com/video/rBjlrpOvGok/w-d-xo.htmlsi=HlIgHw9zPKpTfojV
The Hopf Fibration Explained
มุมมอง 1.8K3 หลายเดือนก่อน
Read a written version of this video in any order that you like: iamazadi.github.io/Porta.jl/dev/hopffibration.html The Hopf fibration is a fiber bundle with a two-dimensional sphere as the base space and circles as the fiber space. It is the geometrical shape that relates Einstein's spacetime to quantum fields. In this model, we visualize the Hopf fibration by first computing its points via a ...
Define Fiber Bundle
มุมมอง 4033 หลายเดือนก่อน
Read a written version of this video in any order that you like: iamazadi.github.io/Porta.jl/dev/hopffibration.html The Hopf Fibration Explained th-cam.com/video/qZNTPCMM19s/w-d-xo.html The Hopf fibration is a fiber bundle with a two-dimensional sphere as the base space and circles as the fiber space. It is the geometrical shape that relates Einstein's spacetime to quantum fields. In this model...
The Stereographic Projection
มุมมอง 373 หลายเดือนก่อน
The Stereographic Projection
The Symmetries of Hypersphere
มุมมอง 1443 หลายเดือนก่อน
The Symmetries of Hypersphere
Hopf Fibration
มุมมอง 1543 หลายเดือนก่อน
Hopf Fibration
Properties of Lorentz Transformations
มุมมอง 894 หลายเดือนก่อน
Properties of Lorentz Transformations
The Matrix Exponential of K3
มุมมอง 564 หลายเดือนก่อน
The Matrix Exponential of K3
The Push Along The K(2) Direction
มุมมอง 4444 หลายเดือนก่อน
The Push Along The K(2) Direction
Dead Reckoning With Connection One-Forms
มุมมอง 414 หลายเดือนก่อน
Dead Reckoning With Connection One-Forms
Planet Hopf (Alternative View)
มุมมอง 2575 หลายเดือนก่อน
Planet Hopf (Alternative View)
Parallel transport along integral curves in the Hopf bundle
มุมมอง 395 หลายเดือนก่อน
Parallel transport along integral curves in the Hopf bundle
The Canonical Connection One-Form vs. The Coordinate Connection One-Form
มุมมอง 555 หลายเดือนก่อน
The Canonical Connection One-Form vs. The Coordinate Connection One-Form
Of A Path: A Spherical Projection Followed by A Stereographic Projection
มุมมอง 525 หลายเดือนก่อน
Of A Path: A Spherical Projection Followed by A Stereographic Projection
Zero Holonomy Via A Non-Horizontal Path
มุมมอง 765 หลายเดือนก่อน
Zero Holonomy Via A Non-Horizontal Path
Holonomy (Integration along a path that yields 6π)
มุมมอง 935 หลายเดือนก่อน
Holonomy (Integration along a path that yields 6π)
Holonomy (Alternative Initialization)
มุมมอง 745 หลายเดือนก่อน
Holonomy (Alternative Initialization)
Holonomy
มุมมอง 825 หลายเดือนก่อน
Holonomy
Planet Hopf (dissection)
มุมมอง 955 หลายเดือนก่อน
Planet Hopf (dissection)

ความคิดเห็น

  • @lightningrocketcreates
    @lightningrocketcreates 4 วันที่ผ่านมา

    That's really cool. You should hook it up to some kind of plotter to show you the real-life orientation of the model on the computer, might be interesting.

  • @justinbarrett836
    @justinbarrett836 4 วันที่ผ่านมา

    Huh

  • @TytusG
    @TytusG 6 วันที่ผ่านมา

    works ok as long as your finger is on it

    • @iamazadi
      @iamazadi 6 วันที่ผ่านมา

      There should be a way to add the physical force that was exerted on the top of the robot to the control signal. Gathering data for a machine learning model is an objective.

  • @gabiold
    @gabiold 14 วันที่ผ่านมา

    It seems to me that the control loop of the top wheel is a bit lazy and sluggish. What others suggested, to add more inertia to the wheel could help bringing it back from a seriously tilted position, but keeping it in balance, it needs to finely and quickly react to miniscule angle deviations. I’d say, the dead band is too wide allowing too much tilt. Possibly the D term in the PID, but we can’t really see for sure as it either does not spin at all and falls then after a certain angle it tries with max. accel. and speed, but it’s too late then.

    • @iamazadi
      @iamazadi 14 วันที่ผ่านมา

      It makes sense because smoothing the tilt angle readings slows the reaction time and consequently widens the dead band.

  • @DollaKamalaSwalla
    @DollaKamalaSwalla 15 วันที่ผ่านมา

    I need a smoke and my 2 minutes and 40 seconds back after this video

  • @vaisakhkm783
    @vaisakhkm783 15 วันที่ผ่านมา

    Make the bottom wheel small and top wheel twice the size, and add few more nuts...

  • @raoufmagdy3661
    @raoufmagdy3661 15 วันที่ผ่านมา

    You have a lot of mechanical issues that make it harder for the controller to adjust the system stability, you can try a single flywheel first then you go for the second one, then you can apply sensor fusion technique later. try using better coupling system for motors and try motors with a well-lubricated gearbox.

  • @IvanV980
    @IvanV980 16 วันที่ผ่านมา

    You gotta adjust your PID values and add more mass on the top, good luck 🤙

  • @evina_lynx7096
    @evina_lynx7096 16 วันที่ผ่านมา

    I would ssy that you should bring more mass to upper wheel that it has more rotary inertia

  • @TheMemesofDestruction
    @TheMemesofDestruction 17 วันที่ผ่านมา

    Pretty cool! ^.^

  • @suta1150
    @suta1150 หลายเดือนก่อน

    when drunk and i need toilet

  • @VonnieKH
    @VonnieKH หลายเดือนก่อน

    They don’t keep the comments up long enough. I don’t read that fast.

  • @HelloWorld-lv4we
    @HelloWorld-lv4we หลายเดือนก่อน

    Beautiful

  • @ARBB1
    @ARBB1 หลายเดือนก่อน

    Great visualization

  • @AlexandreLyra-cm8ge
    @AlexandreLyra-cm8ge หลายเดือนก่อน

    very interessing

  • @HomoPraeteriens
    @HomoPraeteriens หลายเดือนก่อน

    Тень от руки сверху: "Это точно балансирует".🙈

    • @iamazadi
      @iamazadi หลายเดือนก่อน

      The Goal of Balancing is accomplished in this video: th-cam.com/video/sR8kfuUdOo8/w-d-xo.html

  • @arxiaomi9724
    @arxiaomi9724 หลายเดือนก่อน

    considering it been made by simple matrials this is a fantastic work great job

    • @iamazadi
      @iamazadi หลายเดือนก่อน

      Thanks

  • @mittiooouit3466
    @mittiooouit3466 หลายเดือนก่อน

    run! its alive

  • @ilisati
    @ilisati หลายเดือนก่อน

    Needs more struts!

    • @iamazadi
      @iamazadi หลายเดือนก่อน

      Why does it need more struts?

  • @unflexian
    @unflexian 2 หลายเดือนก่อน

    geometric algebra or topology?

    • @iamazadi
      @iamazadi หลายเดือนก่อน

      Both

  • @coffeeicecubes2419
    @coffeeicecubes2419 2 หลายเดือนก่อน

    very cool

  • @bogdanteodorescu5819
    @bogdanteodorescu5819 2 หลายเดือนก่อน

    Useless fast animation and no real explanation Waste time

    • @iamazadi
      @iamazadi 2 หลายเดือนก่อน

      The Hopf Fibration Explained (A Math Explainer) th-cam.com/video/qZNTPCMM19s/w-d-xo.html

  • @bigzigtv706
    @bigzigtv706 2 หลายเดือนก่อน

    So true

  • @TheMemesofDestruction
    @TheMemesofDestruction 2 หลายเดือนก่อน

    Pretty neat! ^.^

  • @scottmiller2591
    @scottmiller2591 3 หลายเดือนก่อน

    Almost all the links in the description are 404.

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      Fixed all of the broken links in the description. Now, you can visit the links again!

    • @scottmiller2591
      @scottmiller2591 3 หลายเดือนก่อน

      @@iamazadi All better now, thanks!

  • @fappingfoopa
    @fappingfoopa 3 หลายเดือนก่อน

    Ah yes, I was just wondering

  • @imantidli1933
    @imantidli1933 3 หลายเดือนก่อน

    please i need links for books to bring to the subject

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      Try to find the books on the genesis library: libgen.is

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      Fixed all of the broken links in the description. Now, you can visit the links again!

  • @madscience6283
    @madscience6283 3 หลายเดือนก่อน

    Audio audio audio. Intolerable, please fix

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      Noted. Thanks for the feedback.

  • @olegsuptelia1401
    @olegsuptelia1401 3 หลายเดือนก่อน

    thank you! keep it up

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      You’re welcome!

  • @petterlarsson7257
    @petterlarsson7257 3 หลายเดือนก่อน

    what

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      The Hopf Fibration Explained th-cam.com/video/qZNTPCMM19s/w-d-xo.html

  • @superconductingfieldtheory
    @superconductingfieldtheory 3 หลายเดือนก่อน

    Weird spinor

  • @TheMemesofDestruction
    @TheMemesofDestruction 3 หลายเดือนก่อน

    Great Stuff! ^.^

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      Thanks!🙏

  • @albertodesantossierra9586
    @albertodesantossierra9586 3 หลายเดือนก่อน

    What was used to build this impressive visual?

    • @iamazadi
      @iamazadi 3 หลายเดือนก่อน

      Two software packages: Makie.jl and Porta.jl. Source code: github.com/iamazadi/Porta.jl

  • @stupidsucks
    @stupidsucks 4 หลายเดือนก่อน

    keep living

  • @TheMemesofDestruction
    @TheMemesofDestruction 4 หลายเดือนก่อน

    I smell inversion. ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 4 หลายเดือนก่อน

    🔥 ^.^

  • @anthonycosta5266
    @anthonycosta5266 4 หลายเดือนก่อน

    Animation is too fast.

  • @TheMemesofDestruction
    @TheMemesofDestruction 4 หลายเดือนก่อน

    Now that’s what I’m talking about! ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    I recently learned that the inversion of a Hypersphere is a Torus. ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    Great Job!

    • @iamazadi
      @iamazadi 5 หลายเดือนก่อน

      Thanks!

    • @VolumetricTerrain-hz7ci
      @VolumetricTerrain-hz7ci 4 หลายเดือนก่อน

      Yes, absolutely AWESOME! It's sad nobody give video's like your a chance!

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    I believe Professor Wolfram may refer to this as, ‘an Artifact from the Future.’ ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    To live in a time that we may begin to intuit what’s going on… Fantastic!

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    The vector arrows really help! ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    This as absolutely Fantastic Mohammad! I would love to chat with you about this if that was something you were open too? ^.^

    • @iamazadi
      @iamazadi 5 หลายเดือนก่อน

      Thank you! See if you can find somebody to talk to on the discord server.

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    This is really helping me visualize the transformation! Thank you. ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    That hopf is coming to life! ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    Love the different perspectives! ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    0:38 - I think I see an inversion. ^.^

  • @TheMemesofDestruction
    @TheMemesofDestruction 5 หลายเดือนก่อน

    Love it! Is the code available or is it proprietary?

    • @iamazadi
      @iamazadi 5 หลายเดือนก่อน

      Thank you! The code is open source. Stay tuned for a documentation and compatibility guide. github.com/iamazadi/Porta.jl/blob/master/models/gamma3.jl

    • @TheMemesofDestruction
      @TheMemesofDestruction 5 หลายเดือนก่อน

      @@iamazadi Thank you! ^.^

  • @bobarchitect7139
    @bobarchitect7139 5 หลายเดือนก่อน

    what is this? i dont understand a thing

    • @iamazadi
      @iamazadi 5 หลายเดือนก่อน

      It’s a tool for doing calculus. It’s actually the main tool for calculus. We’re just highlighting the parts that they omitted when they put calculus in school textbooks. See chapter ten, section three www.amazon.com/Road-Reality-Complete-Guide-Universe/dp/0679776311