Hot answers tagged

9

The two views are not contradictory; they apply to two different situations, which you are treating as a single one. Your personal experience about having a low center of mass applies to situations where there is a stable position -- a local minimum height for the center of mass. For example, if you have a vase on a shelf, the height of the vase's center ...


7

Yes. As @hauptmech mentioned, you can use your forward kinematics to get the center of mass of each link in the base frame. Then you can simply compute the weighted average of the masses and positions to get the overall center of mass. In other words: $$ M = \sum_{i=0}^n m_i $$ $$ \mathbf{P}_i^0 = pos( \mathbf{T}_i^0(\mathbf{q}) \mathbf{T}_{i_m}^i) $$ $...


5

I believe a little Googling and you will find several of the existing controller boards have open source. For example I made a small change to hobby kings KK board last week, compiled it and it was fine (look for firmware 1.5 in the files tab). I think openAero is also readily available. I sure would not try and start from scratch, but if you do, it is ...


5

A good choice for sensor fusion with the MPU6050 is a second order complementary filter, which I used for the orientation estimation in a project. The complementary filter is computational cheap and so a good choice for a microcontroller. A paper about the implementation you can find here: http://www.academia.edu/6261055/...


4

Just a hint from my extensive experience from self balancing robots: The most important aspect of a self balancing robot, is the actuator acceleration (torque) control. (...) the motors start rotating at the maximum speed (PWM: 255) and the robot still doesn't seem to recover back and just keeps running and then finally falls down in the direction in ...


4

If you want to have a good balancing, PID loop timing is very important. Standard Raspberry OS, like Raspbian can't guarantee you any precise timing, so once your loop period may be 10ms, once it can be 1s, resulting in a robot to fall. You can try to run some real time operating system on RPi, like FreeRTOS, that would have preemptive capabilities (so a ...


4

Let's start by defining some of the quantities in the equations you gave: $I$ Inertia of the pendulum about its center of gravity $M$ Mass of the cart $m$ Mass of the pendulum $l$ Distance between pendulum CG and its pivot $x$ Displacement of the cart $\theta$ Angle between a vertical axis and the pendulum $F$ Driving force acting on the cart $g$ ...


3

The gyroscope placement shouldn't make any difference since the rotation rate will be the same everywhere (assuming your robot is rigid enough). The accelerometer will pick up the rigid body acceleration of the robot as well as virtual accelerations from centripetal and coriolis effects, plus gravity of course. If you are intending on using the ...


3

Since you're trying to adjust the stability, you should make sure that your method of restraint isn't restricting the motion along that axis. So, the preferred way to restrain a quadcopter is by connecting strings to the center of the body, above and below. Here's an example: You could also disable the motors on one axis and run a rope under each of the ...


2

I asked for your code because I've found people tend to implement PID controllers incorrectly. It doesn't really matter what your gains are, if you're not calculating the error terms correctly and/or you're not applying the gains correctly, you'll probably never get the system to work right. That said, as Arlakt mentioned, your best bet for PID control ...


2

Lower centers of mass are more stable, but an inverted pendulum is inherently unstable; any perturbation will set it off. The height to center of mass depends on how much track you have available, your reaction time, how you're measuring displacement/force, etc. :EDIT: To elaborate on my statement above, say you're estimating pendulum position by the ...


2

First of all, well done on getting your robot to balance! If you’ve got this far the rest should be easy. A cascading PI loop (no D) works very well for this. You have an outer loop to control the speed and an inner loop to control the stability. In the outer PI loop, you set the speed and the necessary angle is calculated (hint: angular velocity can be ...


2

Particle filters (epecially in Monte Carlo localization) always seemed easy to intuitively understand to me. You basically simulate bunch of possible states of your robot, rank them with probabilities and occasionally you throw away the improbable ones. There's obviously more to it (and more math), but this should be enough to make a small working test.


2

There are basically two approaches to this problem: You can solve it mechanically or through sensors/programming, or some combination of both. jsotola's response offers several good mechanical approaches - clamping to the beam, lowering the center of gravity below the beam, etc. Exploit loopholes if you can; does the robot have to balance on top of the ...


2

Humanoid robots balance and motion planning are not trivial tasks. I believe you will learn a lot if you read about Zero Moment Point (ZMP). Basically, it is a specific point of contact between the robot's planar foot and the ground. What makes this point special is that the reaction forces at it produce zero torque on the robot body. If there is no reaction ...


2

I intend to find the center of mass of a quadruped robot and find the convex of the CoM inside the support polygon. I want to make a model of this, which is further going to help me develop stable gaits for the robot. The question seems wrong to me. What I think you want to do is, find the COM of the robot and convex support polygon of the robot based ...


1

I believe your intuition about using push-pull linear actuators is in the right direction: you would have a quite hard time to control such a structure. Traditionally, to deal with a cart-pole system you are supposed to deliver torque to the actuators with a certain level of accuracy. In this respect, BLDC motors are certainly the best way to go, especially ...


1

Use a couterweight. It could be a second arm, or a pendulum inside the robot body, or even two partially filled water resevoirs with a bi-directional pump in between. You could also clamp onto the beam. Or lower the center of gravity below the beam .... Or something more exotic (Cubli)


1

If you properly construct a Kalman filter with an 'x' input, then yes, it'll be better. Notably, the inertial sensor cannot give you an absolute value for x in any case, because you're (essentially) trying to double-integrate an accelerometer signal into a position, and that is exquisitely sensitive to noise in the accelerometer output. Some things you may ...


1

While this isn't a complete answer to your question, I want to leave some of my thoughts. I think you missed: Gravity itself, which points downward and is typically about 9.81 m/s² but might be different dependent on your location (you only measure 0 gravity when the robot is in free fall) Sensors are typically not aligned 100% to your x/y/z-axis (the chip ...


1

You only have to do simple calculations. We have done it with different hardware: first with a Lego mindstorm to prototype and then with a powerfull myRIO. The hardware used: Prototype: Balancing on four wheels Final device: Scalevo - The Stairclimbing Wheelchair - ETH Zurich


1

Well assuming you are using a filter(Kalman or Complementary) for the IMU, the PID tuning can be quite a cumbersome task. There is not a fixed end approach on tuning your PID. It took my Self-Balancing Robot three days to tune. But here is a general tuning strategy you could use: Set your Ki and Kd to zero and tune your Kp such that it is just able to ...


1

If an accelerometer is mounted along the pole axis of a pole-cart system with its axes oriented tangential and normal to the pole rotation, the components of acceleration can be found using rigid body kinematics to yield the following: Tangential: $S_x = \ddot{X} cos(\theta)-\alpha d-g sin(\theta)$, Normal: $S_y = -\ddot{X} sin(\theta)-\omega^2 d-g cos(\...


1

Look up an explanation of the parallel axis theorem for the mass moment of inertia. The two terms do represent similar things, but the axis of rotation is different. The term $I \ddot\theta$ comes from summing the moments about the centroid of the link, whereas the term $m l^2 \ddot \theta$ comes from summing the horizontal forces from the free body ...


1

Want to get orientations from accelerometers and gyroscopes? Use the Madgwick filter. From the paper, "Results indicate the filter achieves levels of accuracy exceeding that of the Kalman-based algorithm." As @CroCo mentioned, the Kalman filter is the optimal estimator.... for a linear system signal in the presence of zero-mean, Gaussian noise. ...


1

Check this website pratical approach to kalman filter it will give you a comprehensive description of kalman filter for a balancing robot (like yours) both theoritical and pratical (you have the code as well). And it runs on an Arduino !


1

Since your control input to the system acts only on the cart, then you can influence the pendulum angle only due to the coupling between the cart motion and the pendulum motion. If you were to put the pendulum CG at the pivot, there is no coupling between the cart and the pendulum, and the pendulum angle is no longer controllable. This can be verified by ...


1

You can answer this by considering the equations of motion of an inverted pendulum: $$\ddot{\Theta} = \frac{g}{l} \sin(\Theta)$$ If you agree that the easiest system to control is that which has the smallest $\ddot \Theta$ for you to compensate, then you have three options: Control the pendulum on the moon to lower $g$ Keep the pendulum close to $\Theta = ...


1

The natural frequency of your system is obvious from your graph. From that you can get a relationship between mass and stiffness (using a second order model). If you look at the growth in amplitude of your natural frequency (use a high-pass filter to remove the input signal) you should see the rate of growth in the characteristic frequency. That is ...


1

High acceleration from a static (balanced) configuration is only related to high torque. However, the maximum torque you can deliver decreases as function of speed. So, in the end it depends on both. In theory you could use a tiny motor with a huge gear ratio able to deliver a lot of torque, but it speeds up really quickly, meaning that it will fail coping ...


Only top voted, non community-wiki answers of a minimum length are eligible