본문 바로가기

로봇

ROS2 시작하기(1) - 왜 ROS2를 사용해야할까?, install 대학원 생활을 하며, 기존 사용하던 ROS1에서 벗어나 ROS2를 다루어야 한다는 생각이 더 많이 들고 있다. 먼저 ROS1과 ROS2의 차이점에 대해서는 다음과 같다. Linux, Window, macOS 모두 지원 기존 ROS1도 여러 방법을 통하여 사용은 가능하였지만, ROS2처럼 직관적으로 사용할 수는 없었다. Real-time 지원 기존 ROS1은 실시간성에 대해서 지원이 되지 않았다. "실시간적으로 통신이 되지 않냐?" 라고 물어본다면 그건 아마도 빠른 HZ 사이의 통신에서 그렇게 느꼈던 것일 것이다. 하지만 실제로는 Pub, Sub 구조를 10Hz로 설정하여도 실행되는 딜레이 등으로 인해서 15ms, 20ms 등으로 늦어질 수 있다. ROS2는 리얼타임 운영체제, DDS의 RTPS(Real-.. 더보기
Python, C++ 등 개발자 공부 하기 이번에는 간단하게 Python, C++, Java 등 개발자가 되기 위한 코딩 공부를 어떻게 하는 지에 대해서 써보려고 한다. 백준, 생활 코딩 등 다양한 코딩 공부 사이트가 있지만 내가 추천하는 사이트는 코드 트리이다. https://www.codetree.ai/missions 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 이 사이트의 좋은 점은 학습하기에 있다. 학습하기에는 다음과 같이 커리큘럼이 존재하는데 자신의 난이도와 모르는 부분에 대해서 공부를 할 수 있다. 코드 공부를 처음부터 시작하는 사람은 프로그래밍 기초에서 변수 설정 및 사칙 연산.. 더보기
AirSim에서 RL하기 (4) - Env(환경) 제작 AirSim에서 RL을 진행하며 가장 어려웠던 부분이 Env(환경)을 제작하는 부분이다. 나는 학습 코드를 다음과 같이 구성하였다. Main 환경과 강화학습 Model 사이에서, AirSim을 연결하여 실제 학습을 진행하는 코드이다. Main에서 학습이 진행이 되며, 다양한 파라미터, 모델 저장, Reward 비교 등을 설정할 수 있다. Model 강화학습에서 학습을 진행하기 위해 구현되어 져 있는 학습 모델을 의미한다. 다양한 RL 모델(PPO, TD3, DDQN, DQN, SAC 등)을 이용하여 AirSim 에서의 학습에서 적합한 모델을 확인하려 한다. Env 학습에 필요한 환경이다. Model에 들어가는 parameter가 Main에서 설정을 해 주었다면, Model에서의 State, Action .. 더보기
AirSim에서 RL 하기 (3) - API 분석 AirSim에서 API를 모두 분석하고, 직접 사용하기 위해서 python 파일 생성 및 설명을 해 보았다. 모든 API 분석을 블로그에 기재를 한다면 내용이 너무 길어지니 제작한 부분만 업로드를 하고, 기존의 것은 Git에 저장을 하였다. > hmue_drone.py : 드론을 이동시키는 코드 import airsim import numpy as np # AirSim 클라이언트 생성 client = airsim.MultirotorClient() # 드론 연결 client.confirmConnection() def get_drone_direction_vector(): # 드론 상태 정보 가져오기 state = client.getMultirotorState() # 드론 요(Yaw) 각도 가져오기 yaw =.. 더보기
AirSim에서 RL 하기 (2) - 목표 AirSim에서 RL을 적용하는 데에 목표를 잡기로 하였다. AirSim에서의 Drone은 제어기를 통해 다양한 프로젝트를 수행할 수 있다. 물리 엔진 구성이 잘 되어 있기에 Sim to Real간의 차이가 거의 없이 프로젝트를 진행할 수 있다. 다양한 프로젝트 중 RL 공부와 Trajectory planning 을 공부하기 위해 다음과 같은 프로젝트 주제를 잡았다. 프로젝트 목표 : RL을 통한 Collision Avoidence(충돌 회피) 및 목적지 도착 위 프로젝트를 진행하기 위해 AirSim에서 제공해 주는 API를 분석해 보았다. API 분석하기 이전, 예시 동영상을 통하여 잠깐의 프로젝트에 대한 설명을 진행하려고 한다. 위 영상은 Fast-Racing을 진행하고 있는 영상으로, 중국의 유명한.. 더보기
AirSim에서 RL하기 (1) AirSim에서 API를 이용하여 Drone을 다루는 것을 이번 포스트에서 정리를 해 보려고 한다. 먼저 AirSim이란? AI 연구를 위한 플랫폼으로 Epic Games의 독점 Unreal Engine 4를 기반으로 구축된 드론, 자동차와 같은 지상 차량 및 기타 다양한 물체를 위한 오픈 소스 크로스 플랫폼 시뮬레이터이다. 즉, Unreal Engine에서 Sim to Real을 위해 만들어진 환경 설정이라고 생각하면 간단하다. 앞으로, 프로젝트 동안 AirSim과 UE4(Unreal Engine 4)를 이용하여 프로젝트를 수행한 것을 기록할 예정이다. Source Code는 블로그 관리자의 Git 주소로 각 부분에 맞는 Git 주소를 업로드 할 예정이다.Source Code : https://gith.. 더보기
Unity 첫 걸음 #1 Unity를 처음 시작하게 되며 Unity 내의 C#에 대해서 공부하게 되었다. Unity에 대해 공부해 나가는 과정을 적어보려 한다. using System.Collections; using System.Collections.Generic; using UnityEngine; public class hmeu : MonoBehaviour { // Start is called before the first frame update void Start() { Debug.Log("Hello Unity!"); -> C#에서 콘솔 창에 출력을 의미한다. } } 처음 Unity를 실행하고 Unity 내에서 C# script를 생성한 모습이다. 위와 같이 C# script를 구성하였으면 Unity 내에서 실행을 해 보아.. 더보기