일지
개인일지 12.09
연 수
2024. 12. 9. 22:13
반응형
수습 기간 평가 관련
- 2달 동안 과제 선정해서 만들고 평가 받기 (미정)
- Isaac GYM 관련 강화학습 (go2)
- Local Path Planning
- 현대중공업 과제 준비
To Do List
- 업무
- 교육 프로젝트 준비
- 버넥트 출장 (12/10 - 11시)
- 현대중공업 과제 준비
- ID Card 인식 및 Tracking 기술 리서치
- YOLOv11 -> tracker 기능 확인
- YOLOv11 세팅 완료 / Tracker - 동영상 재생해서 확인 진행
- 웹캠이 없어서 확인 x
- ReID(Re-identification) 기능 추가 목표 (bot-sort 확인 / bytetrack 진행)
- 라이센스 이슈 -> 새롭게 개발...
- YOLOv11 세팅 완료 / Tracker - 동영상 재생해서 확인 진행
- YOLOv11 -> tracker 기능 확인
- ID Card 인식 및 Tracking 기술 리서치
- Simulationi + RL
- GO 2 모델 시뮬레이션에 띄우기 -> train - play 실행 완료
- 나만의 환경에서 GO 2 모델 띄워서 움직이기 (cmd_vel) -> 완료
- SLAM
- Global Path / Local Path / Costmap
- Global Path : 로봇이 환경 내에서 목적지로 이동하기 위한 전체 경로
- Local Path : 로봇이 실제로 이동하면서 주변 상황을 반영해 즉각적으로 업데이트 되는 경로
- Cost Map : 로봇이 환경을 인식하고 경로를 계획하는데 중요한 역할
특정 지역의 비용(비용 값을 표현하여 로봇이 그 지역을 통과하는 데 걸리는 어려움이나 위험도를 나타냄)- 경로 계획 : 로봇이 목표 지점까지 가장 적은 비용으로 이동할 수 있는 경로를 계산
- 장애물 회피 : 실시간으로 로봇 주변의 장애물을 탐지하고 회피
- PointCloud의 균일성 고려
- 3D / 2.5D (개념 공부 - 계층적 / level 구분하여 진행)
- https://www.mdpi.com/2072-4292/13/24/5066
- 2.5 D는 2D 맵 형태를 유지하면서 높이 정보도 포함
- 도로의 경사나 장애물의 높이를 고려
- Graph SLAM: 로봇이 환경을 탐색하는 동안 자신의 위치를 추정하고 환경 지도르르 구축할 때, 그래프 구조로 위치와 관측 데이터를 모델링 -> 논문에서는 LiDAR 사용
- Global Path / Local Path / Costmap
- Navigation - Path Planing
- Global Path Planning (Local Path Planning 먼저 진행하기)
- Locl Path Planing -> Test Simulation 진행해보기
- Jetson 기준으로 돌릴 수 있는 모델 - 모바일 로봇, 자동차, 4족 보행 (상관 없음)
- output : cmd_vel 나오기
- RGB, IMU, LiDAR (현재는 IMU, LiDAR 위주)
- Fast - LIO2
- Point LIO
- LIO - SAM
- 빠르게 구현할 수 있는 거 찾아서 진행
- LIO - SAM 적용 / 로봇 움직임 -> slam 이 잘되는지 확인해봐야함.
- 빠르게 구현할 수 있는 거 찾아서 진행
- 휠이라도 오도메트리 자동으로 계산해서 local planner test만 할 수 있는 것도 고려
- 가제보에 해당 api가 존재하는지 확인
- go2 오도메트리 자동으로 계산해주는게 있는지 확인
- Deep Learning + SLAM : droid slam
- Vision Model 준비
- Defect Detection : Crack , IR, Rust ...
- Anomaly Detetction : Human behavior
- https://yeonsoo98.tistory.com/4 -> 꾸준히 찾기
- Object Detection 처럼 바운딩 박스 찾기
- Traversability : 이동체(예: 로봇, 차량)가 특정 지형이나 경로를 안전하고 효율적으로 이동할 수 있는 능력
- 공부
- 로봇 기초
- SLAM & Navigation (2D - 3D - LIO SAM & VIO SAM) -> Odom 을 잘 구하자!
- Odometry : 이동 로봇이 자신의 위치(postion)와 자세(orientation)를 추정하는 기법
- Odometry는 주로 로봇의 이동 속도와 방향 데이터를 바탕으로 시간에 따라 이동 경로를 계산
- 위치 (x,y,z) : 로봇의 3차원 공간에서의 위치
- 자세 (Yaw, Pitch, Roll) : 공간에서 로봇이 어떻게 회전했는지 표현 (Rad & Degrees)
- Yaw : 로봇이 z축(위 아래 축)을 기준으로 회전한 각도
- 로봇이 왼쪽으로 돌거나 오른쪽으로 돌 때
- Pitch : 로봇이 y축(좌우 축)을 기준을 회전한 각도
- 로봇이 앞뒤로 기울어질 때
- Roll : 로봇이 x축(전후 축)을 기준으로 회전한 각도
- 로봇이 한쪽으로 기울어 질때
- 자세 데이터를 표현하는 또 다른 표현으로 쿼터니언 사용 (Quaternion)
- 4차원 벡터로 이루어져 있으며, 자세를 나타내는 데 흔히 사용되는, Yaw, Pitch, Roll의 Gimbal Lock 문제(특정 각도에서 회전이 올바르게 계산되지 않는 문제)를 해결하기 위해 사용
- 3축이 종속적 (z축이 회전하면, x,y도 회전)
- 4차원 벡터로 이루어져 있으며, 자세를 나타내는 데 흔히 사용되는, Yaw, Pitch, Roll의 Gimbal Lock 문제(특정 각도에서 회전이 올바르게 계산되지 않는 문제)를 해결하기 위해 사용
- Yaw : 로봇이 z축(위 아래 축)을 기준으로 회전한 각도
- Odometry의 계산 : 오도메트리는 로봇의 속도와 시간 정보를 사용하여 변화된 위치와 자세를 계산
- ROS 에서는 nav_msgs/Odometry 메세지 형태로 제공
- Pose (위치와 자세 : x, y, z + quaternion)
- Twist (속도와 각속도 : 선형속도 + 각속도)
- Odometry 의 한계와 보완
- 휠 슬립(whell slip)이나 센서 오차로 인해 누적 오차(cumulative error)가 발생
- 보완 : 관성센서 (IMU), GPS, LiDAR, 카메라 등을 결합한 센서 융합 기법 사용
- ROS 에서는 nav_msgs/Odometry 메세지 형태로 제공
- TF(Transform Library) - (World -> Map -> Odom -> Base)
- 로봇의 여러 부품(프레임) 간 위치와 자세 관계를 동적으로 추적하고 관리하는 데 사용
- 3D 공간에서의 좌표 변환과 관련된 계산을 자동화하여 개발자들이 복잡한 수식을 걱정하지 않고 로봇 개발에 집중 가능
- TF의 역할 : 로봇의 각 부품 간 좌표 변환(Transform)을 추적하며, 시간에 따라 변하는 데이터를 효율적으로 처리
- 로봇의 특정 센서나 부품의 위치와 자세를 기준 좌표계에서 표현하거나, 다른 좌표게로 변환하는 데 사용
- TF는 좌표계(frames)와 변환(transform)의 관계를 다룸
- Frame : 3d 공간에서의 좌표계 -> 각 프레임은 로봇의 특정 부품(센서, 관절, 링크 등)을 기준으로 정의
- Transform : 한 프레임에서 다른 프렝미으로 변환
- Transform Tree : 로봇의 모든 프레임과 변환 관계를 트리 구조로 표현
- IMU :물체의 가속도, 각속도, 자기장을 측정하는 센서
- 센서 구성
- 각속도계(Accelerometer) : 선형 각속도 측정 (중력 방향과 로봇의 가속 운동 감지)
- 자이로스코프(Gyroscope) : 각속도 측정 (Roll, Pitch, Yaw) 축의 회전 속도 감지
- 자기계(Magentometer) : 지구 자기장을 측정하여 바향을 보정 (나침반처럼 사용, 초기 방향 설정이나 드리프트 보정)
- 데이터 제공
- 가속도(Acceleration), 각속도(Angular Velocity), 자기장(Magnetic Field)
- IMU 활용
- 자세 추정 (Orientation Estimation)
- 속도 및 위치 추정
- 동작 제어 및 안정화
- IMU 문제점
- 노이즈 : 센서 측정값에 포함된 잡음
- 드리프트(Drift) : 자이로스코프 데이터의 누적 오차로 인해 시간이 지날수록 잘못된 값을 계산
- 가속도계의 중력 영향 : 가속도계는 중력과 가속도를 함께 측정하므로 정확한 움직임을 계산하기 어려움
- IMU 보정 및 필터링 기법
- 칼만 필터(Kalman Filter) : 측정값(센서 데이터)과 예측값(모델 기반)을 결합해 최적의 상태를 추정
- IMU 데이터와 다른 센서 결합 -> 선형 시스템에서 매우 효과적
- 확장 칼만 필터(Extended Kalman Filter, EKF) : 칼만 필터를 비선형 시스템에 적용
- 비선형 모델의 상태를 추정
- 비율-합 필터(Complementary Filter) :자이로스코프와 각속도계 데이터를 주파수 대역에 따라 결합
- 고주파수 : 자이로스코프 데이터 사용
- 저주파수 : 가속도계 데이터 사용
- 계산량이 적고 실시간 성능이 우수
- 마드윅 필터(Madgwick Filter) : 경량화된 필터로, 가속도계, 자이로스코프, 자기계를 융합
- 계산량이 적어 임베디드 시스템에 효과적
- 자기계 데이터를 포함하여 Yaw를 보정
- 마힐톤 필터(Mahony Filter) : 회전 행렬과 쿼텉니언을 활용한 필터
- 자세 추정에 적합하며 실시간 구현 가능
- 칼만 필터(Kalman Filter) : 측정값(센서 데이터)과 예측값(모델 기반)을 결합해 최적의 상태를 추정
- IMU는 단독으로 사용될 때 누적 오차가 발생하기 때문에 다른 센서와 결합하여 보완
- 센서 구성
- SLAM & Navigation (2D - 3D - LIO SAM & VIO SAM) -> Odom 을 잘 구하자!
- 로봇 기초
- TBC ...
- Deep Mimic 논문 읽어보기 -> RL 기본 & 로봇 도메인의 중요성
- 터틀봇 STL -> TF 짜보기 추천
- 제어 개념 (Differential Drive) & Pid 제어
- 4족 보행 -> 무게 중심 개념 -> COM 제어 (비선형 제어)
- Dream Walk -> RL 기반 (로봇 정보 학습하여 4족보행 제어)
- Sim to Real / zero shot & few shot
- 4족 보행 -> 무게 중심 개념 -> COM 제어 (비선형 제어)
- Python
- AI
- RL
- Transformer
반응형