6

gyroscopes do not measure [dRoll ,...] they measure body rates. These are not the same things. There is a transformation matrix ( that I do not have on hand) that relates body rates to euler rates. The euler rates are then integrated to get the short term change in orientation. -- relation -- this is the relation between the measured body rates from the ...


6

There are lots of ways to solve this problem, which falls into the category of Control Engineering. There are two standard approaches: Classical Control: The control command has to be proportional to a linear combination of the error, the rate of change of the error, and the integral over time of the error, a.k.a. a PID controller. This approach ...


5

Most "meters" of all varieties include up to three degrees of freedom simply to observe all three dimensions of reality we find ourselves in. That said, every object in our three space has three additional dimensions of rotation. Therefore an unconstrained object is typically said to have six degrees of freedom. I had to search nine to understand. ...


4

If your object $O$ has a different orientation from your global frame $S$, and you know what that difference in orientation is, you can create a 4x4 transform matrix between the two: $$ T = \left[ \begin{array}{cc} R & s \\ 0 & 1 \end{array} \right] $$ where $R$ is the 3x3 rotation matrix, $s$ is the 3x1 translation vector, $0$ is a 1x3 row of ...


4

There are quite a few things wrong here. I'll split them into two sections: technical errors, and coding warnings. Technical Errors: You are not calculating your angles from accelerometer readings correctly. Consider the arguments in general - they are the normalized accelerometer readings on each axis. You then take the inverse cosine of these. So, if ...


4

The device you describe is known as a Control Moment Gyroscope (CMG). These devices are mostly used for attitude control in spacecraft, but are also commercially available.


3

First you need to integrate the output from the gyro to get the actual X, Y and Z angles. angleX = gyroAngleX + gyroInputX angleY = gyroAngleY + gyroInputY However this value will drift over time so you will need to use a complementary filter or kalman filter. Personally, I would recommend a complementary filter because it is much simpler to implement. ...


3

Look into a complementary filter. It isn't the correct way to go out this but it will give you usable data for attitudes around level. It's also worth mentioning that you will not be able to track yaw. There is no way to account for bias/noise with the two sensors you've listed. complementary filter: http://www.pieter-jan.com/node/11


3

This is really simple. First of all, you need to understand how the sensor works. In other words, you need understand whether the measurements is coming from linear or nonlinear model. Second, what is the type of the sensor's noise? CASE STUDY: Let's say you want to simulate DC Voltemeter to measure a battery's voltage of 5 Volt. In an ideal case, the ...


3

To apply Kalman filter successfully, you need two requirements namely the system must be linear (i.e. both the motion and observation models) and the noise to be Gaussian with zero mean and some variance besides the models must be specified accurately. Kalman filter is a time domain recursive filter. Meeting these requirements, Kalman filter is one of the ...


3

I went through the header files of the 12cdev lib and I figured it out. you have to first add the line VectorInt16 gyro; to your motion variables, then you add the line mpu.dmpGetGyro(&gyro, fifoBuffer); to your outputs.


3

This is just basic trigonometry; you'll covert your world-relative calculations of roll and pitch ($\phi$ and $\theta$) into vehicle-relative values, based on yaw ($\psi$). Just so we're on the same page, I'm assuming measurements like the following, with roll, pitch, and yaw being zero when levelly flying North: $$\phi_{vehicle} = \phi_{world}\cos(\psi) - ...


3

You gave the part number and protocol, but Can you provide a schematic for how this is installed in a circuit? Are you using the module or an individual chip? Is this all soldered together or is it connected on a breadboard? Is this laying on a table or similar or is it actually in a quadcopter body? Are the quadcopter motors running? What sampling rate ...


3

Calibration procedures for magnetometers exist, to compensate for soft iron (nearby ferromagnetic objects) and hard iron (nearby magnetic fields) offsets, which skew the measurements. However, these procedures usually map a static disturbance correction and apply it to all new measurements. On the contrary, your environment changes from one end of the tube ...


3

The theory that describes what you are looking for is call Control Theory. Search for the Nonlinear Systems textbook by Hassan Khalil for an excellent overview of the material--the inverted pendulum problem is addressed explicitly. To theoretically stabilize the inverted pendulum on the cart, a model of the dynamics of the system are needed and can easily ...


3

The problem is that you can't apply path planning until you know where the robot is in the global coordinate frame. There are many localization techniques, and each has its pros/cons; I have used Particle Filtering for a very similar localization task. Extensive coverage of particle filtering is given by Sebastian Thrun in his book Probabilistic Robotics--...


3

A gimbal system will not replace an accelerometer. I assume by gimbal system you mean something like a Gyroscope, i.e. a device that has a fixed orientation allowing you to measure your orientation relative to it. A gyroscope can give you information on orientation and possibly angular velocity. An accelerometer gives you information on acceleration/gravity....


3

You need the transformation from the car to the IMU. You can get this by recording the IMU published attitude with the car in known orientations. You should be able to construct the IMU to car transformation by grabbing the IMU orientation while the car is flat, pitched up a bit (30 deg would should enough), and rolled (again, 30 deg should be enough). ...


3

1) An inertial frame is one in which a free particle travels in a straight line at constant speed, or is at rest. Practically speaking, you usually check if a frame is inertial or not by characterizing its motion w.r.t a reference inertial frame: all inertial frames are in a state of constant, rectilinear motion w.r.t one another. In the context of visual-...


3

As Ben noticed, you may want to elaborate on your question, but in general data collection in ROS is performed using tools from the rosbag package. As you'll find when you read the documentation, data (either from a simulation or the real world) can be recorded during a session, but not after it has already finished. Recorded data can be replayed or ...


2

An IMU as any sensor is not perfect and it is affected by errors. In IMUs case there are some accelerometers and gyros. They should be orthogonal each other but for construction constraints they can't really be. Expensive IMUs come with a calibration matrix which is "personal" for each device, and here is why of the extra costs. So someone should calibrate ...


2

I believe the term you are looking for is 'Cross sensitivity'. This term describes the effect that motion in one axis has on the measured motion of other orthogonal axes in accelerometers or gyroscopes Cross Sensitivity is normally stated by the manufacturer of the sensor and (depending on the quality/type of the sensor) is typically 1-5%. So, for example, ...


2

Dead reckoning is not a measurement, it's a form of estimation. It is by definition inaccurate, and accumulates error over time. We use it when more precise forms of position measurement aren't available (because it's better than nothing) and only to the extent that the accumulated error stays below a desired bound. In other words: after your error ...


2

Here is a useful thesis that might help: http://dspace.mit.edu/bitstream/handle/1721.1/69500/775672333.pdf And this paper discusses some of the control problems, including the drift compensation problem that you're having: http://www.raysforexcellence.se/wp-content/uploads/2013/01/Dennis-Jin-Development-of-a-stable-control-system-for-a-segway.pdf As a kind ...


2

Here's a pretty good overview of what holmeski is saying, and using multiple sensors in general for different applications. FWIW DARPA is, and has been looking into inertial sensors with enough precision to get useful positional tracking. It's called "Micro-PNT" for "position navigation and timing" and the idea is to not need a GPS. Also, here's some more ...


2

Look into nonlinear filters, particularly the unscented kalman filter (ukf). Using a ukf to fuse the data from a gyroscope and accelerometer will allow you to estimate orientation. However, these two sensors alone will not be capable of estimating position. You will need some sort of sensor that measures distance or position. For information on the ukf, ...


2

Assuming the angular velocity is constant (i.e. $\dot{\theta}_{k+1} = \dot{\theta}_{k}$) It seems to me the state vector should look like this $$ \underbrace{ \begin{bmatrix} \theta_{k+1} \\ \dot{\theta}_{k+1} \end{bmatrix}}_{\textbf{x}_{k+1}} = \underbrace{ \begin{bmatrix} 1 & \Delta t \\ 0 & 1 \end{bmatrix} }_{F} \begin{bmatrix} \theta_{k} \\ \...


2

The smaller the range, the more sensitive the device will be. So, in that sense, a smaller range is better. However, the downside of a smaller range is that movement of the robot will be more likely to exceed the range of the sensor. You should select the smallest range which you're sure will never be exceeded by normal operation of your robot. Or, the ...


2

$1^\circ/s$ does not seem to be very catastrophic. The noise seems quite low. More interesting is if your euler angles are stable and drift-free. Then you can control the pitch and roll error based on these estimates. As far as I remember the MPU6050 already does the filtering of gyros and accelerometers for you.


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