2026년 3월 18일 수요일

일본어 전문서적을 읽는 날이 오다니~~~

 해외 서적 배송은 오래 걸리네. 거의 3주, 약 한 달이 소요된듯


일본어 전문서적을 보는 날이 오다니 ㅋㅋㅋ

그나마 AI 툴의 발전으로 필요한 건 찍어서 번역하면 되니,  기술 발전에 감사를~


조금 살펴본 느낌으로는   초보자에게 꽤나 좋은 SLAM 입문 책이라는 생각이 든다.

 - 이거저거 주워 듣거나 한게 있어서 완전 생초짜는 아니지만,  그럼에도 불구하고 매우 내용이 친절하다.   전문가보다는 정말 입문자에게는 도움이 많이 될 듯.


이런 세세한 부분은 확실히 일본의 장점이 출판업계에도 반영이 되는 것 같다.  (zero 딥러닝 시리즈도 그렇고..)

 - Visual SLAM 한국어판도 보고 있는데, 번역 퀄리티가 별로던데,  많이 아쉽다...


SLAM 입문책 열심히 공부해서 LittleSLAM 코드까지 완벽 마스터를 시작으로  SLAM 초보를 벗어나야지.   속도를 올려서 빠르게 완주하고 visual slam 으로 넘어가야겠다.


2026년 3월 2일 월요일

SLAM Study (결국 이 짓까지 하는구나 ㅋㅋㅋ)

 

로보틱스 역량 강화를 위해서 SLAM 에 대한 이해가 필요하다.

문제는 SLAM 이 생초보에게는 접근해서 이해하기에 진입장벽이 꽤 있다는 점이다. (나는 그렇게 생각함)

Localization 이나 mapping,  단골 손님인 칼만 필터 같은 개별적인 건 그냥저냥 이해를 하겠는데,  이게 합쳐진 전체 SLAM 시스템 측면에서 이해할려고 하면 독학이 매우 쉽지 않는 것 같다.


개인적으로 대충~~~  아는 것은  아는게 아니라고 생각한다.  일정 수준이 될려면 이론 + 경험 or 직접 시스템을 구현할 수 있는 역량을 갖고 있어야  하지 않을까 싶다. (이정도면 결국 전문가 부근의 어느 선에 근접한 것 같은데 ;;)   SLAM 이 특히 이 부분에서 어려운 점이 많은 것 같다.  결국 어떤 식으로든 (시뮬이던 뭐든) SW 로 구현까지 해봐야 하는데,  간단하지 않는 듯....     관련 지식을 끌어 모아서 이해하는 것도 쉬운 일이 아니고....

암튼 미래를 위해서라도 SLAM 을 일정 수준 끌어올리는 것이 올해의 목표이니, 목표 달성을 위해서 올해도 노력을~~~


밑바닥부터 시작하는 딥러닝  시리즈도 그렇고,  일본이   친절한(?),  파고드는 (?) 부분 등에서는 확실히 일본 특유의 강점이 있는 것 같다.   영어 이외의 전공 서적은 사본적이 없는데,  큰 맘 먹고 일본어 서적을 구매하는 날이 오다니....ㅠ.ㅠ

책 내용 전체를 본적은 없지만,  SLAM 내재화를 하는데  매우 핵심적인 역할을 해줄거라고 기대하면서  조금 고민을 하다가 질러버렸다...( 배송이 왜 이리 오래 걸리는 건지 ㅡㅡ;;;)

요즘은 AI 툴이 더 좋아졌으니, 일본어 서적 이해하는데 큰 어려움은 없을 것 같다. ( 시간은 금이므로,  AI 툴로 번역시켜서 읽을거야 ㅋㅋㅋ)

아직 책을 받아보지 못해서  최종 평가는 못하겠지만,  SLAM 입문자에게 매우 매우 도움이 될 책일 것이라 생각한다.  (이걸 디딤돌로 쓰고,  이해도가 쌓이면   유명 논문 등을 정복해나가야겠지만;;;)


SLAM入門 --ロボットの自己位置推定と地図構築の技術


우선 저자에게 감사 인사를....   귀중한 지식과 자료를 후학을 위해서 남겨두는 것은 칭찬 받아 마땅하다 ~~ㅎㅎㅎ

비고 : 저 책을 사야겠다고 마음 먹은 계기는  오픈소스 LittleSLAM (https://github.com/furo-org/LittleSLAM) 때문이긴 하다.  소스코드를 분석할려니 관련 서적을 보는게 가장 효율적일 듯...  진정한 SLAM 세계로 진입해서 추후에 잘 써먹을 수 있는 날이 올 것이라 기대하며 열심히 씹고 즐기고 맛볼것이다  (새로운 도메인에 진입 및 적응은 언제나 쉽지 않아..)

2024년 7월 21일 일요일

Julia + MuJoCo 기반으로 UR5e 제어 시뮬레이션 환경 구축~~

 

Julia 아마도 내 생애 마지막으로 배우는 프로그래밍 언어가 되지 않을까 싶다.  주력 언어의 마스터에 집중을 해야 하는데~~


인터프리터 언어이면서, C 만큼 빠르다고 하여  요즘  파파박  공부중인 Julia

  • 막코더 입장에서도 Julia 는 오묘하네~
  • OOP 랑은 좀 다른거 같고, C 같으면서도 상속 개념은 있고 ㅋㅋㅋ
  • 막코더도 요즘은 OOP 에 익숙해져가고 있는데,  Class 개념이 없으니  흠..흠...어색하네~~
  • 이게 요즘 최신형 언어 스톼일인가...  여러 언어를 접한 경험이 Julia 이해에 도움이 되기도 하고, 방해가 되기도 하고 ㅋㅋ
과연 Julia 가 내 주력 (최소한 프로토타이핑용) 언어가 될 수 있을것인가,  내 판단이 틀리지 않아야 하는데~~


Julia 용 MuJoCo.jl  이 있길래 이걸 기반으로 MuJoCo 의 simulate.cc  기능에서 필요한 부분만 Julia 로 재구성 중~~
  • Julia 초짜로 이짓을 하고 있다 보니,  중간 중간  괜한 짓을 했나라는 생각도 들고, 포기하고 싶어지는 순간이 오기도 하고~~
  • C/C++ 이나 파이썬은 MuJoCo 에서 공식 지원을 하고 있는데,  Julia 초짜로  괜히 고생을 사서 하는 느낌이 드는데...
  • MuJoCo.jl  이 있어서  그나마  꾸역꾸역 할 수 있네... MuJoCo.jl  만세~~~  계속 업데이트 해주길~~

아~ 힘들었다.   Julia 초짜로  막 코딩하면서   simulate.cc  의   화면 조작과  select point 까지는 어찌저찌  구현이 되었네....
  • 막혀서 포기하고 싶었지만, 여기까지 온 나에게 칭찬을...정신승리로다~
  • 이게 Julia 코딩 스타일이 맞나 ㅋㅋㅋ   Julia 공부하면서 조금씩 개선해나가야겠다~
  • 물리 연산 부분은 별로 스레드로 분리를 해야 하는데,,,  도전~~~!!!!

이제부터 시작인데,  힘들어서  천천히 해야겠다.   Julia 실력을 더 키워야 하는데,,  Julia 비기너에게  C 언어를 넘나들어야 하는 상태는 헬 난이도긴 하네~~

이제 제어 로직을 장착을 시키면서  공부 겸  여러가지를
해봐야 하는데 ~~~여기부터가 관건이네~~


< 삽질의 결정체...   Julia 부디 내 노력과 정성의 빛을 볼 수 있기를~~ >






2024년 4월 7일 일요일

로봇팔 강화학습(DRL) (mujoco) github study

 

아래 github 코드를 스터디해보자~~

https://github.com/PaulDanielML/MuJoCo_RL_UR5

2024년 1월 28일 일요일

[낙서장][강화학습] A3C : Pytorch 로 왜 안되지 ㅋㅋㅋ


 

예전엔 tensorflow 가 좋아보였는데, 요즘은 왠지 pytorch 가 대세가 된 것 같아보임.

tensorflow 도 맛보기정도만 했지만, pytorch 를 배워보자~~~


tensorflow 로 된 A3C 예제를 pytorch 로 바꿔봤는데   학습이 안되네 ㅋㅋㅋ

멀티 프로세스 관련해서 뭔가가 잘못한 거 같은데~~


pytorch 와 강화학습 공부 삼매경~~  이번엔  강화학습으로 자율제어까지 끝을 봐보는 걸 목표로~~



2023년 5월 16일 화요일

ROS 2 모바일로봇 첫걸음은 역시 쇼미 더 머니~~~내 돈 ㅠ.ㅠ

ROS2 여전히 애매한 초보자에게는  모바일 로봇용 패키지를 어떻게 사용해야 할지 잘 모르겠더라~~~

런닝커브를 빠르게 뛰어넘을 필요가 있어서,  어쩔수 없이 (전략적으로)  머니를 써서 초기 단계를 뛰어넘기로 했다!!

  - 쓸만한 텍스트북이 없으니, 유료 강의를 찾게되었음..
  - 마침 강의가 할인을 하고 있었던게 지름신이 강림하게한 큰 동기부여였을 것 같네

그러하여,  리뷰 평을 살짝 훑어보고  선택을 하게된 건 바로 이 강의 (Udemy)

ROS2 Nav2 [Navigation 2 Stack] - with SLAM and Navigation


결론적으로 평하자면,  강의 결제에 사용한 돈이 아깝지 않았도다~~~

드디어 모바일 로봇을 ROS2 로 개발할 환경을 갖출 지식을 확보했다는 점에서  내 머니는 가치있게 소모되었다...

  - 강의 뒷부분은 살짝 지루했지만,  한두번 정도 더 볼 예정~~


큰 마음먹고 ROS2를 소스빌드로 WSL2에서 구동되도록 환경을 구축해놨다. (Microsoft 만세~~~  윈도우에서  우분투 되게 해줘서 고마워~~~)

모바일 로봇쪽 패키지의 소스코드를 분석하거나, 직접 알고리즘을 구현해보는 등의 셀프 스터디를 이제 시작할 준비가 완료되었다.....   이제부터가 진정한 시작이군....To be continued~~~




2023년 3월 4일 토요일

ICP (Iterative Closest Point)

 

Ref. 

 _01. https://nbviewer.org/github/niosus/notebooks/blob/master/icp.ipynb


위의 노트북에는 그림이 일부 안보이길래 보충..

ICP 의 자세한 내용은 위의 링크나 다른 곳에 잘 설명 혹은 자료가 많은 것 같다.


자율 주행(?)/SLAM 에  ICP  알고리즘이 나와서 Study~~~中

 - 오픈소스와 유용한 자료 기여자분들께  감사~~~~


※ 진입장벽이 힘들지만, 시간이 지나면 괜찮아질거라 믿는다 !!!

※ 아직 Study 중이라, 오류가 있을수도 있다... 그럴쑤 있어~~~암~~

※ 기술 블로그도 시간과 노~~오~~력,  정~~성이  필요한 것 같다.  내멋대로 작성하는 느낌인데  이것도  어쩔 수 없오~~~   훌륭한 블로거는  다른 분들에게  양보하겠다!!!




                                         < 그림 1. example data >

 

그림 1은 ICP 설명을 위한 data 이다.

 - Q 는 true data set, P 는 Q 에 회전 및 병진을 가한 data set


ICP 는 회전과 병진을 찾는 알고리즘인 것 같은데..... (아직  study 중...)

 - P = Rot * Q + translation


자,  ICP 를 공부하기 위한 샘플 데이터는 준비되었다...


ICP 에는  데이터의 무게중심(?)을 구하는 과정이 있다.

 - 무게중심은 평균인 것 같은데...

 - 회전을 찾기 용이하기 위해서 P 와 Q 를 origin 으로 이동시키는 역할로 보임...

 - 그림 2는 무게중심을 제외한 전처리 후의 그래프이다.

 - 느낌상, bias 를 제거하는 것 뉘앙스의 전처리와 유사해 보임




< 그림 2. 무게중심 offset 을 제거하여 origin 으로 이동한 그래프 >


ICP 의 기본로직은 알고리즘 이름에도 표현되어 있듯이 Closest 포인트를 찾아서 반복하는 것이다.

 - 어떤 유투브에서는 Data Association 으로 표현하기도 하던데, P와 Q 의 correspondence 를 찾는 과정이다.

 - 간단하다, 이중 for 문을 돌면서, P와 각 요소와 Q의 각 요소의 Euclidean distance 를 비교하여 가장 가까운 포인트들을 C = { i, j } 쌍으로 저장함

  * 예제는 2차원이므로 Euclidean distance !!   코드는 결국 norm (P - Q) 형태 !!

 - 그림 3은 P 집합과 Q 집합의 corrspondence pair 를 회색 선으로 나타낸 그림



< 그림 3. P와 Q 의 correspondence >



SVD 를 이용하여 회전과 병진을 찾는다.

 - SVD 방식은 좀 더 자료등을 찾아봐서 이해가 필요한데..

 - P_correct = R_found * P + t_found

 - 그림 4는 P_correct 와 Q 의 그래프

 - 이전보다 P와 Q 가 정렬이 되긴 했다.




< 그림 4. 1번째 P 변환 후 결과 >



< 10회 iteration animation >