블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
  • total
  • today
  • yesterday

Category

2009. 7. 21. 16:16 Computer Vision
임현, 이영삼 (인하대 전기공학부)
이동로봇의 동시간 위치인식 및 지도작성(SLAM)
제어 로봇 시스템 학회지 제15권 제2호 (2009년 6월)
from kyu


> definition
mapping: 환경을 인식가능한 정보로 변환하고
localization: 이로부터 자기 위치를 추정하는 것

> issues
- uncertainty <= sensor
- data association (데이터 조합): 차원이 높은 센서 정보로부터 2-3차원 정도의 정보를 추려내어 이를 지속적으로 - 대응시키는 것
- 관찰된 특징점 자료들을 효율적으로 관리하는 방법


> localization (위치인식)
: 그 위치가 미리 알려진 랜드마크를 관찰한 정보를 토대로 자신의 위치를 추정하는 것
: 초기치 x0와 k-1시점까지의 제어 입력, 관측벡터와 사전에 위치가 알려진 랜드마크를 통하여 매 k시점마다 로봇의 위치를 추정하는 것
- 로봇의 위치추정의 불확실성은 센서의 오차로부터 기인함.

> mapping (지도작성)
: 기준점과 상대좌표로 관찰된 결과를 누적하여 로봇이 위치한 환경을 모델링하는 것
: 위치와 관측정보 그리고 제어입력으로부터 랜드마크 집합을 추정하는 것
- 지도의 부정확성은 센서의 오차로부터 기인함.

> Simultaneous Localization and Mapping (SLAM, 동시간 위치인식 및 지도작성)
: 위치한 환경 내에서 로봇의 위치를 추정하는 것
: 랜드마크 관측벡터와 초기값 그리고 적용된 모든 제어입력이 주어진 상태에서 랜드마크의 위치와 k시점에서의 로봇 상태벡터 xk의 결합확률
- 재귀적 방법 + Bayes 정리
- observation model (관측 모델) + motion model (상태 공간 모델, 로봇의 움직임 모델)
- motion model은 상태 천이가 Markov 과정임을 의미함. (현재 상태는 오직 이전 상태와 입력 벡터로서 기술되고, 랜드마크 집합과 관측에 독립임.)
- prediction (time-update) + correction (measurement-update)
- 불확실성은 로봇 주행거리계와 센서 오차로부터 유발됨.


conditional Bayes rule
http://en.wikipedia.org/wiki/Bayes%27_theorem
 P(A|B \cap C) = \frac{P(A \cap B \cap C)}{P(B \cap C)} = \frac{P(B|A \cap C) \, P(A|C) \, P(C)}{P(C) \, P(B|C)} = \frac{P(B|A \cap C) \, P(A|C)}{P(B|C)}\,.

Markov process

total probability theorem: "law of alternatives"
http://en.wikipedia.org/wiki/Total_probability_theorem
\Pr(A)=\sum_{n} \Pr(A\cap B_n)\,
\Pr(A)=\sum_{n} \Pr(A\mid B_n)\Pr(B_n).\,

> Extended Kalman filter (EKF, 확장 칼만 필터)


http://en.wikipedia.org/wiki/Ground_truth

posted by maetel
2009. 3. 31. 15:22 Computer Vision

VIP paper-reading
2009-03-31 @GA606


by adrift  



Robot Sensor Calibration: Solving AX = XB on the Euclidean Group
Frank C. Park and Bryan J. Martin

This paper appears in: Robotics and Automation, IEEE Transactions on
Publication Date: Oct 1994
Volume: 10,  Issue: 5
On page(s): 717-721
ISSN: 1042-296X
References Cited: 8
CODEN: IRAUEZ
INSPEC Accession Number: 4803588
Digital Object Identifier: 10.1109/70.326576
Current Version Published: 2002-08-06

Abstract
The equation AX=XB on the Euclidean group arises in the problem of calibrating wrist-mounted robotic sensors. In this article the authors derive, using methods of Lie theory, a closed-form exact solution that can be visualized geometrically, and a closed-form least squares solution when A and B are measured in the presence of noise 




http://en.wikipedia.org/wiki/Lie_group

http://en.wikipedia.org/wiki/Lie_algebra

http://en.wikipedia.org/wiki/SO(3)

http://en.wikipedia.org/wiki/SO(4)



posted by maetel
2009. 2. 14. 17:27 Computer Vision
IEEE Transactions on Robotics, Volume 24, Number 5, October 2008
: Visual SLAM Special Issue

Guest Editorial: Special Issue on Visual SLAM


simultaneous localization mapping (SLAM)
in autonomous mobile robotics
using laser range-finder sensors
to build 2-D maps of planar environments

SLAM with standard cameras:
feature detection
data association
large-scale state estimation

SICK laser scanner


Kalman filter
Particle filter
submapping

http://en.wikipedia.org/wiki/Particle_filter
particle filter = sequential Monte Carlo methods (SMC)


http://en.wikipedia.org/wiki/Image_registration
the process of transforming the different sets of data into one coordinate system


http://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
the process of creating geometrically accurate maps of the environment
to build up a map within an unknown environment while at the same time keeping track of their current position

R.C. Smith and P. Cheeseman (1986)

Hugh F. Durrant-Whyte (early 1990s)

Sebastian Thrun

mobile robotics
autonomous vehicle

한국로봇산업협  http://www.korearobot.or.kr/




posted by maetel
2008. 8. 16. 22:31 Hardware/network



08-07-24

long CSGLSDlg::lCom_RcvData( WPARAM wParam, LPARAM lParam )
{
 if(Rvd_flag)
 {
  register int nRcvSize = (int)lParam; // data length
 
  for( int i=0;i<nRcvSize;i++)
  {   
   data1[i]=m_Commthread->g_byRcvBuf[i];
   fprintf(_fp1,"%02X\t",data1[i]);
  }

  fprintf(_fp1,"\n");
  m_nData++;
  UpdateData(FALSE);
 }
 return 1;
 
}


08-07-27

long CSGLSDlg::lCom_RcvData( WPARAM wParam, LPARAM lParam )
{

 if(Rvd_flag)
 {
  register int nRcvSize = (int)lParam; // data length

  for( int i=0;i<nRcvSize;i++)
  {   
   data1[i]=m_Commthread->g_byRcvBuf[i];
   fprintf(_fp1,"%02X\t",data1[i]);
  }

  if((ByteCount+nRcvSize) >= 25)
  {
   ByteCount = ByteCount - 25;
  }

  for(i=0;i<nRcvSize;i++)
  {
   if((ByteFlag==false)&&(data1[i]==250))
   {
    IdenFlag = true;
    StartIden[0] = data1[i];
   }
   else
   {
    if(IdenFlag==true)
    {
     if(data1[i] == 175)
     {
      StartIden[1] = data1[i];
     }
     else if(data1[i] == 32)
     {
      StartIden[2] = data1[i];
     }
     else if(data1[i] == 170)
     {
      StartIden[3] = data1[i];
      IdenFlag = false;
      ByteFlag = true;
     }
    }
    else
    {
     if(((ByteCount+i)==16)&&(ByteFlag==true))
     {
      Magneto[0] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[0]);
     }
     else if(((ByteCount+i)==17)&&(ByteFlag==true))
     {
      Magneto[1] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[1]);
     }
     else if(((ByteCount+i)==18)&&(ByteFlag==true))
     {
      Magneto[2] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[2]);
     }
     else if(((ByteCount+i)==19)&&(ByteFlag==true))
     {
      Magneto[3] = data1[i];
      // ByteFlag = false;

      fprintf(_fp2,"%02X\t",Magneto[3]);
     }
     else if(((ByteCount+i)==20)&&(ByteFlag==true))
     {
      Magneto[4] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[4]);
     }
     else if(((ByteCount+i)==21)&&(ByteFlag==true))
     {
      Magneto[5] = data1[i];
      fprintf(_fp2,"%02X\t",Magneto[5]);
      ByteFlag = false;
     }    
    } // else
   } // else
  } // for

  ByteCount = ByteCount + nRcvSize;

  fprintf(_fp1,"\n");
  fprintf(_fp2,"\n");
  m_nData++;
  UpdateData(FALSE);
 }
 return 1;
}


08-08-11

long CSGLSDlg::lCom_RcvData( WPARAM wParam, LPARAM lParam )
{   // check
 if(Rvd_flag)
 {
  register int nRcvSize = (int)lParam; // data length

  for( int i=0;i<nRcvSize;i++)
  {   
   data1[i]=m_Commthread->g_byRcvBuf[i];
   fprintf(_fp1,"%02X\t",data1[i]);
  }

  if((ByteCount+nRcvSize) >= 25)
  {
   ByteCount = ByteCount - 25;
  }

  for(i=0;i<nRcvSize;i++)
  {
   if((ByteFlag==false)&&(data1[i]==250))
   {
    IdenFlag = true;
    StartIden[0] = data1[i];
   }
   else
   {
    if(IdenFlag==true)
    {
     if(data1[i] == 175)
     {
      StartIden[1] = data1[i];
     }
     else if(data1[i] == 32)
     {
      StartIden[2] = data1[i];
     }
     else if(data1[i] == 170)
     {
      StartIden[3] = data1[i];
      IdenFlag = false;
      ByteFlag = true;
     }
    }
    else
    {
     if(((ByteCount+i)==16)&&(ByteFlag==true))
     {
      Magneto[0] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[0]);

      temp_m = Magneto[0]>>4;
      temp_l = Magneto[0]<<4;
      bit_order = temp_m | temp_l;
      fprintf(_fp2,"%02x\t",bit_order);
     }
     else if(((ByteCount+i)==17)&&(ByteFlag==true))
     {
      Magneto[1] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[1]);

      temp_m = Magneto[1]>>4;
      temp_l = Magneto[1]<<4;
      bit_order = temp_m | temp_l;
      fprintf(_fp2,"%02x\t",bit_order);
     }
     else if(((ByteCount+i)==18)&&(ByteFlag==true))
     {
      Magneto[2] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[2]);

      temp_m = Magneto[2]>>4;
      temp_l = Magneto[2]<<4;
      bit_order = temp_m | temp_l;
      fprintf(_fp2,"%02x\t",bit_order);
     }
     else if(((ByteCount+i)==19)&&(ByteFlag==true))
     {
      Magneto[3] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[3]);

      temp_m = Magneto[3]>>4;
      temp_l = Magneto[3]<<4;
      bit_order = temp_m | temp_l;
      fprintf(_fp2,"%02x\t",bit_order);
     }
     else if(((ByteCount+i)==20)&&(ByteFlag==true))
     {
      Magneto[4] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[4]);

      temp_m = Magneto[4]>>4;
      temp_l = Magneto[4]<<4;
      bit_order = temp_m | temp_l;
      fprintf(_fp2,"%02x\t",bit_order);
     }
     else if(((ByteCount+i)==21)&&(ByteFlag==true))
     {
      Magneto[5] = data1[i];
      fprintf(_fp2,"%02X\t",Magneto[5]);
      ByteFlag = false;

      temp_m = Magneto[5]>>4;
      temp_l = Magneto[5]<<4;
      bit_order = temp_m | temp_l;
      fprintf(_fp2,"%02x\t",bit_order);
     }    
    } // else
   } // else
  } // for

  ByteCount = ByteCount + nRcvSize;

  fprintf(_fp1,"\n");
  fprintf(_fp2,"\n");
  m_nData++;
  UpdateData(FALSE);
 }
 return 1;
}





08-08-12

unsigned char bit_more;
unsigned char bit_less;
//unsigned char bit_order;

unsigned short int Magneto_x;
unsigned short int Magneto_y;
unsigned short int Magneto_z;


long CSGLSDlg::lCom_RcvData( WPARAM wParam, LPARAM lParam )
{
 if(Rvd_flag)
 {
  register int nRcvSize = (int)lParam; // data length

  for( int i=0;i<nRcvSize;i++)
  {   
   data1[i]=m_Commthread->g_byRcvBuf[i];
   fprintf(_fp1,"%02X\t",data1[i]);
  }

  if((ByteCount+nRcvSize) >= 25)
  {
   ByteCount = ByteCount - 25;
  }

  for(i=0;i<nRcvSize;i++)
  {
   if((ByteFlag==false)&&(data1[i]==250))
   {
    IdenFlag = true;
    StartIden[0] = data1[i];
   }
   else
   {
    if(IdenFlag==true)
    {
     if(data1[i] == 175)
     {
      StartIden[1] = data1[i];
     }
     else if(data1[i] == 32)
     {
      StartIden[2] = data1[i];
     }
     else if(data1[i] == 170)
     {
      StartIden[3] = data1[i];
      IdenFlag = false;
      ByteFlag = true;
     }
    }
    else
    {
     if(((ByteCount+i)==16)&&(ByteFlag==true))
     {
      Magneto[0] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[0]);

      bit_more = Magneto[0]>>4;
      bit_less = Magneto[0]<<4;
      Magneto[0] = bit_more | bit_less;
//      fprintf(_fp2,"%02x\t",Magneto[0]);
     }
     else if(((ByteCount+i)==17)&&(ByteFlag==true))
     {
      Magneto[1] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[1]);

      bit_more = Magneto[1]>>4;
      bit_less = Magneto[1]<<4;
      Magneto[1] = bit_more | bit_less;
//      fprintf(_fp2,"%02x\t",Magneto[1]);
     }
     else if(((ByteCount+i)==18)&&(ByteFlag==true))
     {
      Magneto[2] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[2]);

      bit_more = Magneto[2]>>4;
      bit_less = Magneto[2]<<4;
      Magneto[2] = bit_more | bit_less;
//      fprintf(_fp2,"%02x\t",Magneto[2]);
     }
     else if(((ByteCount+i)==19)&&(ByteFlag==true))
     {
      Magneto[3] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[3]);

      bit_more = Magneto[3]>>4;
      bit_less = Magneto[3]<<4;
      Magneto[3] = bit_more | bit_less;
//      fprintf(_fp2,"%02x\t",Magneto[3]);
     }
     else if(((ByteCount+i)==20)&&(ByteFlag==true))
     {
      Magneto[4] = data1[i];
      // ByteFlag = false;
      fprintf(_fp2,"%02X\t",Magneto[4]);

      bit_more = Magneto[4]>>4;
      bit_less = Magneto[4]<<4;
      Magneto[4] = bit_more | bit_less;
//      fprintf(_fp2,"%02x\t",Magneto[4]);
     }
     else if(((ByteCount+i)==21)&&(ByteFlag==true))
     {
      Magneto[5] = data1[i];
      fprintf(_fp2,"%02X\t",Magneto[5]);
      ByteFlag = false;

      bit_more = Magneto[5]>>4;
      bit_less = Magneto[5]<<4;
      Magneto[5] = bit_more | bit_less;
//      fprintf(_fp2,"%02x\t",Magneto[5]);
     }    
    } // else
   } // else
  } // for

//  fprintf(_fp3,"%02X%\t%02X\t",Magneto[0],Magneto[1]);
//  fprintf(_fp3,"%02X%\t%02X\t",Magneto[2],Magneto[3]);
//  fprintf(_fp3,"%02X%\t%02X\t",Magneto[4],Magneto[5]);

  Magneto_x = (Magneto[0]<<8) | Magneto[1];
  Magneto_y = (Magneto[2]<<8) | Magneto[3];
  Magneto_z = (Magneto[4]<<8) | Magneto[5];

  fprintf(_fp3,"Magneto_x=%02X\t", Magneto_x);
  fprintf(_fp3,"Magneto_y=%02X\t", Magneto_y);
  fprintf(_fp3,"Magneto_z=%02X\t", Magneto_z);

  ByteCount = ByteCount + nRcvSize;

  fprintf(_fp1,"\n");
  fprintf(_fp2,"\n");
  fprintf(_fp3,"\n");
  m_nData++;
  UpdateData(FALSE);
 }
 return 1;
}



08-08-16 20:42
- log1.txt가 FA AF 20 AA로 시작하지 않으면, log2.txt에 한 번에 3개씩 (6개가 아니라) 저장된다. 이때 한 주기의 16번(17번째) byte부터 읽는 것이 아니라 무조건 처음에 들어온 데이터로부터 16번(17번째) byte를 읽기 시작한다.


08-08-17 02:22

Microsoft Visual C++ Debug Library

Debug Assertion Failed!

Program: ...\SGLS.exe
File: wincore.cpp
Line: 958

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the aaplication)

http://forums.msdn.microsoft.com/en-US/vcgeneral/thread/0f287b5f-c1e1-4cd9-a0f0-a418def88edd/



* 변수들의 초기값 설정은 OnInitDialog()에서 한다.



'Hardware > network' 카테고리의 다른 글

UART (범용 비동기화 송수신기)  (0) 2008.07.02
bluetooth on Mac  (0) 2008.06.17
Video Tracking on PC  (0) 2007.08.11
posted by maetel
2008. 8. 2. 16:34

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2008. 8. 2. 15:45 Hardware/sensors

'Hardware > sensors' 카테고리의 다른 글

[월간 전자기술] 센서의 활용  (0) 2008.08.02
Motion Tracker MT9  (0) 2008.07.28
WSN (Wireless Sensor Network)  (0) 2007.01.19
sensor terms  (0) 2007.01.19
accelerometer 가속도 센서 - MMA7260Q datasheet  (0) 2006.12.14
posted by maetel
2008. 7. 28. 10:56 Hardware/sensors
http://xsens.com/en/products/human_motion/mtx.php



Platform: Windows 2000/XP (1)
Output:
• 3D orientation
o Quaternions
o Euler Angles (xyz)
o Rotation Matrix
• 3D rate of turn
• 3D acceleration
• 3D magnetic field strength
• Temperature

Dynamic Range: all angles in 3D
Angular Resolution: 0.05° RMS (2)
Static Accuracy: <1° (3)
Dynamic Accuracy: 3° RMS (4)
Turn On Time: 50 ms (5)
Sample Frequency: 100 Hz (6)


http://en.wikipedia.org/wiki/Quaternion

http://en.wikipedia.org/wiki/Euler_angles

*** http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation

*** http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles

http://en.wikipedia.org/wiki/ECEF

ECEF stands for Earth-Centered, Earth-Fixed, and is a Cartesian coordinate system used for GPS, and is sometimes known as a "conventional terrestrial" system[1]. It represents positions as an X, Y, and Z coordinate. The point (0,0,0) denotes the mass center of the earth, hence the name Earth-Centered. The z-axis is defined as being parallel to the earth rotational axes, pointing towards north. The x-axis intersects the sphere of the earth at the 0° latitude, 0° longitude. This means the ECEF rotates with the earth around its z-axis. Therefore, coordinates of a point fixed on the surface of the earth do not change, hence the name earth-fixed.

http://www.aerojockey.com/papers/meng/node7.html

http://en.wikipedia.org/wiki/Random_walk

http://en.wikipedia.org/wiki/Comma-separated_values


MT9 Sensor Fact Table
Accelerometers - Solid state, capacitative readout
Rate of turn sensor 'Gyroscope' - Solid state, “tuning fork concept”
Magnetometer - Thin film magnetoresistive

http://en.wikipedia.org/wiki/Capacitor

http://en.wikipedia.org/wiki/Tuning_fork

http://en.wikipedia.org/wiki/Magnetoresistance


RS-232 Serial Connection Settings
Setting: Value
Bits/second: 115200
Data bits: 8
Parity: none
Stop bits: 1
Flow control: none


http://en.wikipedia.org/wiki/Endianness

In computing, endianness is the byte (and sometimes bit) ordering used to represent some kind of data. Typical cases are the order in which integer values are stored as bytes in computer memory (relative to a given memory addressing scheme) and the transmission order over a network or other medium. When specifically talking about bytes, endianness is also referred to simply as byte order.

http://en.wikipedia.org/wiki/Endianness#Big-endian


http://www.webopedia.com/TERM/b/baud.html


Data packet MT9
Preamble (2B) Sensor ID (2B) Accelerometer (6B)Gyroscoop (6B) Magneto (6B) Temperature (2B) Checksum (1B)


Physical Specifications overview
Interface: Serial digital (RS-232/RS-485)
Operating Voltage: 6 V (adapter included)
Power Consumption: 35 mA
Temperature Operating Range: 5°C - 45°C
Outline Dimensions: 39 x 54 x 28 mm (W x L x H)


http://www.xsens.com/en/support/faq/mti_mtig_and_mtx.php#3.1

3 Sensor hardware Topics

3.1 Q: What are the measurement principles of the physical sensors in the MTi / MTx?
A: Rate of turn sensors (gyros):
MEMS, solid state, “vibrating structure" concept.
Linear accelerometers: MEMS, solid state, capacitative readout.
Magnetic field sensors: Thin-film magneto-resistive.


3.2 Q: What is the accelerometer range of the MTi / MTx?
A: The standard version of the MTx/MTi comes with 5g accelerometers (±50 m/s2 range). Full scales of 1.7g and 10g are available as well. Please, contact us at info@xsens.com if you need other specifications.


3.3 Q: Can I disconnect/connect the MTi / MTx as I please?
A: Yes. But keep in mind that for optimal accuracy the electronics of the MTi / MTx should be 'warmed up' for about 10-15 minutes.


3.4 Q: What kind of anti-aliasing (low-pass) filters does the MTx/MTi have?
A:What kind of anti-aliasing (low-pass) filters does the MTx/MTi have?
A: To avoid aliasing the MT uses low-pass (LP) filters on all inertial data channels (not on temperature and magnetometers). The filters used are effective second order and are available in different cut-off frequencies depending on your requirements. The standard MT is delivered with 40 Hz LP on the rate-of-turn sensors and 30 Hz LP on the accelerometers.


3.5 Q: Is there a USB version of the MTi / MTx?
A: The MTi and MTx are delivered with an Xsens USB Converter. The communication from sensor to USB Converter can be either RS-232, RS-422 or RS-485.


3.6 Q: What is the connector type on the MT inertial measurement unit (IMU)?
A: For the MTx the connector type is 'Binder 719'. For the MTi the connector type is ‘ODU L-series 7’. Pin-definitions are listed in the MTi and MTx User Manual. Please contact Xsens (info@xsens.com) and we will send you a copy.

3.7 Q: What are the pin definitions on the connectors (to save us buzzing the MT out)?
A:The pin-definitions are listed in the MTi and MTx User Manual. Please contact Xsens (info@xsens.com) and we will send you a copy.


3.8 Q: When you say that your MT samples at 100 Hz, does that mean that each sensor (accelerometers, gyroscope, etc.) is sampling at 100 Hz or that the total throughput is 100 Hz—i.e. that the true sampling rate is 100/number of sensors?
A: When we say 100 Hz we mean that each sensor channel is sampled at 100 Hz, so actually for the MT 10 channels of data (3D accelerometer, 3D rate of turn, 3D magnetometer and temperature) are transmitted at 100 Hz, some would call it 1000 Hz throughput.


3.9 Q: Is it possible to connect the MTx/MTi to a PocketPC?
A:Yes, most PocketPC's support standard RS232 input (mostly with supplied RS232 synch cable) so you can develop software for the PocketPC using binary data from the MTi or MTx or log the inertial data on the PocketPC (please contact us if you would like to receive a simple binary datalogger for the PocketPC).

Using the Xbus Master you can also easily connect to a PocketPC using Bluetooth.


firmware
http://webopedia.com/TERM/f/firmware.html
Software (programs or data) that has been written onto read-only memory (ROM). Firmware is a combination of software and hardware. ROMs, PROMs and EPROMs that have data or programs recorded on them are firmware.

http://en.wikipedia.org/wiki/Firmware

In computing, firmware is a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash memory or as a binary image file that can be uploaded onto existing hardware by a user.

As its name suggests, firmware is somewhere between hardware and software. Like software, it is a computer program which is executed by a microprocessor or a microcontroller. But it is also tightly linked to a piece of hardware, and has little meaning outside of it.


http://terms.empas.com/dicsearch/view.html?i=3018166
①처리 과정 동안 컴퓨터에 의해 동적으로 변경이 불가능한 부류의 기억 장치에 적재된 컴퓨터 프로그램과 자료들.
②사용자 입장에서 변경할 수 없는 컴퓨터 프로그램과 자료가 들어 있는 하드웨어. 즉, 펌웨어에 들어 있는 컴퓨터 프로그램과 자료는 소프트웨어로 분류되고, 그 프로그램과 자료가 들어 있는 전기 회로는 하드웨어로 분류된다.
③읽기용 기억 장치(ROM)에 저장된 프로그램 명령어들.
④정상적인 동작을 하는 동안에는 변하지 않는, 기능적 개체를 구성하고 있는 컴퓨터 프로그램과 하드웨어가 1개의 단위로 이루어진 집합체. 그 하드웨어 단위에 저장된 컴퓨터 프로그램은 특정한 응용이나 작용에 맞는 요구를 만족시킬 고정된 논리 윤곽을 가진 집적 회로(IC)로서 저장된다.

'Hardware > sensors' 카테고리의 다른 글

[월간 전자기술] 센서의 활용  (0) 2008.08.02
myGyro300SPI  (0) 2008.08.02
WSN (Wireless Sensor Network)  (0) 2007.01.19
sensor terms  (0) 2007.01.19
accelerometer 가속도 센서 - MMA7260Q datasheet  (0) 2006.12.14
posted by maetel
2007. 11. 21. 11:29 Computation/HCI
A New Vision for Pervasive Computing: Moving Beyond Sense and Send
http://www.sensorsmag.com/sensors/article/articleDetail.jsp?id=467493


'Computation > HCI' 카테고리의 다른 글

Intelligent / smart environment  (0) 2009.02.14
VRML (Virtual Reality Modeling Language)  (0) 2008.07.09
Body without entity  (0) 2007.12.10
Making Scents: aromatic output for HCI  (0) 2007.02.25
Humane Interface (by Jef Raskin)  (0) 2006.04.26
posted by maetel
2007. 1. 19. 23:31 Hardware/sensors
Wireless Sensor Network

http://en.wikipedia.org/wiki/Sensor_network


Sensor Web

http://en.wikipedia.org/wiki/Sensor_Web




invalid-file

OGC <Sensor Web Enablement Overview and High Level Architecture>




'Hardware > sensors' 카테고리의 다른 글

[월간 전자기술] 센서의 활용  (0) 2008.08.02
myGyro300SPI  (0) 2008.08.02
Motion Tracker MT9  (0) 2008.07.28
sensor terms  (0) 2007.01.19
accelerometer 가속도 센서 - MMA7260Q datasheet  (0) 2006.12.14
posted by maetel
2007. 1. 19. 23:27 Hardware/sensors
 compressive sensing
an emerging field of information theory, called "compressive sensing," offered an alternative approach to conventional image acquisition and compression. Developed by researchers at Caltech, Stanford, the University of California, Los Angeles, and Rice, the technology is based on the idea that datasets, such as those that represent images or signals, often contain a significant amount of structure. When this structure is known, it can be used to extrapolate the image or signal when there's only a limited amount of available data. (ref. http://www.technologyreview.com/read_article.aspx?ch=specialsections&sc=personal&id=17610#)

     digital micromirror technology
    "The orientation of each mirror is random, which is important, say the scientists, because it provides the best possible sampling for the algorithm to reconstruct the image. The random structure is known and fed into the algorithm." (from  http://www.technologyreview.com/read_article.aspx?ch=specialsections&sc=personal&id=17610#)




'Hardware > sensors' 카테고리의 다른 글

[월간 전자기술] 센서의 활용  (0) 2008.08.02
myGyro300SPI  (0) 2008.08.02
Motion Tracker MT9  (0) 2008.07.28
WSN (Wireless Sensor Network)  (0) 2007.01.19
accelerometer 가속도 센서 - MMA7260Q datasheet  (0) 2006.12.14
posted by maetel
2006. 4. 1. 23:34 Footmarks
행 사 명 2006년 한국 소프트웨어 커뮤니티 연합 세미나 "2006 IT 트렌드"
주 최 SCA(한국 소프트웨어 커뮤니티 연합)
주 관 한국소프트웨어진흥원
미디어 후원 디지털타임즈, 아이뉴스 24, ZDnet korea

 

2006-04-01 흙 9:00-17:00 @한국 전산원, 광화문

 

  [1세션] 유비쿼터스 컴퓨팅과 디바이스 (윤훈주)


 
☞ 발표내용

   - 유비쿼터스는 크게 유비쿼터스 컴퓨팅과 유비쿼터스 네트워크 개념으로 구분이 된다. 2가지 개념의 이슈적 차이를 알아보고 유비쿼터스 컴퓨팅에 대한 기본 개념과 최근 유비쿼터스 연구 및 비즈니스 동향을 살펴본다. 또한 이와 관련된 여러 기술적인 이슈 및 응용들을 알아본다.

   - 그리고 유비쿼터스 컴퓨팅 개념에 기반한 디바이스는 어떤 구조 및 기능을 가져야 하는지 알아보고 사례들을 살펴본다. (유럽의 Disappearing computer, MIT 미디어랩 프로젝트 중심으로)

yhj.pe.kr

Griding Computing <=> Sensor Network

유리창 + 전류 -> 재질이 불투명해짐

사람의 오감 => computing (embedded, natural, 분산, 공간)

device - "energy"

convergence가 모든 사람을 만족시키는 것은 아니다.
cp. divergence

사용자가 '배우지 않고' 일상의 습관/상식을 바로 적용.
device가 사용자의 사용 패턴을 분석/이해.

2차원 바코드 => 정보의 유통, 보급

Bluetooth 등으로 device와 직접 소통 (tc network를 사용하지 않음)

  ☞ 강사소개 : 윤훈주(유비유넷 대표 운영자, LG전자기술원)

   - 국내에 유비쿼터스가 알려지던 초기부터 커뮤니티 활동(세미나, 강좌, 칼럼)을 통하여 유비쿼터스 정보를 공유하고 알리는데 노력하고 있다.

   - 유비유 대표강사를 거쳐 현재 유비유넷(www.ubiu.net)의 대표운영자를 맡고 있다.
     또한, LG전자기술원에 근무하고 있으며 휴대폰 관련 업무를 담당하고 있다.



  [2세션] 다관절 로봇의 효과적인 구축방법 (김병수)


 
☞ 발표내용

   - 최근 인기 있는 휴머노이드 등의 다관절 로봇에 대한 국내외 동향과 실제로 로봇을 제작할 수 있는 기초 지식에 대한 강의.

크기 증가 -> 무게 증가 => 관성의 영향 증가

가속도 센서 <-> 사람의 전정기관
: (주로 머리에 장착하고) 기울어진 정도를 측정하여 ZMP 산정

vision (시간 정보) => 균형의 '기준'

  ☞ 강사소개 : 김병수(로보티즈 대표)

   - 십여년 전 전일본 마이크로마우스 경진대회, 세계 로봇 축구 대회, 아모로 컨테스트 등 다양한 국내외 로봇 대회에서 우승한 바 있으며 로보티즈를 창업하여, 다양한 로봇 구축 솔루션과 로봇 완구등을 개발, 국내외에 보급.



  [3세션] 해커의 역습 : 웹의 위협이 시작되었다! (양수열, 정관진)



  ☞ 발표내용

   - 정보고속도로로 비유되는 인터넷의 가장 큰 통로 역할을 하고 있는 웹(WEB)은 이제 생활의 한 부분이라 할 만큼 우리 생활에 깊숙이 들어와 있다. 웹의 대중화에 따라 '보안'의 중요성이 강조되어 오고 있고 최근 중국해커에 의해 대표적인 국내의 웹 사이트들이 해킹 당하는 사례의 증가를 보면 앞으로의 보안 트랜드의 변화를 예측해 볼 수 있다.

   - 이번 강연은 점차 그 중요성이 높아지고 있는 웹 해킹의 현황, 기법, 사례 그리고 대처방법에 대해 알아본다. 실제 웹 해킹이 얼마나 쉽게 일어날 수 있는가를 여러분들에게 보여주고 이를 해결하기 위한 방법도 모색해 본다.

   - 지금 여러분이 웹 개발자, 사이트 운영자 또는 웹 비즈니스 관련자라면 이번 강좌는 '웹 보안'이 왜 필요하고 중요한 것인지를 말해주게 될 것이다.


  ☞ 강사소개1 : 정관진 (안철수연구소 시큐리티분석가)

   - 아파치사용자그룹(http://www.apache-kr.org)의 운영자인 정관진씨는 1997년부터 아파치 웹 서버에 대한 정보 제공을 해오고 있으며 '재미있는 아파치 이야기'연재, 소프트엑스포 참가, 연합컨퍼런스 개최등 다양한 커뮤니티활동을 해 오고 있다.

   - 현재는 안철수연구소에서 보안취약점 및 악성코드 분석을 하고 있으며 보안관련 컬럼 기고 및 강연을 해 오고 있다.


  ☞ 강사소개2 : 양수열( JCO 회장, 자바 챔피언)

   - 현재 JCO 회장으로 국내 최초로 자바 챔피언으로 선정되었으며, 금융권 전자 상거래 시스템 운영 및개발 팀장으로 3년간 재직하면서 다양한 보안 문제점과 해결방안에 대해서 고민하고 있다.

   - 마소 및 IT 관련 지 기고 및 강연등 다양한 활동을 해오고 있다.
     관심 분야는 개발 품질 향상 방안과 개발측면에서 보안이다.



  [4세션] framework = framework + framework (김태완)



☞ 발표내용

   - 자바기반 프레임웍은 오픈소스와 벤더, JCP 스펙 등의 상호작용을 통해서 폭발적으로 증가하고 있으며, 프레임웍들은 서로 영향을 미치며 발전하고 있다. 이러한 자바기반 프레임웍 중 대중적인 인기를 끌고 있는 프레임웍들을 비교해보고 동향을 살펴본다


  ☞ 강사소개 : 김태완(프로자바 대표 운영자, 대우정보시스템)

   - 프로자바의 운영자와 JCO(javacommunity.org)의 운영위원으로 활동하고 있으며오픈소스 기반 RAD와 오픈소스를 이용한 수익모델에 관심을 갖고 있다.

   - 현재는 대우정보시스템에서 오픈소스기반 J2EE 프레임웍을 개발하고 있으며, 오픈소스관련 기고를 하고 있다.



  [5세션] 웹2.0 개발 방법론 (김중태)  web2.htm

  ☞ 발표내용

   1 웹2.0이 변화시킨 비지니스 환경과 일상생활
     - 왜 지금 세계는 웹2.0에 열광하는가?
     - 웹2.0이 거품이 아닌 이유
     - 웹2.0 기업으로 갖추어야 할 조건

   2. 웹2.0 기업의 수익모델
     - 미국의 웹2.0 기업은 어떻게 성장했나?
     - 웹2.0 수익모델은 무엇인가?
     - 구글에 적용된 웹2.0 개념과 구글 전략 전술의 무서움

   3. 이런 서비스를 만들어야 성공한다.
     - 개념의 변화에 따른 전략과 성공을 위한 법칙들
     - 몰려오는 새로운 개념 변화와 대비책
     - 이런 서비스를 만들면 시장을 장악한다.


  ☞ 강사소개 : 김중태(김중태 문화원 원장)

   - 지은이 김중태 원장은 여러 권의 인터넷 관련 서적을 출간한 통신전문가로 국내 저자로는 처음으로 블로그 문화를 다룬 서적인 '나는 블로그가 좋다'를 출간하고 올바른 블로그문화 보급에 노력하고 있는 문화운동가다.

   - 현재는 바른 인터넷문화를 이끌기 위해 차세대 웹 알리기와 웹표준 관련 운동에 참여하고 있으며, 국내 IT역사를 정리하는 IT실록 프로젝트를 진행 중이다.

   - 차세대 웹을 알리기 위한 과정의 하나로 '웹2.0 시대의 기회, 시맨틱웹'이라는 책을 출간했고, 시맨틱웹과 웹2.0을 주제로 활발한 강연활동을 펴고 있다. 그외 여러 매체에 다양한 IT 관련 컬럼을 연재하고 있는 IT컬럼니스트로 활동 중이다. (http://www.dal.co.kr)

   - 저서: '웹2.0 시대의 기회, 시맨틱웹' '나는 블로그가 좋다' '리눅스 줄게 웹호스팅 다오' '자바스크립트 이야기' '우리 아기 홈페이지 만들기' '누구나 할 수 있는 PC통신과 인터넷' '김중태의 통신이야기' '하드웨어 팔만대장경' 'C언어 이야기' 외 다수.



  [6세션] IT 조직의 프로젝트 관리(PM) 능력 향상 방안 (이재왕)

 

☞ 발표내용

   - 최근의 자료에 따르면 IT 프로젝트의 성공을 위해서는 엔지니어링보다 프로젝트관리 능력향상이 더욱 중요한 요소로 나타나고 있으며 전세계적으로 많은 IT관련 회사들이 프로젝트관리 능력 향상을 위하여 PMP양성 및 교육 등 다양한 노력을 기울이고 있는 상황입니다.

   - 본 강의는 국내 프로젝트관리의 현실과 문제점 그리고 CMMI와 PMBOK을 기초로한 조직의 프로젝트관리 능력 향상을 위한 실질적인 방법과 적용사례를 소개한다.

PM BKO

PMP: 프로젝트 관리 전문가 국제 공인 제도 (자격증)

PMCDF: Project Manager Competency Development Framework

OPM3: Organizational Project Manager
        Portfolio Project - 조직의 business와 연계
        Program Project - 여러 project 진행
        Project Management


SEI: Software Engineering Institute
     SW-CMM: Capability Mutuality Model

프로젝트 관리 표준 CMMI Process (25)

  ☞ 강사소개 : 이재왕(OPM커뮤니티 수석 컨설턴트)

   - CMMI 및 PMO 전문 컨설턴트로써 프로젝트관리 교육 및 국내에 많은 대기업들을 컨설팅 해왔으며 현재는 SERI의 CMM포럼 대표로써 IT 프로세스 개선에 대한 세미나 및 정보를 공유하고 알리는데 노력하고 있다.

posted by maetel
2006. 1. 22. 13:25 Hardware

(주)오우션테크놀로지

http://www.gyration.co.kr/product/sub3.htm

'Hardware' 카테고리의 다른 글

smd toast oven  (0) 2008.03.24
Wiring board + 가속도 센서 시리얼 통신 테스트  (0) 2007.01.03
soldering  (0) 2006.12.14
testing serial  (0) 2006.12.10
hardware term  (0) 2006.02.21
posted by maetel