Hot answers tagged

30

I'm posting this as an answer because it is the answer. You can't. As @BendingUnit22 mentions, you are attempting "open loop" control. Noise and variations will mean that your robot will never drive a perfectly straight line. The motors could have different winding resistances (different drive currents/torque), the wheels could be different sizes, the ...


15

Very short answer: 2 Sensors Regarding whether reading from sensors all in one node or each separately, you should ask yourself this question: Are the sensors meaningless without the other? This question asks if the sensors are tightly coupled or not. For example, say you have a sensor that is sensitive to temperature (and you need to compensate for it). ...


15

Torque is analogous to force for rotating systems, in that: $$ F = m a \\ \tau = I \alpha \\ $$ Where $\alpha$ is angular acceleration and $I$ is moment of inertia. $m$ and $a$ are mass and linear acceleration, respectively. So, in a way, a position controller, a velocity controller, and an acceleration (torque) controller are all different ...


14

I'm going to take a slightly different tack to Chuck. What is Torque Control? For me, Torque Control is about performing a move with an explicitly defined torque, rather considering torque just the means to the end of Position or Velocity control. Normally when you move a robot, you specify position and speed, with the robot allowed to use any and all ...


12

You're trying to find a formula to convert a given $(r, \theta)$ to left and right thrust percentages, where $r$ represents your throttle percentage. The naive implementation is to base your function on 100% throttle: At $0 ^{\circ}$, left and right thrust are equal to $r$ At $\pm45 ^{\circ}$, one side's thrust equals $r$ and the other side's equals 0 At $\...


11

The glaring issue I see at the moment is that you are forcing polarity on the I and D terms. In general, you are using a lot of sign checks, sign assignments, and conditional programming. None of that belongs in a PID controller. The entire controller should look like: pError = Input - Output; iError = iError + pError*dt; dError = (pError - previousError);...


11

In robotics, it all boils down to making the hardware(in essence, the actuator) perform the desired action. The basics of control systems tell us that the transfer function decides the relationship between the output and the input given the plant, i.e. system reacts to the latter. While purely control-based robots use the system model to define their input-...


10

Typically, a coordinate frame is placed at the robot center. The x-axis points forward, the y-axis points left, and the z-axis points up. Then, we measure angles with respect to the x-axis. So, a 90 degree angle would mean along the y-axis, as shown, So, "12" corresponds to 0 yaw, or straight forward. "9" corresponds to 90 degree yaw, or along the y-axis....


10

In the simple models and block diagrams of control systems you will find in basic textbooks, they will show you a single diagram with a feedback section which uses measurements of the target parameter and a feedforward section which does not use the target paremeter. Be ready to relax that definition when you get to the real world. Treat it as terminology ...


10

The barometer carried on the pixhawk has an altitude resolution of 10 cm. If that isn't enough, you could write a kalman filter that uses the accelerometer data in the prediction step and the ultrasonic sensor and/or the barometer in the correction step. But I don't see this solving your problem. An accurate measurement of altitude at 20hz should be plenty ...


9

If you're only using proportional force, then at some point it will be balanced by the force of gravity -- your error will converge on that balance, not zero. To compensate for the mass of the arm, you'll need to add an integral force term. This will increase over time to counterbalance the constant force of gravity. See also: this answer on the integral ...


9

The paper Controlling of Quadrotor UAV Using a Fuzzy System for Tuning the PID Gains in Hovering Mode by E. Abbasi, M. J. Mahjoob explains how to tune PID gains with fuzzy logic. You can find many papers about singleton tuning but this paper shows totally fuzzy control find PID gains with ziegler-nichols (or another technique) Create a fuzzy PID gain ...


9

It's called compliance. Gravity compensation by itself is not enough to achieve this, as well it is not mandatory. For example, if reducers with high reduction ratios are used, robot arm will be very stiff to move around. One way to make robotic arm compliant is to have torque sensors that can measure the differences in expected load (i.e. weight of the arm)...


9

Typically with a multiple input, multiple output (MIMO) system, a control engineer uses a state feedback controller. This style of controller leverages a state-space model of the system and generally takes the form: $$ \dot{x}=\mbox{A}x+\mbox{B}u \\ y = \mbox{C}x + \mbox{D}u \\ $$ where $x$ is a vector of states, $u$ is a vector of inputs, $y$ is a vector ...


9

First I would question your math that got you to the 12b sensor. If you have a $dy$ of 1 mm over an arm that is $r = 1$ m long, then $\sin(\theta) = dy/r \rightarrow \theta = \mbox{asin}(dy/r)$. If you make the small angle approximation $\sin{\theta} \approx \theta$, then $\theta \approx dy/r$. This is $\theta$ in radians, so you're looking at a full ...


8

Disclaimer: I have never done this myself, but only have seen a description of it being done through Georgia Tech's "Control of Mobile Robotics" on Coursera. My knowledge of controls is spotty, too. Thus... take this with a grain of salt. :) To keep the robot upright (and still), you're trying to stabilize (send to $0$) the state $x$, where: $$x=\left[\...


8

I think you've taken a good first step; you've divided the problem into a mobile platform (which has uncertainty of position and must navigate) and the arm (which has a fair certainty of position in real time, through encoders). I have looked at papers related to robots architecture [...] but I have yet to find information on how to have the low level ...


8

Embedded.com has moved my article yet again, but here is where it is now. This shows you both how to write a PID loop (figuring out how to do it in something other than floating point is left as an exercise to the reader) and how to tune it. PID Without a PhD The best way depends a lot on your abilities. The way to get the best tuning, assuming you're an ...


8

This sounds like a classic case for a PID controller. The "derivative" part of this controller will help prevent the arm from oscillating as you move to a new angle, and the "integral" part will help counteract the force of gravity acting on the arm.


8

The function $f$ comes from the equation of motion for the inverted pendulum problem (inverted pendulum alone, not including the motion of the wheeled platform). If you consider your figure but ignore the side-to-side motion of the cart, then the equilibrium of moments about the hinge is: $\sum M = m g l \sin \theta - b\frac{d \theta}{dt} $ Where $m$ is ...


8

Genetic algorithms are a machine learning technique to remove the need for a user to 'fine tune' a system, and instead allow a computer to figure out how to tune the system. The benefits of this approach are that it frees up the researchers/users time and often can lead to a system that is tuned better than what the researcher/user would have been able to ...


8

Industrial robots (e.g. Kuka, ABB, Fanuc) use a control cabinet which has the following main components: Drive amplifiers (controllers): The drive amplifiers are responsible for the closed loop control of the motors in the structure of the robot (and the external axes, if present). The number of drive amplifiers usually matches the number of motors. Their ...


8

Yes, a state matrix with zero rows and/or columns makes sense and is viable. It typically signify pure integrators in the system. In the example you give, $$ \dot{v} = -\frac{b}{m} v +\frac{1}{m} u $$ where $v$ is the speed, $u$ is the externally applied force, and $bv$ is some viscous damping force. Now if the viscous damping coefficient is zero (no ...


8

Models. If you want to get good at control engineering, get good at modeling. If you want to impress a controls professor, get good at modeling. Models are how you're going to do 90 percent of your job, regardless of the controller style you choose to implement, so get good at modeling! If you want to try building a PID controller, first build a model of ...


7

You'll have to determine yourself whether a motor controller shield is compatible and can be stacked on your existing shield. In some cases, you can use Arduino's SPI. In other cases, you'll need to check whether the pins that your shield uses would conflict with the pins needed by a motor controller.


7

These are just terms to describe the "layers" of control on the robot. The "joint level" means the position of each actuator (leg), and the "task level" means the current goal of the robot (like go forward, go east, go to location X, etc). This paragraph is about sensing. There are (apparently) position sensors in all of the leg joints, so the robot is ...


7

I would like to use P (proportional) controller for now. Just a proportional controller will never make your error stay at 0. Your system is not damped and a proportional controller acts like an undamped spring. Look at the controller equation that you wrote: τ=−K(θ−θd) and compare it to a spring equation: F=Kx or F=K(x1-x2) Your controller is acting ...


7

You should start by reading their academic papers: M. Muehlebach, G. Mohanarajah, and R. D'Andrea, Nonlinear Analysis and Control of a Reaction Wheel-based 3D Inverted Pendulum, in Proc. Conference on Decision and Control, CDC 2013 (Florence, Italy) M. Gajamohan, M. Muehlebach, T. Widmer, and R. D'Andrea, The Cubli: A Reaction Wheel-based 3D Inverted ...


7

A couple things, the first is that the controller does not really care what the "real" values are. Everything is relative, if the controller sees that it is sinking it will increase the thrust until it is not sinking. If it is tilting too far to the left it will decrease the right thrust and increase the left thrust. (Here is a good resource if you want to ...


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