.. Cover Letter

전체 글 212

(C++) 초급 2장. 연산자 오버로딩(연산자 중복) 복습하기(1/2)

주의 : 이 글은 C++의 기초문법에 대해 상세하게 다루지 않습니다. ※ 뇌를 자극하는 C++ STL 의 책을 참고하여 개인적으로 정리한 글입니다. 이 글의 목적은 해당 책의 내용을 인용하여 더 쉽게 이해하고자 정리하고, 더 쉬운 예제를 통해 이해하는 것을 목표로 하고 있습니다. 깊게 공부하고 싶다면 책을 구매하는 것을 추천드립니다. 책의 저작권 등등 각종 권한은 출판사와 지은이/옮긴이에 있습니다. - 출판사: (한빛 미디어) - 지음: 공동환 ※ 이 블로그는 포토폴리오 목적으로 별도의 수익을 창출하지 않습니다. 뇌를 자극하는 C++ STL - YES24 뇌를 자극하는 C++ STL - YES24 코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 ..

(C++) 초급 1장. 연산자 오버로딩(연산자 중복) 복습하기

주의 : 이 글은 C++의 기초문법에 대해 상세하게 다루지 않습니다. ※ 뇌를 자극하는 C++ STL 의 책을 참고하여 개인적으로 정리한 글입니다. 이 글의 목적은 해당 책의 내용을 인용하여 더 쉽게 이해하고자 정리하고, 더 쉬운 예제를 통해 이해하는 것을 목표로 하고 있습니다. 깊게 공부하고 싶다면 책을 구매하는 것을 추천드립니다. 책의 저작권 등등 각종 권한은 출판사와 지은이/옮긴이에 있습니다. - 출판사: (한빛 미디어) - 지음: 공동환 ※ 이 블로그는 포토폴리오 목적으로 별도의 수익을 창출하지 않습니다. 뇌를 자극하는 C++ STL - YES24 뇌를 자극하는 C++ STL - YES24 코드 중심으로 설명했다. 코드를 실습하면서 한 단계씩 실력을 쌓을 수 있게 했다. 단계별로 난이도를 조금씩 ..

배송로봇 모니터링 프로그램 만들기 2장 설계의 구체화

대충 컨셉은 모두 설계가 되었습니다. Git 생성 brainKimDu/Making-a-serving-robot (github.com) GitHub - brainKimDu/Making-a-serving-robot Contribute to brainKimDu/Making-a-serving-robot development by creating an account on GitHub. github.com 일단 깃부터 만들고 시작하도록 합시다. 프로젝트 세부 설계 큰 그림으로 보자면 다음의 그림과 같습니다. 이제 설계를 해야할 것은 각각의 모듈을 어떻게 구현할 것이고, 각 모듈이 어떻게 통신을 해야하고, 어떻게 구현을 해낼건지 조사를 진행해야겠습니다. 들어가기 전 UML과 아키텍처 설계를 조금 진지하게 공부해보고자..

배송로봇 모니터링 프로그램 만들기 1장 프로젝트 설계

프로젝트 목적 - ROS 활용능력을 키우기위함 - 소프트웨어 아키텍처 설계 능력을 기르기 위함 - C++ 객체지향 능력을 향상시키기 위함 - 기존의 코드들을 재활용하면서 접근하여 하나의 완성작을 만들어보고자 함. 프로젝트 기간 2023년 6월 28일부터 7월 30일까지 업무 외 별도로 진행 프로젝트 인원 개인 프로젝트 프로젝트 설계 요구사항 1. 시뮬레이션 상에서의 서빙로봇을 만들고 싶습니다. (로봇은 한 대만 사용합니다.) 2. 손님은 키오스크에서 주문을 진행함. (키오스크에서 객체지향의 특징이 잘 드러나게 설계할 것) 3. 그리고 손님이 자리에 앉으면 주방에서 음식이 만들어지고, 로봇이 이를 손님에게 전달함. 4. 남은 배터리 용량, 로봇의 현재위치, 로봇의 현재 명령 수행과정 등등을 모니터링할 수 ..

4. 아두이노로 알아보는 임베디드 시스템의 동작원리

참고도서 : 임베디드 엔지니어 교과서, 와타나베 노보루, 제이펍, 2020 책을 내용을 참고하였으며, 추가 정보가 필요할 경우 ChatGPT와 구글 검색을 활용합니다. 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. 이전 시간에 FreeRTOS를 깔아보고 아두이노에 적용까지 해보았습니다. 이번 시간에는 IDE에 작성한 코드가 어떻게 Arduino까지 전달이 되는지 알아보도록 하겠습니다. 임베디드 소프트웨어 임베디드 소프트웨어는 두 가지로 나눌 수 있습니다. 운영체제를 사용하는 타입과 운영체제를 사용하지 않는 타입입니다. 일반적으로 아두이노가 운영체제가 없이 동작하며(FreeRTOS의 경우 제외) 라즈베리 파이가 운영체제가 있게 동작을 합니다. 운영체제가 없는 경우는 동작이 단순한 경우일 ..

3. 임베디드 시스템의 개념, 특징, 구성

참고도서 : 임베디드 엔지니어 교과서, 와타나베 노보루, 제이펍, 2020 책을 내용을 참고하였으며, 추가 정보가 필요할 경우 ChatGPT와 구글 검색을 활용합니다. 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. 임베디드 시스템이란? 임베디드 시스템이란 마이크로 컴퓨터를 탑제한 기계나 장치를 의미합니다. 기존의 PC와 다른점이라고 한다면, 임베디드 시스템에서 입력은 센서를 통해 얻은 정보가 될 수 있고, 출력은 화면에 출력하거나 모터를 동작하는 등의 제어 신호에 해당할 수 있습니다. 임베디드 시스템의 특징 창문으로 들어오는 빛의 양이 적으면 전등을 켜고, 많으면 전등을 끄는 시스템이 있다고 생각을 해보겠습니다. 이 경우에 다음과 같은 특징을 가질 것입니다. 1. 임베디드 시스템은 외부..

ROS2로 turtlebot3 제어하기 6장. A* 알고리즘 탐구

참고자료 https://choiseokwon.tistory.com/210 파이썬 A* (A-star) 최단 경로 찾기 알고리즘 A* 길 찾기 알고리즘은 1968년에 Peter Hart, Nils Nilsson, Bertram Raphael에 의해 최초 공개됐다. 우선 Node 클래스는 아래와 같이 구현될 것이며, 아래 클래스를 보고 글을 읽으면 좀 더 편할 것이다. class Nod choiseokwon.tistory.com 코드 참고는 다음의 블로그를 참고하였습니다. 파이썬으로 작성되었으며, C++로 작성된 코드는 후에 시간이 남는다면 작성하도록 하겠습니다. A* 알고리즘이란? 최단거리 탐색알고리즘으로 가장유명한 알고리즘입니다. Grid Map (모논종이) 상에서 8방향의 방향성에 대해 장애물을 고려하..

1. Arduino 에 freeRTOS 설치하기 및 사용하기

들어가기 전 임베디드 SW에서는 크게 3가지로 나눌 수 있습니다. 첫 번째는 운영체제가 없이 사용하는 것으로 가벼우며, 직접 일처리에 대한 순서를 지정해줄 수 있습니다. 두 번째는 Real Time OS를 사용하는 것으로 우선순위로 일을 처리합니다. 세 번째는 Linux 혹은 범용 운영체제를 사용하는 것으로 한 번에 여러 일을 처리합니다. 라즈베리파이의 경우 RAM이 2GB 이상일 경우 Ubuntu 22.04를 설치해서 사용할 수 있으며, 아두이노의 경우에는 freeRTOS라고하는 운영체제를 다운로드 받아 사용할 수 있습니다. 아두이노에 freeRTOS 설치 이번시간에는 아두이노에 freeRTOS 운영체제를 설치하는 것을 목표로 진행하도록 하겠습니다. 우선 아두이노용 Free RTOS를 설치하기 위해서는..

0. Arduino IED 환경 세팅하기

참고자료가 있다면 링크를 올리겠습니다. 아두이노 IDE 설치 및 아두이노 연결 준비물 1. Arduino Uno 2. 우분투 운영체제가 설치된 PC or 윈도우 기반 PC 이 글은 우분투22.04를 기준으로 진행됩니다. https://www.arduino.cc/en/software Software Open-source electronic prototyping platform enabling users to create interactive electronic objects. www.arduino.cc 다음의 사이트에서 설치를 진행합니다. 우분투의 경우에는 zip파일로 다운로드 받으면됩니다. 터미널상에서 다운로드 받았던 폴더로 이동하여 다음을 순서대로 입력합니다. cd mkdir arduino cd ~./..

전기차 직무 알아보기 3. 전기차 충전기 직무 지식

이 글은 전기차와 전기차충전기 간의 통신을 다룹니다. 누군가와 대화가 통할 수준을 다룹니다. 이미지는 저작권을 생각하고 가져오지 않았으며, 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. (이해를 위해 어쩔 수 없이 이미지가 필요했음을 알립니다.) (문제가 된다면 삭제합니다.) 전기차 충전기의 기초 지식 전기차를 충전하는 방식은 2가지로 볼 수 있습니다.. 가정에서 AC 전력을 사용해서 전기차를 충전하는 방법과 급속 충전기를 이용해서 DC로 전기차를 충전하는 방법입니다. 현시점에서 대부분의 회사의 관심사는 당연 급속 DC 충전기라고 볼 수 있습니다. 최대 360kW 까지의 전력을 충전시킬 수 있습니다. 우선 전기차와 연결하는 커넥터를 먼저 보시면, 커넥터는 전세계적으로 서로 다른 표준을 ..

전기차 직무 알아보기 2. 전기차 충전관련 기초 지식

참고도서 : 전기차 첨단 기술 교과서, 톰 덴튼, (옮긴이 김종명), 보누스, 2021 누군가와 대화가 통할 수준을 다룹니다. 이미지는 저작권을 생각하고 가져오지 않았으며, 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. (이해를 위해 어쩔 수 없이 이미지가 필요했음을 알립니다.) (문제가 된다면 삭제합니다.) 전기자동차란 무엇인가? 전기자동차 줄여서 EV (Electric Vehicle)라고 부릅니다. 전기자동차는 엔진과 변속기가 없고, 대신 전기 동력과 관련된 부품이 있는데, 구동모터, 감속기, 배터리, 온보드 차저, 통합전력제어 장치 등이 있다. 이는 모두 배터리의 전력으로 자동차를 구동하기 위한 부품이다. 전기자동차의 구성 부품 배터리 : 리튬이온이 사용되되며, 전체 배터리 팩은 ..

전기차 직무 알아보기 1. 자동차 통신 이해하기

이 글은 별도의 참고자료가 존재하지 않으며, 정보가 있다면 ChatGPT를 참고하거나, 블로그를 참고하였을 경우 참고한 블로그의 링크를 달아놓았습니다. 이 글은 자동차라고 한정하지만, 배송로봇에서도 같은 통신방법이 사용되고는 합니다. 이 글은 전문적인 내용을 다루는 것이 아니라. 누군가와 대화가 통할 수준을 다룹니다. 이미지는 저작권을 생각하고 가져오지 않았으며, 이 글은 포토폴리오 목적이며, 별도의 수익을 창출하지 않습니다. (이해를 위해 어쩔 수 없이 이미지가 필요했음을 알립니다.) (문제가 된다면 삭제합니다.) 자동차의 통신은 무엇인가? 차량내에는 수십 개의 제어기들이 서로 안정적으로 정보를 공유해야합니다. 제어기들은 서로 유선으로 통신을 하며, 일반적으로 Bus 토폴로지 형식을 가집니다. 다음과 ..

ROS2로 turtlebot3 제어하기 5장. turtlebot이 생성된 경로를 따라 움직이게 하자

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 맵행렬과 gazebo의 동기화 문제 이전시간에 현재의 좌표와 이동하고 싶은 좌표를 입력하면 최단경로를 얻을 수 있게 만들었습니다 이제 이를 ROS상에서 구현하면됩니다. 직접 cmd_vel을 발행하는 방법을 한 번 해보고자 합니다. 여기서 한 가지 문제가 있습니다. 로봇이 다음 그리드로 이동하는데 몇 m를 이동해야하는가.. 그리드를 분할하면 분할한 길이가 있을 것입니다. 이를 픽셀에 곱하면 이미지상에서 다음 위치로 이동하는 픽셀의 개수를 알 수 있습니다. map.yaml 파일 보면 resolution이라는 값이 보일 것입니다. 이 값이 이 문제를 해결하는 열쇠입니다. 0.05는 1픽셀의..

ROS2로 turtlebot3 제어하기 4장. map파일을 가지고 전역경로 생성하기

이번 글은 별도의 참고자료가 존재하지 않고, 참고하는 블로그가 있는 경우 바로 다음에 표시를 하고 지나가도록 하겠습니다. 이전 시간에 파이썬 가상환경을 만들었습니다. 그리고 맵의 색에 따라서 0과 1로 구분짓자는 것까지 이해했습니다. 이번시간에는 아주 간단하게 전역경로를 생성하고 이를 따라 움직이는 turtlebot3를 만들어보고자 합니다. 저는 map파일을 참고해서 경로를 계획하게 할 것입니다. 정말 간단하게는 픽셀단위로 잘라서 경로를 계획할 수 있습니다. 그러나 픽셀단위로 자르면 그림상에서 이해하기가 조금 어려워지기 때문에 사각형 단위로 자르도록 하겠습니다. 우선은 알고리즘이 동작하게 만드는 것이 우선입니다. 픽셀단위로 자르는 방법은 이후에 진행하도록 합시다. gazebo를 실행하면 바닥에 가상의 사..