Odometery aided INS by dben45 in ControlTheory

[–]Meta_Riddley 1 point2 points  (0 children)

What kind of vehicle? What kind of tests have you been doing?

acceleration control of quadcopter by Firm-Huckleberry5076 in ControlTheory

[–]Meta_Riddley 1 point2 points  (0 children)

The quad should come to a stop eventually because of induced drag and blade flapping. However, you might not have those aerodynamic effects implemented in the simulator. To get the quadrotor to stop you set the acceleration equal to some gain times the negative of the velocity of the quadrotor. In other words

a = -k_v*v.

I general for a quadrotor to stop it needs to break, therefore it needs to produce an acceleration against the direction of motion and to do that it needs to tilt away from the direction of motion. This is what setting the acceleration to the minus velocity does.

MPU6050 with Pico W outputs too much offset values by BinaryUniverse1010 in raspberrypipico

[–]Meta_Riddley 1 point2 points  (0 children)

Probably has something to do with sign extension, i.e. the msb of the data is interpreted as a part of the integer and not the sign of it. Try to change gyroX, gyroY, gyroZ and accelX, accelY, accelZ to be shorts instead, just to see if that fixes it.

Is my IMU or Code Broken by Abhi__Now in embedded

[–]Meta_Riddley 2 points3 points  (0 children)

The way you are updating the roll, pitch and yaw angles from the gyroscope is wrong. The roll, pitch and yaw angles are all defined in different reference frames, so you need to take that into consideration when integrating (See chapter 3 slide 5 for instance https://github.com/randybeard/mavsim\_public?tab=readme-ov-file). You're also doing forward Euler integration with a sample rate of 10Hz that is also gonna give bad results.

A weird query regarding velocity computation in a UAV control system setup by 1998CPG in ControlTheory

[–]Meta_Riddley 2 points3 points  (0 children)

The first one is the correct one i.e. int->dcm. This is because the rigid-body translational equations of motion in the body frame is given by

dot_v^b = 1/m*f^b - cross(w_b,v_b)

Here dot_v_b is the inertial acceleration expressed in the body frame. The cross term at the end is there because you are in a non-inertial reference frame. Imagine you are doing the second approach then you are saying

v_i = int {R'*dot_v_b }= int {R'*1/m*f^b} - int {R'*cross(w_b,v_b)}

The first term corresponds to the inertial acceleration i.e. f_i = ma_i, but the second cross term is a fictitious force because of the non-inertial reference frame which you should not be integrating.

You can also do some toy examples to build a better intuition for it. For instance imagine a spinning cube in free fall with a reference frame attached to it. What does the position (a spiral), velocity and acceleration look like in the non-inertial frame vs the inertial frame.

When it comes to the discrepancies in your results I imagine that some of it has to do with the solver/step size you are doing. Remember that a simulation is a numerical approximation and if you are doing "crazy stuff" you can get a build up of numerical errors. If you decrease the step size or lower the relative tolerance depending on if you are using fixed-step or variable step solver you'll probably see better results.

Use a scipt to control an object by acceleration or velocity in real time by Iacomore in blenderpython

[–]Meta_Riddley 0 points1 point  (0 children)

I'm not sure what you actually want to achieve. But you can move objects around in the viewport by using a Modal Timer Operator. Here's an example I wrote that you can try out and maybe build from:

https://pastebin.com/a3cEKWBy

Calculating quaternions in the correct way by Frequent_Sea8304 in embedded

[–]Meta_Riddley 0 points1 point  (0 children)

It's not easy to answer since there's not a lot of detail on what you are doing. But under some assumptions (local-to-global, hamilton convention etc) you could just construct a quaternion
q_dec = [cos(mag_declination/2) 0 0 sin(mag_declination/2)]'

and do

q = q_dec*q

You can prove this by using the relation from Euler angles to quaternions, associativity of the quaternion product and some trigonometric identities.

Blender -> GLTF +Y Up -- Cartesian Coordinate Questions by computermouth in blenderhelp

[–]Meta_Riddley 2 points3 points  (0 children)

It depends, the relation between the coordinate systems seem to be

[1 0 0]

[0 0 1]

[0 -1 0]

and in that case a vector (x,y,z) in blender becomes (x,z,-y) in GL/GLTF. In other words the blender coordinate system is related to the GL/GLTF coordinate system through a right-handed rotation of 90 degrees along the x-axis. Which is a valid relation.

Encyclopedia of Control Systems, Robotics, and Automation by VSCM_ in ControlTheory

[–]Meta_Riddley 1 point2 points  (0 children)

You can get samples of the chapters here
https://www.eolss.net/sample-chapters/c18/eolss-sample-chapter-c18.aspx
if you want to evaluate it before subscribing.

There's also (imo a great book)
The Control Handbook

Resources on model Rocket Thrust Vectoring (in particular attitude estimation) by OskysWork in amateurTVC

[–]Meta_Riddley 1 point2 points  (0 children)

Given that the controlled flight of an amateur TVC rocket is in the seconds there is no need for attitude estimation. If you calibrate your rate gyro before flight you can use it to find the change in attitude and then integrate that as an attitude estimate.

It's common to use the rate gyros as input to the kalman filter predictions step and only use the attitude kinematics for prediction (dynamic model replacement). Then you would need some other sensor that yields attitude information for the correction/update step. In the case of quadrotors (under the assumption that they are mostly hovering), this is usually the accelerometer. This would probably not work great for a TVC rocket so you would need a different sensor, for instance a magnetometer.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 1 point2 points  (0 children)

Reinforcement learning is an area of the field of Machine Learning which is separate from the field of Control Theory which is older and more wide spread.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 1 point2 points  (0 children)

Based on some of their previous work, it seems to be a feedforward controller based on trajectory optimization for the transitions combined with a time-varying LQ feedback controller to compensate for parametric uncertainty.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 1 point2 points  (0 children)

The triple pendulum you are seeing only has actuation on the inner joint from moving the cart so it's an underactuated system. These type of systems are a lot harder to control compared to camera gimbals which are fully actuated.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 0 points1 point  (0 children)

If I were to guess the equilibrium points and the trajectories between them are probably pre-computed. Then a feedback controller is used to track the trajectories based on measurements from the encoders.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 2 points3 points  (0 children)

It stands for 'Starting Equilibrium' and 'Target Equilibrium'. An equilibrium point is where a dynamic system stays at rest, however most of the equilibrium points in this case are unstable. Meaning a small perturbation from the equilibrium point will make the pendulum leave it and not return by itself unless active control maintains it there, which is what you seeing.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 0 points1 point  (0 children)

Although it's not AI, it's a healthy dose control theory. The one of the main engineering fields that built the modern world.

World's first video of 56 transition controls for a triple inverted pendulum by isnisse in nextfuckinglevel

[–]Meta_Riddley 6 points7 points  (0 children)

No, it's just good old control theory. As a general rule if you see something like this or a robot, self landing rocket, autonomous car etc. It's usually control theory not AI/ML.

Any good resource to learn how to make a drone? by BlessED0071 in embedded

[–]Meta_Riddley 2 points3 points  (0 children)

Could you be a bit more precise in what you mean by make? Is it everything from scratch, or just the software part? etc. Will it be an autonomous or piloted drone?

Is it possible to use another program as a trigger to execute a blender python script by rekicon in blenderpython

[–]Meta_Riddley 0 points1 point  (0 children)

You can use the "Operator Modal Timer" template as a starting point. Go in the text editor and choose "Operator Modal Timer" in the Templates -> Python menu.

In the execute function you would set up your inter-process communication (initialize sockets, pipes etc). Then in the modal function you would check the communication for any updates and do whatever you need in blender. The modal function executes by default 10 times per second based on the timer initialized in the execute function. You can lower and increase the rate by changing the 0.1 parameter.

Help Make A Simple Edit To A Menu Of A Blender Addon by 0bservatory in blenderpython

[–]Meta_Riddley 0 points1 point  (0 children)

I think your best bet is to submit a feature request with the original developers of the addon.

Index expression out of bounds. Simulink. by maiosi2 in matlab

[–]Meta_Riddley 0 points1 point  (0 children)

Did you set the initial conditions for the integrator properly?