On Tue, Jan 13, 2009 at 12:41 AM, pramod gurav <[email protected]> wrote: > On Sat, Jan 10, 2009 at 4:11 AM, Mathias Agopian > <[email protected]> wrote: >> >> On Fri, Jan 9, 2009 at 5:31 AM, Sean McNeil <[email protected]> wrote: >>> >>> What you are trying to do cannot be done. Accelerometers give you a >>> vector to GC whereas the G1 has a compass which gives you yaw/pitch/roll >>> to north. >> >> It is not too difficult to calculate yaw/pitch/roll from the >> geomagnetic vector and acceleration vector. >> >> You can find all the math in cupcake's SensorManger, see >> getRotationMatrix() and getOrientation(). >> >> >> Of course, with a device that only has an accelerometer, you cannot >> calculate "yaw", but only pitch and roll. >> >> Mathias >> >>> > Hi Mathias > I have seen a device file for compass in "system/core/init/devices.c" > in android sources. > Also I have read the ak8976 driver sources in android msm kernel sources. > I also could see a daemon called "akmd" in android. I guess by the > driver code that > this daemon is calibrating yax, pitch and roll from sensors' data and > again sending it > back to driver through a driver. > Where the sources of this daemon are?
This daemon is not part of Android's open-source distribution, it is owned by AKM. mathias >>> 伊泽 wrote: >>>> hi pramod gurav, >>>> >>>> I think we have the same problem,the lis302/lis331 sensor cannot provide >>>> yaw/pitch/roll data while we feel hard to emulate G1's compass feature. >>>> >>>> But I thought there would be some method to emulate that,,,we get the >>>> x/y/z >>>> and change them to yaw/pitch/roll through a model... >>>> >>>> hmm,,that's not easy,i think. >>>> >>>> thanks >>>> --wxc200 >>>> >>>> >>>> >>>> ============ >>>> 自由之精神,独立之人格 >>>> ============ >>>> Zsa Zsa Gabor - "I'm a great housekeeper. I get divorced. I keep the >>>> house." >>>> >>>> On Fri, Jan 9, 2009 at 6:59 PM, pramod gurav <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> On Fri, Jan 9, 2009 at 3:27 PM, 伊泽 <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> > hi >>>> > >>>> > why not port your driver to android? >>>> > That would not be too hard. G1 has a compass and >>>> > gravity accelerometer sensor,it can detect pitch/roll/rotation >>>> and motion. >>>> > Also Iphone ,Borqs and Openmoko has the LIS3XX chip as their sensor. >>>> > this is openmoko's: Accelerometer data retrieval >>>> > But lis3xx sensor is a gravity accelerometer sensor,it has >>>> > not function as G1's compass,when you put phone on the flat >>>> table ,it cannot >>>> > detect rotation. >>>> > >>>> > Ofcourse,you should choose your sensor depend on the app design. >>>> > >>>> > thanks >>>> > --wxc200 >>>> > >>>> > >>>> Hi I have ported the drivers according to android. >>>> The sensors on my h/w are ak8973(magnetic x,y,z) and lis302dl(acc >>>> x,y,z). >>>> They do not give the yaw, pitch roll. >>>> I could get the values on my android application. >>>> But cant get the yaw, pitch and roll. I was expecting that Android can >>>> calibrate >>>> these values as my h/w have no support. >>>> >>>> >>>> >>>> > ============ >>>> > 自由之精神,独立之人格 >>>> > ============ >>>> > Joan Crawford - "I, Joan Crawford, I believe in the dollar. >>>> Everything I >>>> > earn, I spend." >>>> > >>>> > On Fri, Jan 9, 2009 at 3:26 PM, Mathias Agopian >>>> <[email protected] <mailto:[email protected]>> >>>> > wrote: >>>> >> >>>> >> Hi, >>>> >> >>>> >> Android doesn't "require" yaw / pitch / roll per se. In theory, >>>> well >>>> >> written applications should check for the presence of these >>>> sensors. >>>> >> Unfortunately, in Android 1.0 there wasn't an easy way to >>>> integrate a >>>> >> new sensor h/w. >>>> >> >>>> >> I think it is more sane to target the "cupcake" release of Android, >>>> >> which a work in progress is available in the main git repository. >>>> >> >>>> >> Future (cupcake) applications will be able to use the SensorManager >>>> >> to calculate the yaw / pitch / roll from the acceleration and >>>> magnetic >>>> >> data (this is actually more precise than the data coming out of the >>>> >> driver!). Additionnaly, there is a HAL module to implement your >>>> sensor >>>> >> h/w which describes precisely what is expected from the higher >>>> layers >>>> >> (see sensors.h). >>>> >> >>>> >> A sensor h/w can expose yaw/pitch/roll if it wants to, but is not >>>> >> technically required; the framework will expose a "fake" >>>> >> yaw/pitch/roll sensors if one is not published by the sensor >>>> HAL and >>>> >> if Acceleration and Magnetic data are available. >>>> >> >>>> >> Note that the definition of the axis at the h/w level have changed >>>> >> between 1.0 and cupcake, so be sure to read carefully the >>>> >> documentation in sensors.h. >>>> >> >>>> >> >>>> >> Android doesn't do ANY calibration on its own. The drivers >>>> and/or HAL >>>> >> modules are expected to do this. >>>> >> >>>> >> >>>> >> In "theory", all you need to do is implement a sensor HAL module >>>> >> properly (as documented in sensors.h. pay extreme attention to the >>>> >> definition of the axis and units). Unfortunately, in the >>>> current git >>>> >> repository there are no sample code of a sensor HAL module, which >>>> >> makes this task more difficult; however we will fix this >>>> problem soon >>>> >> by including the G1 HAL module source code, stay tuned. >>>> >> >>>> >> I hope this helps. >>>> >> >>>> >> Mathias >>>> >> >>>> >> >>>> >> On Thu, Jan 8, 2009 at 9:45 PM, pramod gurav >>>> <[email protected] <mailto:[email protected]>> >>>> >> wrote: >>>> >> > >>>> >> > Hi All, >>>> >> > I am trying to integrate my compass and accelerometer sensors >>>> into >>>> >> > android. >>>> >> > These are two different sensors which support only providing >>>> magnetic >>>> >> > x, y, z and >>>> >> > acceleration in x, y and z direction. As I gone through the >>>> HAL layer >>>> >> > of android I >>>> >> > could know that android expects yaw, pitch, row also from the >>>> under >>>> >> > lying driver. >>>> >> > I just wanted to conform this as the sensors we are using >>>> does not >>>> >> > give any values >>>> >> > other than above mentioned. >>>> >> > I would also like to know whether android does any >>>> calibration on its >>>> >> > own to get these >>>> >> > values in case these are not supported by hardware. >>>> >> > Please let me know if I need to provide more details regarding my >>>> >> > sensors. >>>> >> > >>>> >> > >>>> >> > -- >>>> >> > Best Regards >>>> >> > Pramod >>>> >> > >>>> >> > > >>>> >> > >>>> >> >>>> >> >>>> > >>>> > >>>> > > >>>> > >>>> >>>> >>>> >>>> -- >>>> Best Regards >>>> Pramod >>>> >>>> >>>> >>>> >>>> > >>> >>> >>> > >>> >> >> > >> > > > > -- > Best Regards > Pramod > > > > --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [email protected] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---
