for Robot Artificial Inteligence

만도 ADAS/BU 레이더 센서 개발

|

산야로 여행기간에 면접이 잡혔다. 나는 양복과 노트북을 챙겨서 산야로 가게 되었고, 스킨스쿠버 다이빙 자격증을 따는 동안 면접 준비를 하였다. 그리고 호텔에서 면접을 보았다.

1차 면접

  1. 자기소개
    • 안녕하세요, 저는 설계와 개발이 좋아 기계공학을 전공하고 있는 이찬교 입니다. 세부전공으로는 로봇공학을 전공하였으며, 연구분야는 모바일로봇 네비게이션이였습니다. 그리고 현재에는 Midea Group이라는 곳에서 가정용 로봇 개발 인턴을 하고 있습니다.
  2. 논문소개
    • 저는 Semantic SLAM 어플리케이션을 이용하여 모방일로봇 네비게이션 시스템을 구축하였습니다. 이용한 어플리케이션에는, ORB-SLAM2와 yolov3가 결합된 동적환경에서의 맵핑과 로컬라이제이션입니다. 그러나 이 시스템은 카메라 센서 기반으로 된 슬램 시스템이기 때문에 데이터에 대한 오차가 발생합니다. 이를 encoder에서 얻어지는 wheel odometer를 이용하여서 Extended Kalman Filter를 통해 보정하였습니다. 그 외에 Object Avodiance, Motion Planning, Frontier-based Detection알고리즘을 개발하여 자율 탐험 및 네비게이션 시스템을 구축하였습니다.
  3. 경사가 있는 공간에서 맵핑과 로컬라이제이션은 어떻게 하였는가
    • 우선 제 논문에 있어서 경사가 없다는 가정하에 만들어진 시스템 입니다. 그렇기 때문에 경사를 고려하지 않았습니다.
  4. RADAR센서를 개발하려면 처음부터 다시 배워야 한다. 안테나 알고리즘 같은 것을 할 수 있겠는가
    • 할 수 있습니다. 레이더나 카메라나 결국 비슷할거라고 생각합니다. 다만 카메라는 전처리과정을 통해 환경을 인지를하고, 레이더는 전자파를 이용하여서 환경을 인지하기 때문에 이 부분만 다르다고 생각합니다.
  5. 회사에서 PM직군을 시킨다면 어떻게 할 것인가.
    • 회사에서 제 역할이 PM이 어울린다고 생각이 든다면 믿고 할 것입니다. 다만 만약 직업 외에 자기개발을 한다면 개인 사이드 프로젝트를 하여서 취미 식으로 스스로 연구 할 것입니다.
  6. 왜 중국에 남지 않고 한국으로 돌아오는가
    • 중국 회사에서 일을하면서 외국어는 늘 수 있으나 직무적인 면에서 한계를 많이 느꼈습니다. 아무래도 모국어가 아니다 보니까 팀미팅을 할때 중국어를 사용하여서 미팅을 하는데 어려움이 있었고, 이는 연구개발직무에 있어서 어려움이 있었습니다. 회사 다닐때 옆에서 지도해주는 사람이 없어, 한번 이해를 잘 못하면 해매는 일이 있었기 떄문입니다. 이에 직무적으로 더 잘하고 싶어 한국에 돌아오려 합니다.

후기

면접관님이 지속적으로 경사에 있는 매핑과 로컬리제이션에 대한 질문을 계속 하였다. 하지만 나는 해본적이 없기 때문에 제대로 된 대답을 하지 못하였다. 그 이외 질문들은 아는 것이거나 가볍게 대답할 수 있는 질문들이였다. 다만 PM이나 직무에 대해서 얘기를 했을때 너무 YES맨이였다. 무엇을 시켜도 할 수있다라고 말해서, 아마 면접관들이 헷갈려했을거 같다. 도대체 이 사람이 연구를 하고 싶어하는건지 비지니스를 하고 싶어하는건지 다 좋다고 하니 그냥 취업을 위한 면접자라고 생각을 했을거 같다.

Comment  Read more

현대자동차 자율주행시스템 개발 면접 후기

|

두번째 면접의 기회이다. 첫번째는 인턴을 지원하였는데, 그때 네트워크 상황도 안좋고 준비를 제대로 하지 못하여서 떨어졌다. 이번에는 네이버랩스 면접의 질문을 기반으로 열심히 준비하였고, 대답도 잘했다.

1차 면접

  1. 자기소개
    • 안녕하세요, 저는 설계와 개발이 좋아 기계공학을 전공하고 있는 이찬교 입니다. 세부전공으로는 로봇공학을 전공하였으며, 연구분야는 모바일로봇 네비게이션이였습니다. 그리고 현재에는 Midea Group이라는 곳에서 가정용 로봇 개발 인턴을 하고 있습니다.
  2. 논문소개
    • 저는 Semantic SLAM 어플리케이션을 이용하여 모방일로봇 네비게이션 시스템을 구축하였습니다. 이용한 어플리케이션에는, ORB-SLAM2와 yolov3가 결합된 동적환경에서의 맵핑과 로컬라이제이션입니다. 그러나 이 시스템은 카메라 센서 기반으로 된 슬램 시스템이기 때문에 데이터에 대한 오차가 발생합니다. 이를 encoder에서 얻어지는 wheel odometer를 이용하여서 Extended Kalman Filter를 통해 보정하였습니다. 그 외에 Object Avodiance, Motion Planning, Frontier-based Detection알고리즘을 개발하여 자율 탐험 및 네비게이션 시스템을 구축하였습니다.
  3. EKF 소개
    • Non-Linear Model을 사용하여 KF를 통해 Pose Estimation을 한다면 non-gaussian Distribution으로 잘못된 pose Estimation을 할 수 없습니다. 이러한 문제를 해결하고자 Non-linear Model을 선형 근사값으로 만들어야하는데, 이때 Taylor 1st Series를 이용하여서 비선형모델을 선형 모델로 변환하여 푸는 EKF방식이다.
  4. Deep Learning 사용하지 않고 SLAM을 구현했는지
    • SLAM어플리 케이션을 이용하여서 실제로 제가 개발하고 구현하지 않아서 잘모릅니다.
  5. PID 제어에 대해 설명
    • 사실 옛날에 배웠는데 지금 생각이 나지 않습니다. 매틀랩 시뮬렝크를 통해서 하였습니다.
  6. 본인의 강점이 무엇인지
    • 중국어를 할 줄 압니다. 이는 정보에 대한 양이 많으며 공부할때 도움이 많이 됩니다.

후기

어렵진 않았다. 대답을 잘 했다. 다만 딥러닝이나 PID라는 예상치 못한 질문이 와서 그것에 대해 대답을 잘 못했으며, 아마 면접관님 기준 기초적인것을 질문했는데 대답 못했다라는 것이 인상에 컷을 것 같다.

Comment  Read more

네이버랩스 로봇 소프트웨어 면접 후기

|

내가 석사를 시작하고 나서부터 꼭 가고 싶었던 회사가 있었다. 그것이 바로 네이버 랩스! 내가 연구하고 있는 분야 모바일로봇 네비게이션이였고, 우리나라에서 제일 잘하는 회사이기 때문에 꼭 가고싶었다. 서류를 넣고 전화 인터뷰 기회가 왔다.

전화 인터뷰

  1. 자기소개
    • 안녕하세요, 저는 설계와 개발이 좋아 기계공학을 전공하고 있는 이찬교 입니다. 세부전공으로는 로봇공학을 전공하였으며, 연구분야는 모바일로봇 네비게이션이였습니다. 그리고 현재에는 Midea Group이라는 곳에서 가정용 로봇 개발 인턴을 하고 있습니다.
  2. 논문에 대해 설명을 해주세요
    • 저는 Semantic SLAM 어플리케이션을 이용하여 모방일로봇 네비게이션 시스템을 구축하였습니다. 이용한 어플리케이션에는, ORB-SLAM2와 yolov3가 결합된 동적환경에서의 맵핑과 로컬라이제이션입니다. 그러나 이 시스템은 카메라 센서 기반으로 된 슬램 시스템이기 때문에 데이터에 대한 오차가 발생합니다. 이를 encoder에서 얻어지는 wheel odometer를 이용하여서 Extended Kalman Filter를 통해 보정하였습니다. 그 외에 Object Avodiance, Motion Planning, Frontier-based Detection알고리즘을 개발하여 자율 탐험 및 네비게이션 시스템을 구축하였습니다.
  3. EKF 설명
    • Non-Linear Model을 사용하여 KF를 통해 Pose Estimation을 한다면 non-gaussian Distribution으로 잘못된 pose Estimation을 할 수 없습니다. 이러한 문제를 해결하고자 Non-linear Model을 선형 근사값으로 만들어야하는데, 이때 Taylor 1st Series를 이용하여서 비선형모델을 선형 모델로 변환하여 푸는 EKF방식이다.
  4. 좀 더 자세하게 얘기해주세요
    • EKF는 총 2개의 Motion Model과 Observation모델과 2개의 프로세스인 Prediction과 Correction으로 구성된 알고리즘이다. bayes filter 기반으로 된 Motion Model과 Observation Model은 Prediction 프로세스에서 Motion Model과 Control input값을 통한 Mean과 Covariance를 상태 추정하며, 이 추정된 값은 Correction Process에서 칼만게인과 Observation Model을 통해 상태 추정 보정이 된다.
    • 답변 외에 추가적인 것:
      1. Motion Model은 이전 상태값을 State Transition Matrix에 계산을 하여 pose1을 구하고, Control Input(Velocity x,y and angle)값을 Velocity-based 모델을 통해 pose2를 구하고, process Noise(control input에 의해 결정되는 matrix기반으로 convariance값과 곱하여)를 구하여 상태와 Control input에 따른 모션에 대한 상태추정한다.
      2. Observation Model은 주로 센서로 부터 얻어진 데이터 이므로, 대부분 identity matrix로 설정하고, 실제로 측정되는 x,y,z값들을 매트릭스에 곱셈을하여서 얻어진다. 이때 Observation Noise도 있는데, 이는 임의로 주어진다.
  5. KF, EKF, UKF, Particle Filter 차이점
    • 칼만 필터는 선형모델일때 사용이 되는 알고리즘이다. EKF는 비선형 모델일때 사용되는 모델이다. 대신 비선형을 선형근대화하여서 푸는 문제인데, 주행거리가 많아지면, 이는 결국 선형근대화값이기 때문에 에러가 증가하게 된다. 이를 보안하고자 unscented kalman filter가 있다, unscented Transform 방법을 통해 가우시안 범위 안에 선택된 sigma point의 출력값과 weight과 프레딕션 프로세스에서 Mean값과 Covariance 값을 계산한다. Kalman Filter들의 특징은 Incremental Method로 오직 이전값 데이터와 Control input 값만 가지고 상태를 추정한다.
    • 반면에 Particle Filter는 이전에 가지고 있던 이력들을 지속적으로 활용하여 상태추정하는 방법이다. 모델 측정 범위 내에 포인트들을 랜덤으로 생성을 하고, Moition Model(Prediction)을 통해 가우시안 랜덤 안에 움직인 거리를 측정하고, Observation Model(Correction), 예측된 포인트 위치와 센서로 얻어진 실제 위치를 이용해 포인트 들의 weight를 업데이트 해준다(정규분포를 이용해 구함), 그리고 Resampling을 통해 weight 가 낮은 포인트들은 제거하고 큰 포인트들은 여러개로 복사한다. 그리고 포인트중 weight가 가장 큰 것을 포즈 타겟으로 삼거나 가중평균등을 사용하여 위치 선정한다.
    • Particle Filter는 주행이 긴 시스템에서 좋은 시스템이며, 대신 계산량이 많다. 반면에 KF같은 경우 오직 이전 데이터만 활용하기 때문에 비교적 계산량이 적지만, 긴 주행을 할 겨우 오차가 발생할 수 있다.
  6. SIFT와 ORB의 차이점
    • SIFT(Scale Invariant Feature Transform)는 유료 알고리즘이며 계산량이 많아 실시간(GPU사용하면 가능할 수)으로 사용하기에는 어렵다. 원리로는 Gausian Image Pyramid(이미지 피라미드를 생성할때 점점 gaussian blur의 크기를 넓힌다.)로 여러 이미지를 만든다음 Different of Gausian을 통해 이미지간의 근대점과 극소점을 추출하여서 이미지 안에 Keypoint를 구한다. 구한 Keypoint는 주변 discripter를 이용하여서 방향성분을 결정하고 특징점을 표현한다.
    • 반면에 ORB의 방법은 Oriented Fast(Corner Detection(+image pyramid+corner중심+Orientation))을 통해 선과 코너 위주로 키프인트를 추출하여 크기에 대한 keypoint에 불변하게 하고 Rotated BRIEF(Blob detector(+회전에 약한 BRIEF계선+keypoint의 0,1차 moment를 이용하여서 방향성분 + hamming distance를 이용하여 속도와 메모리 절약))사용하여서 회전에 대한 개선을 하였다. 즉 SIFT와 다르게 선이나 모소리 위주로 키포인트를 추출을 하고, 이를 Rotated BRIEF알고리즘을 사용하여서 영상에 대한 회전, 스케일을 변화에 대한 불변 특징점 추출하였고, 계산도 빨라 실시간(CPU)으로 사용할 수 있다.
  7. 다양한 맵포인트들을 가지고 있을 것인데, 어떻게 최적화를 하였나요
    • 자세한것은 저는 SLAM 시스템을 이용을 하여서 했기때문에, 잘 모릅니다. 그러나 특징점 추출과 일정 특징점이 넘어가면 맵포인트 생성과 카메라 포즈 데이터를 가지는 키프레임이 생성되고 MapDatabase에 저장하게 되는데, 이때 예를 들어 한 맵포인트가 여러 키프레임에서 공유하고 있을때, Bundle Adjustment를 통해서 MapPoints와 카메라 포즈를 최적화합니다.
  8. Bundle Adjustment에 대해 설명해 보세요
    • 여러 맵포인트를 공유하고 있는 여러 키프레임을 가지고 맵포인트와 카메라 포즈를 최적화 하는 방법입니다. 특징적으로는, 예를 들어 4개에 키프레임이 100개 이상의 맵포인트를 공유한다고 할때 모든 맵포인트를 고려를 해서 최적화하기 힘듬으로 RANSAC알고리즘을 통해 약 4개의 맵포인트를 랜덤으로 선택을하고, 선택된 여러 프레임에서 공유하고 있는 맵포인트들을 Least Square 방법을 통해서 약 iteration 20회를 통해 키프레임과 맵포인트들의 포즈를 조정 합니다.

후기

사실 흐음 잘 못봤다. 지금 생각나는것만, 대답 잘한것만 이렇게 적어 놓았지만, 사실 대답 못한 것들이 더 많았다. 예를 들어 SLAM에 대해서 질문을 하셨는데, 나는 활용을 했지 직접 처음부터 끝까지 설계해보고 구현해보지 않았다라는 등, 모르는 질문에 대해서는 얼렁뚱땅 넘어갔던거 같다. 네이버 랩스의 면접은 매우 어려웠으나 졸업 논문 디펜스나 다른 회사를 지원할 때 더 많은 도움이 되었다.

Comment  Read more

면접시 준비 했던 전공 관련 질문과 답변

|

  1. 논문에 대해 설명을 해주세요
    • 저는 Semantic SLAM 어플리케이션을 이용하여 모방일로봇 네비게이션 시스템을 구축하였습니다. 이용한 어플리케이션에는, ORB-SLAM2와 yolov3가 결합된 동적환경에서의 맵핑과 로컬라이제이션입니다. 그러나 이 시스템은 카메라 센서 기반으로 된 슬램 시스템이기 때문에 데이터에 대한 오차가 발생합니다. 이를 encoder에서 얻어지는 wheel odometer를 이용하여서 Extended Kalman Filter를 통해 보정하였습니다. 그 외에 Object Avodiance, Motion Planning, Frontier-based Detection알고리즘을 개발하여 자율 탐험 및 네비게이션 시스템을 구축하였습니다.
  2. EKF 설명
    • Non-Linear Model을 사용하여 KF를 통해 Pose Estimation을 한다면 non-gaussian Distribution으로 잘못된 pose Estimation을 할 수 없습니다. 이러한 문제를 해결하고자 Non-linear Model을 선형 근사값으로 만들어야하는데, 이때 Taylor 1st Series를 이용하여서 비선형모델을 선형 모델로 변환하여 푸는 EKF방식이다.
  3. 좀 더 자세하게 얘기해주세요
    • EKF는 총 2개의 Motion Model과 Observation모델과 2개의 프로세스인 Prediction과 Correction으로 구성된 알고리즘이다. bayes filter 기반으로 된 Motion Model과 Observation Model은 Prediction 프로세스에서 Motion Model과 Control input값을 통한 Mean과 Covariance를 상태 추정하며, 이 추정된 값은 Correction Process에서 칼만게인과 Observation Model을 통해 상태 추정 보정이 된다.
    • 답변 외에 추가적인 것:
      1. Motion Model은 이전 상태값을 State Transition Matrix에 계산을 하여 pose1을 구하고, Control Input(Velocity x,y and angle)값을 Velocity-based 모델을 통해 pose2를 구하고, process Noise(control input에 의해 결정되는 matrix기반으로 convariance값과 곱하여)를 구하여 상태와 Control input에 따른 모션에 대한 상태추정한다.
      2. Observation Model은 주로 센서로 부터 얻어진 데이터 이므로, 대부분 identity matrix로 설정하고, 실제로 측정되는 x,y,z값들을 매트릭스에 곱셈을하여서 얻어진다. 이때 Observation Noise도 있는데, 이는 임의로 주어진다.
  4. KF, EKF, UKF, Particle Filter 차이점
    • 칼만 필터는 선형모델일때 사용이 되는 알고리즘이다. EKF는 비선형 모델일때 사용되는 모델이다. 대신 비선형을 선형근대화하여서 푸는 문제인데, 주행거리가 많아지면, 이는 결국 선형근대화값이기 때문에 에러가 증가하게 된다. 이를 보안하고자 unscented kalman filter가 있다, unscented Transform 방법을 통해 가우시안 범위 안에 선택된 sigma point의 출력값과 weight과 프레딕션 프로세스에서 Mean값과 Covariance 값을 계산한다. Kalman Filter들의 특징은 Incremental Method로 오직 이전값 데이터와 Control input 값만 가지고 상태를 추정한다.
    • 반면에 Particle Filter는 이전에 가지고 있던 이력들을 지속적으로 활용하여 상태추정하는 방법이다. 모델 측정 범위 내에 포인트들을 랜덤으로 생성을 하고, Moition Model(Prediction)을 통해 가우시안 랜덤 안에 움직인 거리를 측정하고, Observation Model(Correction), 예측된 포인트 위치와 센서로 얻어진 실제 위치를 이용해 포인트 들의 weight를 업데이트 해준다(정규분포를 이용해 구함), 그리고 Resampling을 통해 weight 가 낮은 포인트들은 제거하고 큰 포인트들은 여러개로 복사한다. 그리고 포인트중 weight가 가장 큰 것을 포즈 타겟으로 삼거나 가중평균등을 사용하여 위치 선정한다.
    • Particle Filter는 주행이 긴 시스템에서 좋은 시스템이며, 대신 계산량이 많다. 반면에 KF같은 경우 오직 이전 데이터만 활용하기 때문에 비교적 계산량이 적지만, 긴 주행을 할 겨우 오차가 발생할 수 있다.
  5. SIFT와 ORB의 차이점
    • SIFT(Scale Invariant Feature Transform)는 유료 알고리즘이며 계산량이 많아 실시간(GPU사용하면 가능할 수)으로 사용하기에는 어렵다. 원리로는 Gausian Image Pyramid(이미지 피라미드를 생성할때 점점 gaussian blur의 크기를 넓힌다.)로 여러 이미지를 만든다음 Different of Gausian을 통해 이미지간의 근대점과 극소점을 추출하여서 이미지 안에 Keypoint를 구한다. 구한 Keypoint는 주변 discripter를 이용하여서 방향성분을 결정하고 특징점을 표현한다.
    • 반면에 ORB의 방법은 Oriented Fast(Corner Detection(+image pyramid+corner중심+Orientation))을 통해 선과 코너 위주로 키프인트를 추출하여 크기에 대한 keypoint에 불변하게 하고 Rotated BRIEF(Blob detector(+회전에 약한 BRIEF계선+keypoint의 0,1차 moment를 이용하여서 방향성분 + hamming distance를 이용하여 속도와 메모리 절약))사용하여서 회전에 대한 개선을 하였다. 즉 SIFT와 다르게 선이나 모소리 위주로 키포인트를 추출을 하고, 이를 Rotated BRIEF알고리즘을 사용하여서 영상에 대한 회전, 스케일을 변화에 대한 불변 특징점 추출하였고, 계산도 빨라 실시간(CPU)으로 사용할 수 있다.
  6. 다양한 맵포인트들을 가지고 있을 것인데, 어떻게 최적화를 하였나요
    • 자세한것은 저는 SLAM 시스템을 이용을 하여서 했기때문에, 잘 모릅니다. 그러나 특징점 추출과 일정 특징점이 넘어가면 맵포인트 생성과 카메라 포즈 데이터를 가지는 키프레임이 생성되고 MapDatabase에 저장하게 되는데, 이때 예를 들어 한 맵포인트가 여러 키프레임에서 공유하고 있을때, Bundle Adjustment를 통해서 MapPoints와 카메라 포즈를 최적화합니다.
  7. Bundle Adjustment에 대해 설명해 보세요
    • 여러 맵포인트를 공유하고 있는 여러 키프레임을 가지고 맵포인트와 카메라 포즈를 최적화 하는 방법입니다. 특징적으로는, 예를 들어 4개에 키프레임이 100개 이상의 맵포인트를 공유한다고 할때 모든 맵포인트를 고려를 해서 최적화하기 힘듬으로 RANSAC알고리즘을 통해 약 4개의 맵포인트를 랜덤으로 선택을하고, 선택된 여러 프레임에서 공유하고 있는 맵포인트들을 Least Square 방법을 통해서 약 iteration 20회를 통해 키프레임과 맵포인트들의 포즈를 조정 합니다.
  8. 소형차 자율주행 시스탬 개발에 관심 있다고 하셨는데 왜?
    • 인프라 V2X로 교통 체증 감소, 1인 가구 증가, 도시 밀집화를 통해 소형차가 증가할 것이라 생각이 듭니다. 이에 소형차 자율주행 시스템 개발에 도전하고 싶습니다.
  9. Machine Vision에서 배운 내용 설명
    • multi geometry를 기반으로 OPENCV 알고리즘을 이용하여서 Pose Estimation 및 물체 인식 알고리즘을 만들었습니다.
  10. 논문을 쓰는데 도움을 주었던 과목들
    • Matrix Theory와 Optimization Method입니다. 행렬은 homogous matrix 및 jacobian matrix, 행렬 변환에 대해서 이해를 하는데 도와 줬으며, Optimization Method같은 경우 비선형 문제를 선형화 해서 푸는 방법(tayor 1st series) 그리고 Gradient나 Least Square방법으로 에러를 최소화하여 문제를 최적화 하는 방법등이 SLAM시스템 이해하는데 도움을 줬으며 Extended Kalman Filter를 이해하는데 도움이 되었습니다.
  11. Mask RCNN 설명
    • 물체를 인식하고 바운더리가 생성될때 바운더리에 색감을 익혀 세그멘티드하는 방식입니다. 물체 인식을 위해 backend network에 이미지를 넣어야 하는데 이때 이미지 사이즈를 1024로 맞춥니다. 이떄 사용한 backend network(신경 네트워크)는 Resnet-101로 각 layer에서 feature map 생성을 합니다(c_1,c_2,c_3,c_4)
    • 최종 생성된 feature map의 classification, box regression이 output값으로 도출합니다.
    • output으로 얻은 box regression을 원래 이미지에 reprojection 시켜 anchor box생성합니다.
    • non-max suppression을 통해 생성된 anchor box중 score가 높은 anchor box를 제외하고 모두 삭제합니다.
    • 각 크기가 다른 anchor box를 roi align을 통해 size를 조정합니다.
  12. Pose Estimation 해본 경험 및 설명
    • shape detection으로 pose Estimation을 한적이 있습니다. 제 아이디어는 도형의 특징을 이용하여서 Pose Estimation을 하는 것이였고, 이때 canny Detection을 통해 도형 선들을 추출한다음 contour centroid알고리즘을 사용하여 도형의 중심점을 찾습니다. 그리고 찾은 중심점을 이전프레임과 현재프레임의 비교로 epipoloar line과 카메라 내부 파라미터를 PnP 알고리즘을 통해서 pose estimation을 하였습니다.
    • 그 외에도, Object Detection ALgorithm을 사용하여서 똑같이 바운더리 박스를 생성한다음, contour centroid 알고리즘을 사용하여 도형의 중심점을 찾고, 그리고 찾은 중심점을 이전프레임과 현재프레임의 비교로 epipoloar line과 카메라 내부 파라미터를 PnP 알고리즘을 통해서 pose estimation을 하였습니다.
  13. Radar, lidar, 카메라의 장단점
    • Lidar(레이저 펄스를 이용한) :
    • 장점: FOV가 넓음, 정확함, 전처리 프로세스 필요 없이 환경 인식 가능, 주로 Mapping 및 localization에 많이 쓰임, 백엔드 프로세스 불필
    • 단점: 안개나, 비 환경적 제약이 있음, 근거리 감지 어려움 - Radar(전자기파 주파수를 이용한) :
    • 장점: FOV크기에 따른 단거리(넓으면), 장거리(작으면) 측정 범위, 환경적 제약이 다소 적음(야간에에서 레이더보다 유리), 주파수가 매우 빨라 주로 전방 후방 측면 장애물 감지 및 추정하는데 사용됨, 백엔드 프로세스 불필요
    • 단점 : 물체의 형체에 따라 감지 어려움, 터미널 같은 공간에서 신호 왜곡을 받아 오차가 발생할 수 있음, 물체를 확실히 인식할수 없음. - Camera(2D image를 이용):
    • 장점 : 유일한 2D image, 표지판 및 라인 디텍션 등을 할 수 있음, 전처리 과정(feature-based, intensity-based)을 통해 환경 인지도 할 수 있음(주로 테슬라), 저렴.
    • 단점 : 계산량이 많음, 카메라여서 빛이나 환경 제약에 약함, 정확하지 않음
  14. Radar 원리
    • 전자파 반사되는 신호 기반으로 주변 사물과 거리 속도 방향 추출
    • 대표적으로 FMCW(Frequency-Modulated Continuous Wave)
    • Frequency synthesize(합성)
    • A power Amplifier
    • Antena
    • a mixer
    • 전자기파 방출을 하고 안테나를 통해 받음.
    • FMCW 시간이 점점 지남에 따라 톱니바퀴 파형 및 삼각파형으로 선형으로 변함
    • 디처핑(Dechirping)을 이용해 주파수 대역을 얻음(bit 신호(1,0), 거리정보 포함)
    • 비트신호 대역폭 만큼 샘플링하기 - Detect Object(Radar Cross Section)
    • 고려
      • geometry of Target
      • the direction of the Radar
      • Frequency
      • the material of the Target
    • 주로 Fast fourier Transform을 통해 time domain을 frequency domain으로 바꿔 물체를 감지를 한다.
      • cluster 군집화를 통해 노이즈 데이터 제거
      • peak detection - 최근에는 Synthetic Aperture Radar(SAR):라이더 형태로 포인트클라우들 이용할 수 있다(테슬라가 사용중)
  15. A* 설명
    • Grid-based, Graph-tree 탐색 알고리즘
    • weight(가중치)최소가 되는 지점 우선순위 탐색
    • 휴리스틱으로 통해 최소경로 탐색
    • f(x) = h(x) + g(x)
      • h(x) : 출발 노드로부터 도착 노드까지 가중치
      • g(x) : 노드 n로부터 도착 노드까지 추정 경로 가중치(맨하튼 거리(장애물 무시) - Open list(검색가능성 있는 노드), Closed list(이미 검색이 끝난 집합) 이용하여 노드 관리 - Open List내의 f(x) 가중치 값이 가장 작은 노드부터 탐색
  16. PRM, RRT* 설명
    • RRT
    • Sampling based algorithm으로 configure space에서 랜덤한 위치에 포인트를 생성하고 시작점에서 부터 트리를 신속하게 확장하여 목적지 까지 가는 방법
    • 랜덤 노드 임의로 생성 -> 랜덤 노드로부터 가장 가까중 노드 선택 -> 랜덤 노드와 가장가까운 노드간 방향과 스텝 고려햐여서 새로운 노드 생성-> 노드를 트리에 추가(만약 충돌이 안된다면) - RRT*
    • 트리를 구성하는 기존 노드를 대체하여 최적 경로
    • 랜덤 노드 임의로 지정 -> 랜덤노드로부터 가장 가까운 노드 선택 -> 랜덤 노드와 가장 가까운 노드간 방향과 스텝 고려하여 새로운 노드 생성 -> 새로운 노드와 가까운 노드를 선택-> 가까운 노드 주변 노드의 cost를 탐색하여 낮은 노드와 새로운 노드와 연결 -> 트리 재구성 - PRM
    • 랜덤으로 노드를 생성하고 local planner(knearest neighbors)을 통해 근접 노드간에 연결을 함 -> 충분히 dense 하게 연결이 되었으면, Graph search algorithm으로 start->goal대한 최적화 path 찾음
      • knearest neighbors: 유사한 특성을 가진 데이터는 유사한 범주에 속한다(classification) k의 수만큼 근접 포인터들을 연결한다.
  17. ORB-SLAM2에 대해 설명
    • 총 3개의 Thread로 구성되어있다. Tracking, Local Mapping, Loop Closure. Tracking Process에서 ORB 키포인트들을 생성을 합니다. 그리고 PnP알고리즘을 통해 맵포인트 생성과 카메라 포즈를 구합니다. 만약 맵포인트가 일정 임계값을 넘어가게 되면 키프레임으로 간주를 하여서 맵포인트와 카메라 포즈데이터를 가지고 있는 키프레임을 Local Mapping에다가 넘어가게 됩니다.
    • Local Mapping에 넘어가게 된 keyframe은 BoW을 통해 프레임의 특징을 얻게 되고 이는 Map Database에 저장되게 됩니다. 또한 현재 프레임과 맵데이터베이스에 저장된 프레임과 공유 맵포인트가 있다면, Local BA를통해 맵포인트와 프레임의 위치를 조정합니다.
    • 마지막 Loop Closure에서는 BoW를 통해 만약 현재 이미지의 특징이 맵데이터베이스에 저장된 어떤 프레임과 일치할경우, 이전에 방문한 scene으로 간주하여 loop closure가 이루어 지게 됩니다. 이떄 Full BA를 사용하게 되면서, 공유하고있는 맵포인트의 키프레임들이 조정이 되면서 Map을 이루게 됩니다.
  18. Semantic SLAM(ORB-SLAM2 with yolov3)
    • 동적 물체를 Mapping에 제외하게 되면서 동적환경에서의 SLAM입니다. 주요 특징은, Thread Tracking에서 Feature point가 추출이 될 때 동시에 yolov3를 통해 물체의 boundary box를 생성하게 됩니다. 이때 바운더리 박스 안에 있는 Feature point는 이전 프레임과 현재프레임의 관계를 고려한 consistancy moving object detection(epipoloar라인을 통한 맵포인트의 이전프레임에서 현재프레임의 이동 크기)알고리즘을 통해 Distance를 구하고 일정 임계값을 넘어가게 된다면 동적 물체로 간주하여 mapping에서 outlier시켜버립니다.
  19. Lie group, lie algebra 설명
    • SLAM은 회전과 이동이 포함된 카메라 포즈값을 업데이트하면서 최적의 값을 찾아야 하는데 회전행렬(Rotation Matrix)의 경우 행렬식이 1인 직교행렬이라는 제약조건 때문에 복잡도 증가(singularity)
    • 리군과 리대수로 변환하게 되면 카메라 포스 추정의 문제를 제약이 없는 최적화 문제로 전환하여 접근이 가능
  20. epipolar constraint
    • When two cameras view a 3D scene from two distinct positions, there are a number of geometric relations between the 3D points and their projections onto the 2D images that lead to constraints between the image points.
    • 2개의 프레임에 공유하고 있는 맵포인트들의 기하학적 관계(Epipolar line and point)를 통해 카메라 내부파라미터를 이용하여서 MapPoints(깊이를 구할 수 있따.)를 생성할 수 있다. 생성된 MapPoints들은 PnP같은 매칭 알고리즘을 사용을 하여 카메라 포스를 추정할 수 있다.
  21. relocalization
    • 프레임에 맵포인트가 너무작아 트래킹을 할 수 없는 경우, 특징점 알고리즘이나 Direct Algorithm 으로 추출된 특징점들을 BoW을 이용하여서 이미지 특징점을 만들어 놓는다. 그리고 이것들을 맵데이터베이스에서 비슷한 특징을 가지고 있는 프레임을 이용하여서 Relocalization을 한다.
  22. optical flow(Direct Method)
    • 쓰는이유 1: Feature-based Methods는 특징 추출과 디스크립터 계산에 소요되는 시간이 큼
    • 쓰는이유 2: 특징점 사용하는 경우 특징점을 제외한 나머지 정보 무시
    • 쓰는이유 3: 특징점이 없는 곳에서 맵핑 힘듬
    • Optical Flow : 이미지의 픽셀 모션
    • 시간 경과에 따른 이미지간의 픽셀 이동을 2D image pixel(u,v)설명
      • u,v의 해를 구하는 것이 목표
      • dens optical flow : 모든 픽셀 계산
      • Sparse Optical Flow : 부분픽셀 계산 -> Lucas-knande Optical Flow(LK Optical Flow)
      • 픽셀에 대한 Intensity 추적(LK Optical Flow(밝기를 constant 주어서 변화하는것 위주로 맵핑)) - Direct Method: 카메라 모션 모델
    • Optical Flow로 얻어진 이미지 픽셀에 대한 모션을 카메라 파라미터를 이용하여서 구하는 방법
  23. feature matching and dense matching
    • Feature-based Methods
    • 특징 추출과 디스크립터 계산에 소요되는 시간이 큼
    • 특징점 사용하는 경우 특징점을 제외한 나머지 정보 무시
    • 특징점 없는 곳에서 맵핑이 힘듬 - Dense matching
    • 픽셀에 대한 데이터량이 큼(CPU로 힘듬)
    • 장점으로는 모션블루어에 강함
    • 빠른 모션에 강하고, 특징점 없는 곳에서도 매핑 가능
    • 정확함
    • 리얼타임으로 쓰려면 빠른 컴퓨팅 프로세서 요구
  24. Bundle AdjustMent 설명
    • 여러 맵포인트를 공유하고 있는 키프레임들을 이용하여서 Least Square를 통해 MapPoints와 포즈를 최적화 시키는 방법. BA를 할때 공유하고 있는 모든 맵포인트를 공유하게 된다면 계산량이 많아 짐으로 RANSAC알고리즘을 통해 랜덤으로 맵포인트를 정하고 그 맵포인트를 각 프레임에 reprojection을 하고 Least Square을통해 최적화를 시킨다.
  25. Hamilton matrix
    • Conjugate of Matrix(켤레 전치)를 해도 항상 같다.
    • eigenvalues가 항상 real이기 때문에, diagonalizable하다.
    • 즉 실제의 eigenvector와 eigenvalues를 구할수있어 문제를 푸는데 도움이 된다.(로봇에서 예를 들어 x,y같은 변수의 값을 찾는 것)
  26. Quaternion 을 사용하는 이유
    • 행렬대신 사용하는 4개로 이루어진 복소수로 행렬에 비해 연산속도가 빠르며 차지하는 메모리속도가 낮다. 또한 최단호(shortest arc)보간으로 오류 발생률이 적다
    • 회전행렬은 1인 직교행렬이라는 제약 조건에 따라 최적화 문제 복잡도 증가
    • 회전행렬은 3DOF를 표현하기 위해 9개 값을 사용하는 중복성 존재
    • 오일러 각에서는 특정 상황에서 1자유도를 잃어버리는 짐벌락(gimbal rock)
    • 보간과 반복에 적합하지 않아 주로 결과의 신속한 가시화를 위해 사용
  27. 최적화 수업에서 무엇을 배웠는지
    • 비선형 문제를 선형 근대화 시켜서 푸는 문제(Tayor series), 그리고 최적화 시켜서 푸는 문제 Decent Gradient 및 Least Sqaure, LM 등.
  28. DSO, ORB-SLAM2 중 왜 DSO가 rotation에 약한지
    • Relocalization 이 없기 때문이다, 즉 ORB-SLAM2는 Relocalization 모듈이 있어 피쳐가 부족한 프레임일 경우 BoW를 통해 맵데이터베이스의 유사 프레임을 이용하여서 포스를 트래킹하는 반면에 DSO이런 모듈이 없기 때문에 로스트하기가 쉽다.
    • 모션 blur에 약하다, 그리고 빠르게 전환하는것에 약하다.
  29. least square 설명
    • Lidar SLAM - Iterative Closest Point(ICP)
    • (1)포인트를 샘플링
    • 샘플링된 포인트 근처 실제 포인트 탐색(매칭)
    • 샘플링된 포인트과 선택된 근처 포인트의 질이 나쁜 포인트 쌍은 제거(차이가 너무 난다는지)
    • 매칭된 포인트들에 가중치를 구하고, least square을 통해 최적의 Transformation(R,t) 구함
    • 최적화된 포인트들로 업데이트(2번으로 넘어감) - Visual SLAM - Bundle Adjustment(BA) - 현재 로봇 센서 값과 예상 값에 대한 오차를 줄이는 방법 (실제 센서값과 예상 센서값 차이 최소화)
  30. Visual SLAM과 Lidar SLAM의 장점
    • Lidar SLAM : 높은 정확도, 단일 센서로 뎁스 추정 가능
    • Visual SLAM : 저렴한 가격, 센서의 보급, 빠른 처리 속도
    • 단점 : 긴 이미지 전처리 과정, 빠른움직임에대해 취약, 뎁스 추정 불간으
  31. RANSAC설명
    • 수많은 데이터중 랜덤으로 추출하여서 낮은 에러가 나올때 까지 parameter estimation을 진행을 하면서 outlier제거 가능.
  32. Feature-based SLAM의 문제점
    • Density하지 못함(Sparse Information), 이말은 특징이 적은 프레임일 경우 맵핑을 할 수가 없음.
    • 특징점 뽑는데 계산량이 많음
  33. Direct SLAM의 문제점
    • pixel의 광계를 사용하여서 특징점 추출하다보니 계산량이 많음.
    • 장점으로는 카메라 속도가 빠르면 알고리즘이 빨리 끝남, 정확함, Motion Blur에 강인함
  34. VIO 어려운 점
    • frequency가 다름, IMU매우 빠름(데이타 얼라인이 필요함(initialise))
    • IMU 값이 항상 튀기 때문에
  35. 로봇의 자율주행과 차량 자율주행 차이
    • 로봇은 비교적 사람이 이용하는 공간에 주행하게 되는데, 주로 실내 호텔 서비스나 배달 서비스등 비교적 동적인 환경에서 사용이 됨으로, 동적 물체에 대한 감지 및 주행에 지장이 되지 않는 로직이 필요합니다. 반면에 차량같은 경우 도로나 골목등에 사용하게 되는데, 사고가 나면 인적 피해가 일어날 수 있으므로, 최대한 인적피해가 나지 않도록, 더 세밀한 시스템이 필요합니다.
  36. 자율주행 센서가 어떻게 사용되고 있는지
    • 라이다와 레이더, 카메라 센서등이 있습니다. 주로 맵핑과 로컬라이제이션에는 라이다를 사용하여 광범위의 정확한 환경 인지를 하고, 레이더는 전방이나 후방 측면의 물체들을 감지, 상태 추정하는데 사용됩니다. 그리고 카메라 센서같은 경우 표지판이나 라인 디텍터를 이용하는데 쓰입니다.
    • 요즘 추세에는 레이더를 이용하여 매핑과 로컬리제이션을 하는경우가 있고, 카메라 센서를 이용한 전처리과정을 통해 매핑과 로컬리제이션 그리고 물체 감지등을 하고 있습니다.
  37. 학교에서 배운 내용 중 센서 퓨전하는데 도움이 되었던 과목
    • Matrix Theory와 Optimization Method입니다. 행렬은 homogous matrix 및 jacobian matrix, 행렬 변환에 대해서 이해를 하는데 도와 줬으며, Optimization Method같은 경우 비선형 문제를 선형화 해서 푸는 방법(tayor 1st series) 그리고 Gradient나 Least Square방법으로 에러를 최소화하여 문제를 최적화 하는 방법등이 SLAM시스템 이해하는데 도움을 줬으며 Extended Kalman Filter를 이해하는데 도움이 되었습니다.
  38. Lidar 사용해본 경험? RGB-D카메라랑의 차이점
    • 실제로 라이다를 사용해본 적은 없다. 그러나 카메라 센서와 라이다 센서의 차이점은 아마 전처리과정이 있을 것이다. 라이다 센서 같은 경우에는 레이저 펄스를 이용한 환경인지이기 때문에 범위가 넓고 전처리과정이 없이 바로 환경을 인지할 수 있다. 반면에 카메라는 2D이미지이기 때문에 환경을 인지하려면 특징점을 이용한 feature-based나 픽셀간 밝기를 이용한 intensity based 방법을 사용하여서 환경을 인지를 하고 공간적 데이터를 얻으려면 카메라 내부파라미터를 이용한 PnP알고리즘을 통해 공간에 대한 환경 인지를 할 수 있다.
  39. 중국, 미국, 한국 자율주행 미래
    • 아무래도 미국이 가장 앞서갈고 갈고 그다음이 중국일거 같다. 자율주행에 있어 중요한 요소가 센서 기술와 IT기술, 그리고 지형이다. 미국은 세계 최고의 IT기술과 센서, 그리고 다양한 지형을 갖추고 있다. 중국같은 경우에도 요즘 세계 최고의 IT기술과 가성비 좋은 세서들이 있으며, 다양한 지형을 갖추고 있다. 반면에 한국 같은 경우 좋은 It기술을 갖고 있고, 좋은 센서들을 가지고 있지만, 한정된 지형을 가지고 있어, 자율주행의 다양한 데이터를 얻는데 한계가 있다.
  40. 개발을 하면서 힘들었던 점
    • ROS프레임 워크를 배우는데 어려웠고, SLAM도 스스로 배우다 보니 어려웠다.
  41. 혼자 프로젝트하였는가
    • 데이터 퓨전은 혼자하였고, 그 이외 integration 하는 것은 동료들과 함께 했다.
  42. 프로젝트하면서 어려웠던 점
    • ROS 프래임 워크를 배우는데 어려웠고, SLAM도 스스로 배우다 보니 어려웠다.
  43. RAM메모리 주소에서 프로세스로 데이터 전송 어떻게 되는지
    • 프로세스 명령어로 부터 데이터버스, 제어 버스(명령어), 주소버스가 프로세서 안으로 데이터가 들어오 게된다 들어오게 되고 계산 끝나고 나서 데이터는 다시 데이터버스 주소버스 제어버스를 통해 램으로 저장하게 된다.
  44. 병렬 프로세싱
    • Thread를 이용하여서 할 수 있다.
  45. 머신러닝 개발 경험 있다면 무엇을 개발했는지
    • sicik learn을 이용하여서 Linear Regression을 통한 미래에 대한 아보카도 가격을 추정하였습니다. 그 외에도 텐서플로우를 이용하여서 CNN을 통한 Object Recognition을 하였습니다.
  46. PID Control 설명
    • setpoint와 모델의 출력 output의 오차를 feedback하여 setpoint에 도달하게 끔 도와주는 컨트롤러 이다.
    • Proportional은 오차의 값을 증폭시키고 setpoint근접하게 도와주지면 steady-state 문제가 있다.(error가 작아 setpoint에 도달하지 못하고 계속 일정 state에 머무는 것)
    • 이를 integration 함수를 추가하여 steady-state error을 제거하고
    • differential 함수를 사용하여서 갑자기 변화하는 state에 대한 overfit현상을 잡는다.
  47. djaskar 설명
    • 한노드 기준으로 모든 노드 탐색
    • BFS(모든 탐색점 Traversal)
    • O(n^3)
  48. 드론과 모바일로봇 차이
    • 아무래도 자유도 차이가 있을것 같다. 드론은 6DOF, 모바일로봇은 3DOF

Comment  Read more

PTC Virtual Application Engineer 면접 후기(20년 12월)

|

헤드 헌터로 부터 이직에 관심이 있는지 연락이 왔다. 한참 직장을 찾고 있는 시기였기에, 관심이 있다고 하였고, 얼마 지나지 않아 PTC 인사담당자로부터 전화 연락이 왔다. 회사 소개와 함께 직무에 대해서 설명을 해주었다. 이 당시 느낌상 엔지니어보다, 비지니스를 해야되는 즉 한국과 중국을 영업하거나 지원할 수 있는 직무를 뽑는 느낌이였다. 취업에 대한 자신감이 없었던 상태였기 때문에 면접을 보기로 하였고, 이력서를 보내었고, 그날 저녁 7시에 면접이 진행되었다.

1차 면접

화상 면접이였다.

상해 지사와 한국 지사 매니저 분들이 참석을 하였고 질문의 난이도는 쉬웠다.(거의 알바수준의 면접)

  • 자기소개
  • 졸업논문소개
  • 상해에서 일하게 되면 중국어를 잘해야되는데 그부분이 걱정이 된다
    • 현재 Midea에서도 중국어로 일하고 있다. 일하는데 있어 크게 문제가 되지 않을 것이라고 답변
  • 연봉은 얼마정도 생각하는지
  • 현재 다른 회사 면접보고 있는지
  • 고영테크놀러지에서 어떤 일을 하였는지
    • Technical support 엔지니어로 문제가 생겼을경우 SW, HW 지원을 하였습니다.
  • 자바스크립트 할줄 아는지
  • CAD프로그램 다뤄본적이 있는지
  • 일을 한다면 중국에서 최소 7년은 일할 사람을 뽑고 있는데 할 수 있는지
    • 중국에서 취업을 하려고 노력하고 있다. 그렇기 떄문에 괜찮다.

질문의 난이도가 비교적 쉬웠고, 느낌상 빨리 뽑고 싶어하는 분위기였다. 면접은 중국어와 한국어로 하였다. 이 때 연봉은 월 중국돈 1.6 만원(한국돈 271만) 얘기를 해주셨다.

2차 면접

한국 지사의 이사님과 면접을 보았다.

  • PTC에 대해 아시는지
    • 면접 보기 전까지는 몰랐다. 근데 크레오 만드는 회사라는 것을 보고 관심을 갖게 되었다. 그 밖에도 PLM이나 IoT, AR솔루션을 만드는 회사로 알고 있다.
  • PLM에 대해 설명 해보세요
    • Product Life Management로 제품을 관리를 하는 시스템이다.
  • PLM을 쓴다면 회사에서 어떤 점이 좋을까요
    • 우선 체계적으로 제품을 관리할 수 있습니다. 또한 회사 입장에서 신제품 개발이나 이전 제품을 관리해야되는데, 부분적으로 관리할 수 있도록 효율적으로 도와주기 떄문에 경쟁력 있는 제품을 만들 수 있습니다.
  • SolidWorks의 단점이 무엇인가요
    • 제품의 파라미터가 많습니다. 소프트웨어 자체가 무겁습니다. 이용하기는 쉽지만, 세밀한 작업을 하기에 어렵습니다.
  • PTC에 오시게 되면 현재 연구하고 계시는 것과 다른 방향으로 가시게 되는데 상관 없으신건가요?
    • IoT와 AR에 관심이 많기 때문에 괜찮습니다.
  • PLM을 배우셔도 상관 없다는 말씀이신건가요?

다소 한국식 면접이였다. 그러나 이사님께서 편하게 대해주셔서 긴장하지 않고 대답을 생각대로 잘 했던것 같다. 대체적으로 면접의 느낌보다, 회사가 하고 있는 것 그리고 업계의 제품군에 대한 이해를 면접 보았던것 같다.

3차 면접

3차 면접은 오프라인 면접과 동시에 온라인 면접이였다. 무엇이냐면, 직접 루자주이에 있는 지사에 찾아가 아시아 디렉터와 상해 디렉터, 본사 디렉터와 면접을 보러 갔었다. 아시아 디렉터 분은 인도 분이셨고, 본사 디렉터는 미국분이셨다. 면접 전에 간단하게 얘기를 하면서 긴장을 푸는 시간을 가졌으며, 면접에 들어갔다.

  • 자기소개
    • i love to design robot and programming, that’s why i naturally studied mechanical enginnering. now i’m working at Midea Group for internship, what i do here is to test Visual SLAM algorithms on mobile robot and integrated VSLAM into Mobile robot.
  • 졸업 작품에 대해서 소개
    • my thesis is based on Semantic SLAM applications to implement an autonomous exploration and navigation system for mobile robots. what application i used is ORB-SLAM2 with Yolov3, which is efficiency on a dynamic environments. but our system is camera sensor based, it has an error at mapping and localization. therefore, i fuse Visual odometer with wheel odometer in Extended kalman filter for optimized localization. and i also design algorithms such as Motion Planning, Object Avoidance, Frontier-point detection, Motion Control.
  • 미래가 무엇인가요, 무엇을 하고 싶으세요?
    • i want to be a project manager or product specialist in the future. and in the end, i want to build my own company, run business. therefore, i will keep studying on new technology as side project.
  • 우리는 비지니스를 하려는 사람 뽑는다. 너가 이 회사에 오는 순간 비지니스맨이 된다. 그래도 괜찮나
    • as i said, i want to run my own company in the future. therefore, this job is kind of good choice for me. and i will keep studying my own things, i means research and coding.
  • 마지막으로 하고 싶은 말은?
    • i want to ask, if you were back to the last year, and you need to hire an employee same as at this time. i want to know is there someone exceed your expectation when you hired last year? what did he do, and what did it make you think exceed your expectation.
      • 답변: 우리는 열정이 있는 사람을 좋아한다. 작년에 컬트라고 아시아 지사에 새로운 사람을 뽑았는데, 일을 너무 잘했다. 그래서 연봉 상승률도 10%올려줬다. 우리는 열정과 책임있는 사람을 좋아한다.

약 한 시간 넘게 많은 얘기를 하였으나 사실 오래된 일이라 기억이 나지 않는다. 한국에 지사가 있으니 중국에서 기술을 잘배워 한국에서 기술영업을 했으면 좋겠다라는 얘기를 하였다.(일본에서 채용한 한국인이 2년 일본에 일하고 한국가서 일하는 케이스를 말하였다.) 회사에서 생각한 나의 역활과 커리어는 중국과 한국 고객을 데모, 컨설팅 지원을 동시하는것을 원하였고, 경험이 충분히 쌓였을때, 한국에 넘어가 기술영업 하는 것을 생각하고 있었다. 또한 일을 잘하면 보너스로 회사 주식을 준다고 하더라.

연봉 협상

offer를 받았다. 근데 생각보다 돈이 너무 적었다. 210만원(3500만원). 내가 옛날에 고영에서 다녔던 돈보다 작았다(4000만원). 이 점을 인사담당자에게 말하였고, 거절하였다. 그러다보니 연봉을 240만원(4100만원))까지 올려주고 추가적으로 월 1000씩 더준다고 하였다. 즉 약 4300만원 되었다. 또한 스톱옵션으로 6개월중 가장 저렴했던 가격의 85%가격으로 매월 월급에 10퍼센트씩 살수있는 제도가 있다고 한다. 이것을 한다면 대략 4500정도 될거 같다. 또한 일을 열심히 하면 보너스로 회사 주식을 산다고 하니 사실 많이 받는 가격이다. 연봉협상하면서 느낀점은, 본인의 능력을 잘 어필하고, 현재 처한 상황을 거짓없이 잘 설명하고, 원하는 금액을 불른다면 대부분 원하는 연봉에 얻을 수 있다라는 생각이 들었다.

미래 걱정

우선 근로계약서에 서명은 하였다. 그러나 아직도 고민이다. 내가 기술영업을 해야되는건지 아니면 연구개발로 가야되는건지. 내가 생각해도 나는 중국어와 영어를 할 줄 아니까 거기다 공학을 전공하면서 공학에 관련된 비지니스가 장점이라고 생각이 든다. 그치만, 기술영업은 사실 연구개발과 별개로 심화적인 기술이 필요 없기 때문에, 진입장벽이 낮다. 그리고 연구개발에서 기술영업으로 가는것은 쉬워도 기술영업에서 연구개발로 가는 것은 누가 생각해도 어렵다. 또한 결국 기술영업을 하게 된다면, 나중에 한국에서 계속 살아야한다. 한국 회사 대상으로 영업을 하기 때문에 해외에서의 기회가 더 적어진다.(그치만 많은 돈을 벌 수 있고, 또 한국에서는 이직이 잘 될 것이다.). 연구개발을 택하게 된다면, 아마 내 장점인 중국어나 영어를 포기해야 될 수 도 있다. 더 연구적인 것에 몰두해야되다 보니 컴퓨터를 상대하는 일이 많을 것이고, 회사의 하나의 부품이 될것이다. 즉, 아까 말한 project manager나 product specialist가 되기까지 고단할 것이다.(힘들 것이다.). 아직까지도 잘 모르겠다. 사실 기술영업으로 평생 살거면 초반에 시작하는것도 나쁘지 않고, 더 많은 길을 탐색하고 싶으면 연구개발이 나은것 같다. 현재까지 결론은 : 한국에 살거나 나에게 적합한일(기술영업), 좀더 도전적인 삶을 살고 싶으면(연구개발)

어떤 것이 내가 하고 싶은일이고 어떤 것이 더 가치 있는 일인지 빨리 판단해야 되는 시기인것 같다.

Comment  Read more