.. Cover Letter

전체 글 207

(C++)알고리즘 탐구 4. 애너그램 그룹 (풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. (그래서 다른 글보다 코드가 깁니다.) 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 애너그램은 단어를 재배열해서 다른 단어로 만드는 것을 말합니다. 우선 책에서 언급하는 문제는 그룹 애너그램이라는 문제입니다. 책의 문제와 완벽히 유사한 문제가 백준에 있습니다. (그러나 책에 있는 문제는 못풀었습니다.) 그 전에 다른 애너그..

(C++)알고리즘 탐구 3. 가장 많은 글자. (풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. (그래서 다른 글보다 코드가 깁니다.) 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 1371번: 가장 많은 글자 (acmicpc.net) 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 ..

(C++)알고리즘 탐구 2. 문자열 뒤집기(풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 알고리즘을 공부하면서도 소프트웨어적 설계를 추가합니다. 답을 내는 코드를 짜는게 아니라 각각이 모듈이 되어 서로 맞물려 동작하는 코드를 짜는 것을 목표로합니다. 참고로 상위 레벨의 코드를 볼 수록 using namespace std; 라는 코드가 보이지 않아, 없이 진행합니다. 문자열 뒤집기 유사문제로는 아래 문제가 있으며, 이는 마지막에 풀어보도록 하겠습니다. 9093번: 단어 뒤집기 (acmicpc.net) 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. ..

(C++)알고리즘 탐구 1. 유효한 팰린드롬 (풀이, 남의 코드 분석)

참고도서 : 파이썬 알고리즘 인터뷰 . 박상길 . 책만 . 2020 참고도서에서 언급하는 알고리즘 주제를 참고하여 C++로 풀어보는 것을 목표로 합니다. 팰린드롬이란 앞뒤가 똑같은 단어나 문장으로 뒤집어도 같은 말이 되는 단어 또는 문장을 말합니다. 문제 : 주어진 문자열이 팰린드롬인지 확인해라, 대소문자를 구분하지 않는다. 알파벳만 판정하며, 다른 문자열은 판정하지 않는다. 10174번: 팰린드롬 (acmicpc.net). 10174번: 팰린드롬 팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다. 다음은 팰린드롬의 예시이다. Anna Harrah Arora Nat tan 9998999 123 www.acmicpc.net 이 문제..

2. docker를 활용하는 방향으로 초점을 맞춰 배워보자.

pinkLab의 pinkwink 강사님 강의자료 (https://pinkwink.kr/)를 바탕으로 작성되었습니다. 우선 설치방법은 이전의 글을 참고하면 됩니다. docker를 사용하기 위해서는 꼭 sudo 권한을 주어야한다. sudo docker ps 해당 명령어를 사용하면 현재 실행 중인 도커 리스트 혹은 컨테이너를 조회할 수 있다. sudo docker image - docker images 다음의 명령어를 사용하면 현재 실행 중인 docker image를 조회할 수 있다. hello-world는 처음 실행할때 켜보았던 그 이미지인 것으로 보입니다. 여튼 docker를 통해서 ubuntu 18.04를 받아와서 run을 시켜봅시다. sudo docker pull ubuntu:18.04 sudo doc..

1. docker의 기초 , docker란 무엇인가? docker 사용하기

우선 docker가 무엇인지 chatgpt에게 꼬리에 꼬리를 무는 형식으로 질문을 해보자. docker가 정확히 뭐고 왜쓰는건가요? 도커(Docker)는 컨테이너 가상화 기술을 이용하여 소프트웨어를 배포하고 실행하는 플랫폼입니다. 컨테이너는 소프트웨어를 실행하는 환경을 격리된 공간에서 제공하므로, 하나의 호스트 시스템에서 여러 개의 컨테이너를 실행하더라도 각 컨테이너는 서로 영향을 주지 않고 독립적으로 실행될 수 있습니다. 도커를 사용하는 이유는 여러 가지가 있습니다. 가장 큰 장점은 개발, 테스트, 운영 등 각 단계에서의 환경을 일관성 있게 유지할 수 있다는 것입니다. 도커 이미지를 만들어서 배포하면, 이 이미지를 이용하여 동일한 환경에서 소프트웨어를 실행할 수 있으므로, 호스트 시스템의 환경이나 설정..

(실무리눅스) 14. 우분투에 docker 설치하기

https://docs.docker.com/desktop/install/ubuntu/ Install Docker Desktop on Ubuntu docs.docker.com 우선 도큐먼트에 나오는 KVM virtualization은 설치할 필요가 없다고 합니다 (ChatGPT가 그렇게 말했지만 틀릴 수도 있습니다.) docker를 상업적으로 사용할 경우에 돈이 발생한다고 합니다. 자세히는 모르겠습니다. https://docs.docker.com/desktop/install/linux-install/#system-requirements Install Docker Desktop on Linux docs.docker.com 해당 도큐먼트에 나와있는 system requirements를 만족해야합니다. gnom..

H-Mobility 2023년 상반기 자율주행부분 심화과정 대상자로 선정되었습니다.

행복하군요.. 작년에는 인지, 판단, 제어, 통신/네트워크 중에서 2과목만 신청할 수 있게했다고 했는데, 올해부터는 그게 사라지고, 4과목을 전부 수강할 수 있다고 합니다. 원래는 인지랑 판단 두 과목만 수강할 계획이였는데, 수강신청을 진행해보니 교재를 받을 주소를 입력하라는 부분이 있어서 4과목을전부 신청해버렸습니다. 교재는 못참지..

ROS 패키지 상에서 작동하는지 확인해보자. (패키지 설계) 실제로봇 주행..

이 글은 잠을 참고 정리하는 글이므로, 정리가 대충되어있습니다. ROS package 설계 ㅇ 요약 현재 진행상황 요약 : 가제보상에서 토픽으로 이동요청시 이동함. 2개의 패키지를 제작했습니다. minibot_indoor 패키지 (실내 경로생성 알고리즘이 들어있는 패키지 입니다.) minibot_msg 패키지 (메시지의 모음입니다) 1. 각 패키지에 대한 설명 minibot_indoor 는 실내 경로생성 알고리즘이 들어 있는 패키지 입니다. 해당 패키지에 대한 설명을 하면서, 메시지 타입은 msg에 작성되어 있습니다. 해당 패키지에는 현재 두 알고리즘이 들어가있습니다. 라이다에서 전방 물체를 판단하는 방법 (tistory.com) 라이다에서 전방 물체를 판단하는 방법 실제로봇의 경우 YDLidar를 사용..

라이다에서 전방 물체를 판단하는 방법

실제로봇의 경우 YDLidar를 사용하는데 이번 프로젝트에서 Lidar의 값을 구독하여 전처리하고, 다시 발행하는 과정에서 문제가 생겼다. 오류의 내용은 QoS (데이터 통신) 문제로 발행하는 부분과 구독하는 부분이 서로 합이 맞지 않는다는 이야기였다. 우리가 짠 코드는 라이다의 전방영역의 가장 작은 값이 0.35 이내라면 장애물이 판별되었다는 Topic을 발행하라는 코드이다. import rclpy as rp from rclpy.node import Node from sensor_msgs.msg import LaserScan from minibot_msgs.msg import IsObstacle class ObstacleDetect(Node): # /scan topic을 구독하고 장애물이 가까이 있는지..

실내 경로생성 알고리즘의 아이디어 및 코드 설명

팀원에게 설명해주기 위해 작성한 글을 블로그에 그대로 올리는 글입니다. 초기 설정 및 파리미터 설명 노트북이 없어서 rviz는 스크린샷을 찍을 수 없는 상태입니다. 들어가기 전 minibot 패키지를 설치하는 곳은 노트북과 로봇입니다. 그래서 만약에 노트북으로 gazebo 시뮬레이션만 돌릴 예정이라면 Nav2 패키지를 노트북에서 실행하는 것이므로 노트북의 minibot 패키지에서 파라미터를 수정해야합니다. 실제 로봇의 경우는 Nav2 패키지는 실제 로봇에서 실행하는 것이므로 Na2 패키지를 로봇에서 파라미터를 수정해야합니다. 충돌 파라미터 설명 충돌 파라미터는 Nav2 패키지에 있는 파라미터로 2가지로 나누어집니다.1 global collision 과 local collision 입니다. 이 파라미터 수..

실내 경로 생성 파이썬으로 해보자 (Nav2를 이용한)

우선 가제보 실행 코드 ros2 launch minibot_gazebo bringup_gazebo.launch.py world_name:=simple_building.world 네비게이션 실행코드 ros2 launch minibot_navigation2 map_building.launch.py use_sim_time:=true 시뮬레이션 ros2 launch minibot_navigation2 rviz_launch.py 로봇을 돌리기 ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=base_controller/cmd_vel_unstamped 맵을 잘 만들었으니까 ros2 run nav2_map_server map_sa..

(자율주행 시뮬레이터) 우분투 20.04에 Carla 를 설치하고, 객체를 소환시켜보자.

우선 우분투 20.04가 필요합니다. https://carla.readthedocs.io/en/0.9.13/start_quickstart/ Quick start package installation - CARLA Simulator This guide shows how to download and install the packaged version of CARLA. The package includes the CARLA server and two options for the client library. There are additional assets that can be downloaded and imported into the package. Advanced customizati carla.readth..