Is there any other sensors in android beside those? - android-sensors

so far, i've found below sensors in android devices. I'm going to develop an app putting information about all sensors available in device. For that i need to know how many sensors an android device can have beside those are given in below?
Gyroscope Sensor
Light Sensor
Orientation Sensor
Proximity Sensor
Temperature Sensor
Accelerometer Sensor
Sound
Magnetic Field
Pressure
Any reference link, helpful comment will be appreciated.

When there is no gyroscope on the device, and only when there is no gyroscope, you may implement the rotation vector, linear acceleration and gravity sensors without using the gyroscope.
https://source.android.com/devices/sensors/sensor-types.html

Barometer sensor - basically pressure for weather forecast,
Step detecting sensor
and some orientation sensors with maximum 6-axis compared to the traditional 3-axis ones

According to Google site there is total 13 sensors:
ACCELEROMETER : Measures the acceleration force
AMBIENT_TEMPERATURE : Measures the ambient room temperature
GRAVITY : Measures the force of gravity
GYROSCOPE : Measures a device's rate of rotation in rad/s around each of the three physical axes (x, y, and z).
LIGHT : Measures the ambient light level
LINEAR_ACCELERATION : Measures the acceleration force
MAGNETIC_FIELD : Measures the ambient geomagnetic field
ORIENTATION : Determining device position.
PRESSURE : Monitoring air pressure changes.
PROXIMITY : Phone position during a call.
RELATIVE HUMIDITY : Measures the relative ambient humidity in percent (%).
ROTATION_VECTOR : Motion detection and rotation detection.
TEMPERATURE : Monitoring temperatures.
For More information visit :
http://developer.android.com/guide/topics/sensors/sensors_overview.html

Related

BNO055 ACCELEROMETER READINGS

I am using BNO055 for tracking position and velocity. I am getting the accelerometer readings from the sensor but the readings are not precise. Though the accelerometer is calibrated I am getting some disturbance in readings. I just placed the sensor on table but it accumulating some values. I am attaching some of my readings so you can check it out.
I am very glad if someone help me. accelerometer readings
The readings look rather precise to me. The fluctuations are in the hundredths of a m/s^2. And yes that might add up if you plan on calculating the speed or position of the device but you might add some noise filtering to cancel it out. Check here for a start:
Accelerometer Low Pass Filtering

Get position from accelerometer

I am working in a monocular 3D Mapping project, and I need every time both position and rotation (angle).
To filter Gyroscope Data, I decided to use the "compass" and set 0 value to the angle if it's north.
But to get the position, I will need to double integrate the accelerometer value with a small sampling step (1ms) and 7 values mean filter.
I think this will make position more accurate. But does someone have an idea about the error range ? for example, in 10 meters, How much the error will be.
And does anyone have a better idea?
The sensors are from STM32F3 Discovery Board
Thanks
The STM32F3 has two sensors you'd be using:
LSM303DLHC accelerometer and magnetometer
L3GD20 3-axis digital gyroscope.
The sensor accuracy should appear somewhere in the datasheet. Since you'll be using several sensors, you'll have to calculate the total error over the time your measuring. Note, the error won't be a single number like 10 meters because it will accumulate over time. If you had a GPS or some other way of determining your position you'd be able to limit your accumulated error.
What you're doing sounds like an Inertial Measurement Unit. If you haven't already, I'd recommend reading up on that and also Dead Reckoning.

Gravity removal algorithms from accelerometer in IMU units under acceleration? [duplicate]

I have a small remote controlled car going on the room floor. For simplicity let us assume it is moving along say x-axis. Now, the floor seems flat but there are very minute uneven bumps in every surface. So whenever the car is not exactly flat (as it was at starting position) or in other words whenever the car has even slightest of tilt then,
Total Acceleration obtained from accelerometer = Linear Acceleration + Acceleration due to tilt
My question is how to remove the acceleration due to tilt so that I get only linear acceleration? Can I somehow use gyroscope to do that?
I have implemented sensor fusion for the Shimmer platform based on this manuscript, it's basically a tutorial:
Direction Cosine Matrix IMU: Theory
This manuscript pretty much answers your question.
These have also been a big help:
An introduction to inertial navigation
An Introduction to the Kalman Filter
Pedestrian Localisation for Indoor Environments
Combine Gyroscope and Accelerometer Data
Just promise me you won't try double integrating the linear acceleration because it won't work and I suspect that it is what you are trying to do.

How does my iPhone get its altitude?

I made a simple app which displays the altitude according to the GPS position on iPhone.
How is the altitude obtained?
Does it get the altitude of the land at the coordinates I am or does it get the actual altitude? (I tried the same application in the same building; once at ground floor and once on the third floor but the same altitude is displayed)
Is it possible to obtain a different altitude on different floors? (Like my android phone has a barometer sensor and I calculate the elevation by the atmospheric pressure; but none of the iPhones has a barometer sensor)
The altitude as read by the gps receiver depends on the positions of the satellites over the horizon, relative to each other. It is possible then for the altitude reading to be unreliable when either there are not enough satellites in the sky or they are too close together. This then depends on the time of day, or date.
The signals from the satellites are very weak once they have reached the Earth's surface, and may not be received correctly inside buildings, or where there are other tall buildings nearby, such as a city centre like Manhattan.
Barometer readings will vary according to the weather and so an absolute reading can't be applied to a specific floor. However relative readings may be reliable enough for floor to floor changes, e.g. a lower value means going up.
Like any other device that uses GPS to calculate altitude, it's measuring the user's distance from the center of the satellites' orbits.
Your smartphone uses GPS technology to calculate your altitude depending on where you are. It measures how far away you are from the satilites which is calculating this information.
Note that newer IPhones (>= 6) have a barometer sensor which in my experience is significantly more accurate than GPS. With a barometers the accuracy appears to be within a foot whereas with GPS it would bounce around by 3-4 meters even when standing still.
http://www.iphonetricks.org/iphone-6-barometer-sensor-features/

How to obtain only linear acceleration from accelerometer using gyroscope?

I have a small remote controlled car going on the room floor. For simplicity let us assume it is moving along say x-axis. Now, the floor seems flat but there are very minute uneven bumps in every surface. So whenever the car is not exactly flat (as it was at starting position) or in other words whenever the car has even slightest of tilt then,
Total Acceleration obtained from accelerometer = Linear Acceleration + Acceleration due to tilt
My question is how to remove the acceleration due to tilt so that I get only linear acceleration? Can I somehow use gyroscope to do that?
I have implemented sensor fusion for the Shimmer platform based on this manuscript, it's basically a tutorial:
Direction Cosine Matrix IMU: Theory
This manuscript pretty much answers your question.
These have also been a big help:
An introduction to inertial navigation
An Introduction to the Kalman Filter
Pedestrian Localisation for Indoor Environments
Combine Gyroscope and Accelerometer Data
Just promise me you won't try double integrating the linear acceleration because it won't work and I suspect that it is what you are trying to do.