-
STM32 튜토리얼 02 - LED #1
1. STM32CubeMX 설치하기 공식 사이트에서 설치하기 window 11 사용 중이라 STM32CubeMX-Win을 설치하였다. 2. STM32CubeMX는 무엇인가? CubeMX: 하나의 자동화된 코드를 생성해주는 도구(tool) Cube Library(Software Packages): 해당 펌웨어의 기반이 되는 각 라이브러리를 말한다. 3. 프로젝트 생성하기 File → New Project 클릭 사용하고자 하는 MCU 선택 MCU 더블 클릭 또는 Start Project 클릭 4. 프로젝트 저장하기 File → Save Pro... Read More
-
STM32 튜토리얼 01 - 프로젝트 생성 및 디버깅하기
1. STM32 Cube IDE 설치하기 공식 사이트에서 운영체제에 맞는 것을 설치한다. 오제이 튜브를 확인하며 설치하면 편하다. 2. Workspace 생성 및 설정하기 2.1. Workspace 생성 Workspace 설정 후 Launch 버튼을 누른다. 이때 경로는 무조건 영어로 설정한다. Impormation Center를 닫으면 빈 Workspcace가 나타난다. Workspace 안에선 여러 개의 프로젝트를 관리할 수 있다. 2.2. Text file Encoding 설정 Window → Preferences → General → Works... Read More
-
VS Code(Window 11)에서 C/C++ 환경 구축하기
1. Compiler 설치 How to Install C and C++ Compilers on Windows 10 / 11 위 영상을 보고 따라서 설치하면 된다. 아래 글은 설치 과정을 간단하게 기록한 것 뿐이다. 1.1. MSYS2 설치 https://www.msys2.org/ 에서 msys2-x86_64-20230718.exe 파일 다운로드 MSYS2 실행 pacman -Syu 위 코드 실행 후 모두 ‘y’ 입력 pacman -Su 다시 MSYS2 실행 후 위 코드 실행, ‘Y/n’는 모두 ‘y’ 입력 1.2. GCC, G++ Compiler 설치 pacman -S min... Read More
-
[Project#12] 급하다 급해 전시회 준비
[Project#] 시리즈는 프로젝트(Manipulator Continuous Control with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 작품의 완성도를 위한 노력을 기록해보았다. 모든 내용은 이전 글과 이어진다. 이전 글을 읽어봤다고 가정한 후 글을 작성하였다. (이전 글 LINK) 전시회가 얼마 남지 않아 학습하는 과정을 짧게나마 기록하였다. 1. 테스트 학습 episode 50 time step 1000 batch siz... Read More
-
[Project#11] DDPG 구현
[Project#] 시리즈는 프로젝트(Manipulator Continuous Control with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 DDPG Agent 구현 과정에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 읽어봤다고 가정한 후 글을 작성하였다. (이전 글 LINK) 1. DDPG_manipulator.py 생성 1.1. Actor 클래스 class Actor(nn.Module): def __init__( self, state_size, hidden_size, ... Read More
-
[Project#10] 강화 학습과 Motion Planning 관계에 대한 고찰
[Project#] 시리즈는 프로젝트(Manipulator Continuous Control with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 강화 학습과 Motion Planning에 대한 생각을 기록하였다. 모든 내용은 이전 글과 이어진다. 이전 글을 읽어봤다고 가정한 후 글을 작성하였다. (이전 글 LINK) 💡 강화학습으로 로봇팔을 제어하는 과정이 Motion Plannig이 맞나? Motion Planning을 알기 전에 Path Planning, Trajectory Planning에 대해 알아보자. 1. Path Planning Pat... Read More
-
[Project#9] 작품의 방향성 변경
[Project#] 시리즈는 프로젝트(Manipulator Continuous Control with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 변화하게 된 방향성을 설명한다. 모든 내용은 이전 글과 이어진다. 이전 글을 읽어봤다고 가정한 후 글을 작성하였다. (이전 글 LINK) 원하는 위치에 물체를 던질 수 있는 로봇팔을 제작하는 것이다. 처음엔 ‘던지기’ 기능이 굉장히 효율적이라고 생각하였다. 그러나 아래와 같은 질문에 명확한 답을 하지 못하였고, 작품의 방향성을 변경하게 되었다. 무거운 물체를 던지게 되면 모터의 토크는 어떻게 감당할 것인가? ... Read More
-
[Project#8] Pytorch 개발 환경 구축
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 Pytorch 개발 환경 설정 과정에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 읽어봤다고 가정한 후 글을 작성하였다. (이전 글 LINK) 결국 개발 환경을 구축하였지만 ROS2와 Anaconda가 호환되지 않아 사용하진 않았다. 1. Anaconda 설치하기 Anaconda 설치 링크 sha256sum 명령어를 활용하여 다운로드 받은 파일이 제대로 받아진 것인지를 확인할 수 있다. ... Read More
-
[Project#7] 장애물 생성하기
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 Gazebo에 장애물을 생성하는 과정에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 읽어봤다고 가정한 후 글을 작성하였다. (이전 글 LINK) 1. 간단한 모형 생성 후 테스트 1.1. my_obstacle_pkg 생성 cd ~/ros2_ws/src/robotic_arm_environment/ ros2 pkg create --build-type ament_python my_obstacle_pkg 1.... Read More
-
[Project#6] Gripper 연결하기
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 두산 로보틱스의 A9012 모델(Doosan Robotics: A9012)에 그리퍼를 연결하는 과정에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 오류 없이 모두 진행했다고 가정하고 글을 작성하였다. (이전 글 LINK) 1. Gripper 파일 복사하기 1.1. .dae 파일 복사 dsr_description2/meshes/gripper/robotiq/85_2f/visual 위 링크에서 5개의 ... Read More
-
[Project#5] RL 파일 코드 분석
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 RL 파일 코드 분석에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 오류 없이 모두 진행했다고 가정하고 글을 작성하였다. (이전 글 LINK) 1. run_environment.py 1.1. 전체 코드 import time import rclpy from .main_rl_environment import MyRLEnvironmentNode def main(args=None): rclpy.init(ar... Read More
-
[Project#4] RL Environment 런치 파일 코드 분석
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 RL Environment 코드 분석에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 오류 없이 모두 진행했다고 가정하고 글을 작성하였다. (이전 글 LINK) 1. my_environment.launch.py launch 파일은 여러 노드를 한 번에 실행시키기 위한 파일이다. ROS 1에서는 XML 기반이었지만 ROS 2에서는 Python 방식을 추가하였다. my_environment.launch.... Read More
-
[Project#3] 로봇팔 튜토리얼 - RL Environment
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 로봇팔 튜토리얼에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 오류 없이 모두 진행했다고 가정하고 글을 작성하였다. (이전 글 LINK) ‼️ 우선, 제작자의 Github Repository를 그대로 git clone 해서 수정하는 방식으로 한다는 것을 밝힌다. 아래 내용은 튜토리얼을 진행하며 해결하지 못한 문제를 나열했을 뿐이다. 결국, 성공하지 못하였다. 1. 파일 실행하기 source /opt... Read More
-
[Project#2] 로봇팔 튜토리얼
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 로봇팔 튜토리얼에 대한 내용이다. 모든 내용은 이전 글과 이어진다. 이전 글을 오류 없이 모두 진행했다고 가정하고 글을 작성하였다. (이전 글 LINK) ‼️ 우선, 제작자의 Github Repository를 그대로 git clone 해서 수정하는 방식으로 한다는 것을 밝힌다. 아래 내용은 튜토리얼을 진행하며 해결하지 못한 문제를 나열했을 뿐이다. 결국, 성공하지 못하였다. 결과만 확인하고 넘어가고 싶다면 아래 코드만 확... Read More
-
[Project#1] 로봇팔 개발 환경 설정
[Project#] 시리즈는 프로젝트(Trash Throwing Simulation with Deep Reinforcement Learning) 제작 과정을 설명한다. 본 포스팅은 환경 설정에 대한 내용이다. 1. Install Ubuntu 20.04 https://jimnong.tistory.com/676 해당 사이트를 참고하여 Ubuntu 20.04 버전을 멀티 OS로 설치하였다. 기존 노트북 사양은 아래와 같다. CPU: Intel(R) Core(TM) i5-10300H CPU @ 2.50GHz RAM: 16 GB GPU: NVIDIA GeForce G... Read More
-
[Project#0] 프로젝트 소개 - Trash Throwing Simulation with Deep Reinforcement Learning
1. 학술 소모임 ‘BARAM’ 학술 소모임 ‘BARAM’에서는 매 학기 개인 작품을 진행한다. 서로 질문과 피드백을 진행하는 시간을 가지며 함께 성장하는 문화를 형성한다. 프로젝트 소개에서는 어떤 작품을 제작하며, 어떻게 구현할지에 대한 내용을 서술한다. 2. 작품 선정 동기 ‘로봇은 단순노동에 활용하고 사람은 스스로 가치 있다고 생각하는 일을 위해 힘써야 한다’고 생각한다. 주변을 살펴보면 새벽에 쓰레기를 수거하고 계신 환경미화원분들을 쉽게 볼 수 있다. 쓰레기를 쉽고 빠르게 수거하기 위해 로봇팔을 활용한 ‘던지기’ 기능을 제시하고자 한다. 즉, 로봇팔과 심층강화학습 기술을 융합하여 쓰레기 던지기 로봇을 ... Read More
-
수식 적용이 안 됩니다
1. 문제 상황 jekyll-theme-yat 테마를 활용하여 gitblog를 제작하였는데 수식이 적용되지 않고 있다. 로컬 서버(bundle exec jekyll serve 명령어 활용)에서는 수식이 적용되지만 Git Blog에서는 수식 적용이 안 되고 있다. 수식에 관한 코드는 아래와 같다. $$ \mathcal{P}_{ss'} = \mathbb{P} \ [S_{t+1} = s' \mid S_t = s] $$ 2. 삽질 해결 방안만 보고 싶다면 ‘3. 해결 방안’ 부분을 참고 바란다. 지금부턴 어떤 삽질을 열심히 했는지 적어보려 한다. 2.1. velog 따라하기 ‘Markdown 수식’이라는 문구... Read More
-
Lecture 2: Markov Decision Processes
1. Markov Processes Markov Processes는 State와 Probability로 정의되며, time-step 마다 확률에 따라 다음 state로 넘어가며, 이를 반복한다. 이때, State의 집합을 $\mathcal{S}$이라 하고, 확률의 행렬을 $\mathcal{P}{ss’}$(State transition matrix) 라고 한다. 즉, Markov Process는 $<\mathcal{S}, \mathcal{P}{ss’}>$의 tuple 형태로 정의할 수 있다. 이를 Markov Chain이라 하기도 한다. 1.1. State Transition Probability 상... Read More
-
Lecture 1: Introduction to Reinforcement Learning
1. 기계 학습 분류 (Branches of Machine Learning) 기계 학습(Machine Learning)은 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning) 3가지로 나뉜다. 지도 학습과 비지도 학습에 대한 내용은 자세히 다루지 않으며, 강화 학습과 다른 학습의 차이점은 아래와 같다. 감독관(Supervisor)가 없고, 보상 신호(reward signal)만 존재한다. Supervisor란 정답을 알려주는 존재이다. 그래서 필자는 감독관 보다는 선생님이라는 표현... Read More
-
강화 학습 공부 개요
개요 팡요랩의 강화 학습 강의 영상은 데이비드 실버(David Silver)의 영어 강의를 한국어로 소개하는 영상이다. 강의를 수강하며, 나만의 언어로 변환하기 위해 정리를 시작한다. 팡요랩 강화 학습 강의 영상 링크 - (https://www.youtube.com/playlist?list=PLpRS2w0xWHTcTZyyX8LMmtbcMXpd3s4TU) 데이비드 실버(David Silver) 강의 자료 - (https://www.davidsilver.uk/teaching/) Lecture 1: Introduction to Reinforcement Learning 강의 내용 정리 ... Read More
-
첫 포스팅
GitHub blog 시작하기 연습 게시물 Read More