본문 바로가기

반응형

전체 글

(1084)
[2026 ROS 스터디] 김하늘 #2주차 3-1. Turtlesim 실행하기node : ros에서 실행 가능한 최소 단위-> ros2 run : 노드를 실행하는 명령ex) ros2 run turtlesim turtlesim_node : turtlesim 실행 3-3. ROS2 Noderos2 node list : 현재 실행중인 node의 listros2 node info : node의 정보 3-4. ROS2 Service 기초service : client가 server에게 요청을 하면 응답을 하는 것ros2 service list : 쓸 수 있는 service 목록ros2 service type : Service Name의 data type(service definition)을 출력-> 요청과 응답을 할 때 필요한 데이터의 타입ros2 i..
[2026 ROS 스터디] 김경모 #3주차 1. Python으로 topic 구독 해보기 (4-1)ROS2 통신에서 특정 데이터를 지속적으로 받아오기 위해서는 토픽(Topic)을 구독(Subscribe)해야 한다. 강의를 통해 Jupyter Notebook 환경에서 Python코드를 작성하여 터틀심의 위치 정보를 구독하는 방법을 배워본다.노드 생성 및 준비: rclpy 모듈을 불러와 초기화(rp.init())한 뒤, rp.create_node('sub_test') 명령어를 이용해 데이터를 수신할 테스트 노드를 새롭게 생성한다.콜백 함수 및 구독 설정: 토픽 데이터가 들어올 때마다 화면에 출력(print)해 주는 콜백(Callback) 함수를 정의한다. 이후 create_subscription을 사용하여 터틀심의 위치 정보를 담은 토픽(/turtle..
[2026 ROS 스터디] 김지섭 #3주차 Python 으로 Topic 구독 해보기ROS2 Subscriber 코드import rclpy as rp→ Python에서 ROS2를 사용하기 위한 rclpy 라이브러리를 rp라는 이름으로 불러온다.from turtlesim.msg import Pose→ turtlesim의 Pose 메시지 타입을 불러온다.rp.init()→ ROS2 통신을 사용하기 위해 rclpy를 초기화한다.test_node = rp.create_node('sub_test')→ sub_test라는 이름의 ROS2 Node를 생성한다.def callback(data):→ Topic에서 메시지를 받았을 때 실행되는 callback 함수이다.받은 Pose 메시지의 x, y, theta 값을 출력한다.test_node.create_subsc..
[2026 ROS 스터디] 김하늘 #1주차 리눅스 명령어ls : 현재 경로의 파일이나 폴더 목록pwd : 현재 경로clear : 터미널 내역 삭제mkdir : 폴더 생성rm : 삭제cd : 폴더 이동 Alias: 명령어 생성- alias (name)=(value)alias 설정시 주의사항name과 value 사이의 등호(=)는 띄어쓰기 없이 붙여 써야한다
[2026 ROS 스터디] 김경모 #2주차 https://youtube.com/playlist?list=PL0xYz_4oqpvhj4JaPSTeGI2k5GQEE36oi&si=UHucSEgBPiTZaIVI1. Turtlesim 실행하기 (3-1)ROS 생태계에서 거북이는 상징적인 마스코트로 Turtlesim은 복잡한 하드웨어 없이 ROS2의 명령어와 패키지 동작 원리를 눈으로 보며 배울 수 있는 교육용 시뮬레이터이다.노드 실행: 터미널에서 ros2 run turtlesim turtlesim_node 를 입력하면 귀여운 거북이 한 마리가 나타나는 창이 실행된다.노드 개념: ROS2에서 노드(Node)란 실행 가능한 최소한의 작업 단위를 의미한다. 위 명령어를 통해 turtlesim_node라는 노드를 하나 실행한다.2. 다시 강조하는 setup.bas..
[2026 ROS 스터디] 이정우 #2주차 3-1 Turtlesim 실행하기 node : 실행 가능한 최소의 단위ros2 run : node를 실행하는 명령 ros2 run 명령어로 turtlesim 패키지가 제공하는 turtlesim_node를 실행하겠다. turtlesim_node를 실행하면 빨간 거북이가 하나 나온다. alias | grep humble을 사용하여 alias 내의 humble만 볼 수 있다고 한다. 3-2. 다시 강조하는 set up.bash sudo apt install 명령으로 설치한 ros pkg들이 저장된 곳=> /opt/ros/humble source/opt/ros/humble/setup.bash=> source 명령을 통해 opt/ros/humble의 setup.bash를 읽음 3-3. ROS2 Node ro..
[2026 ROS 스터디] 김명원 #2주차 #1 Turtlesimros2 run turtlesim turtlesim_node - turtlesim 실행ros2 service list - 내가 사용할 수 있는 로스 서비스 확인.srv - service에서 어떤 노드가 request할 때 definition(type)을 정해둔 파일--- 위에 있는 건 request 타입, 아래에 있는 건 response 타입위와 같은 경우는 response 데이터는 없음아래와 같이 확인 가능radian - ros에서 사용하는 각도 단위 - 한 바퀴를 2π로 표현ros2 service call /turtle1/teleport_absolute turtlesim/srv/TeleportAbsolute "{x: 2, y: 2, theta: 1.57}"거북이를 x: 2, y..
[2026 ROS 스터디] 조하영 #2주차 # 3-1 turtlesim 실행하기node: ros에서 실행 가능한 최소 단위ros2 run 으로 실행 가능 # 3-3 ros2 nodenode list: 현재 실행중인 node의 리스트를 알려줌node info: 노드의 정보를 알려줌 # 3-4 ros2 service 기초(1) service: client의 요청에 응답하는 서버 (응답이 없으면 NULL)(2) ros service type서비스 데이터 타입은 두개가 존재할 수 있음 teleport absolute의 원본 소스:float32 x float32 y float32 theta ---(3) definition서비스는 두 노드 사이에 definition(type)이 있어야 함.srv: 노드의 요청과 응답을 기록해둔 파일definition..
[2026 ROS 스터디] 김지섭 #2주차 3-1 Turtlesim 실행하기node(노드): ros 환경에서 실행가능한 최소의 단위ros2 run : 노드를 실행하는 명령 ex) ros2 run 패키지 이름 : turtlesim , 노드 이름 : turtlesim_node 3-3 ROS2 Noderos2 node list: 현재 실행중인 노드의 리스트를 볼 수 있는 명령ros2 node info /turtlesim : turtlesim이라는 노드의 정보 조회 명령echo $ROS_DOMAIN_ID: 내가 설정한 ros 도메인 아이디 조회 명령 3-4 ROS2 Service 기초Service : 요청(request)을 보내면 응답(response)을 돌려주는 통신 방식 Service Type: Service에서 어떤 Request와 Respon..
[2026 ROS 스터디] 윤준현 #2주차 3-1 Turtlesim 실행하기 node -> 실행 가능한 최소의 단위 tab 더블 탭으로 뭐가 있는지 볼 수 있는 것 상기ros2 run turtlesim turtlesim_node 코드로turtlesim의 실행 가능한 최소 단위? 실 alias | grep humble 명령어로 험블만 어떻게 생겼나 볼 수 있다 3-2 다시 강조하는 setup.bash sudo apt install 명령으로 설치한 ros pkg들이 저장된 곳ㄴ> /opt/ros/humble 해당 경로의 setup.bash를 source 명령어로 읽으source /opt/ros/humble/setup.bash |---- 이 경로 -----|이 경로에 설치되어 있는 ros 명령어들을 사용할 수 있게 됨 3..
박동주 #1주차 우분투 설치 및 ROS2 소개 스터디 1주차 영상 중 빠지는 부분이 있는 줄 모르고, 1~2챕터 모두 진행하였습니다.Terminal & Terminator터미널 실행Ctrl + Alt + T : 새 터미널 실행터미널 기본 형태: user@pc-name:~$user : 사용자 이름pc-name : PC 이름~ : Home 디렉토리$ : 일반 사용자기본 명령어exit : 터미널 종료ls : 현재 위치의 파일/폴더 목록 확인clear : 터미널 화면 정리sudo apt update : Ubuntu 패키지 목록 업데이트sudo : 관리자 권한으로 실행Ubuntu Terminal 기본 명령어현재 위치 확인pwd : 현재 디렉토리의 전체 경로 확인예: /home/userpwd = Print Working Directory파일/폴더 목록ls : ..
[2026 ROS 스터디] 조하영 #1주차-설치/설정하기 1. Ubuntu 설치(1) Ubuntu 22.04 Desktop버전으로 설치 C드라이브 용량 문제로 WSL방법으로 Ubuntu 22.04를 설치함(2) 명령어 ls: 현재 경로의 파일이나 폴더 목록 pwd: 현재 경로 clear: 화면 정리 mkdir: 폴더 만들기 rm: 삭제 cd: 폴더 간 이동 2. ros2 Humble 설치공식 홈페이지 절차에 따라 설치 완료 3. bashrc 설정(1) bashrc: 터미널 실행할 때 먼저 실행되는 설정을 보관하고 있는 파일echo: python에서의 print와 같은 역할bashrc 창에서 환경설정 실습 (2) alias 설정alias를 통해 명령을 만들 수 있음*name과 value사이의 등호는 띄어쓰기 없이 붙여써야함
[2026 ROS 스터디] 김경모 ROS2 #1주차 - ROS 소개 및 설치 https://youtube.com/playlist?list=PL0xYz_4oqpvhj4JaPSTeGI2k5GQEE36oi&si=gFHcuFFw0vyedBun ROS2 스터디의 첫주차 학습으로 개발환경 세팅을 진행해 보았다 ROS2 프레임워크는 리눅스 기반의 Ubuntu에서 가장 안정적으로 작동하기 때문에 우선적으로 Ubuntu를 설치해주어야한다. UbuntuUbuntu는 리눅스 기반으로 만들어진 무료 오픈소스 운영체제로 과거 텍스트 명령어로만 다루던 리눅스와 달리 직관적인 그래픽 사용자 인터페이스를 제공하여, 리눅스 초보자도 마우스로 쉽게 조작할 수 있따는 장점이 있다. 또한 C언어 python 등 다양한 프로그래밍 언어어의 컴파일러와 라이브러리를 쉽게 설치하고 구축할 수 있기에 소프트웨어, 인공지능 ..
[2026 ROS 스터디] 김지섭 #1주차 - Ubuntu부터 ROS2 설치까지 sudo apt update - 우분투에서 패키지 목록을 최신 상태로 갱신하는 명령어sudo -> 관리자 권한으로 실행apt -> Ubuntu의 패키지 관리 도구update -> 설치 가능한 패키지들의 최신 목록을 서버에서 받아옴 ls - 현재 폴더에 있는 파일과 폴더 목록을 확인하는 명령어pwd - 현재 내가 어느 폴더(디렉터리)에 있는지 확인하는 명령어clear - 현재 화면을 정리하는 명령어mkdir - 폴더를 만드는 명령어rm - 파일이나 폴더를 삭제하는 명령어cd - 폴더 간 이동 명령어 .bashrc - 터미널(Bash)을 실행할 때 적용할 개인 설정을 저장하는 파일echo는 print()와 비슷한 역할 alias - 긴 명령어에 짧은 별명을 만들어주는 기능ROS 2에서 도메인 설정은 같은 네..
[2026 ROS 스터디] 윤준현 #1주차 R2R 입문 1-1, 2, 3 우분투 환경 구축우분투 설치는 버추얼 머신으로 진행 가상머신으로 우분투를 설치하던 중 Ubuntu 22.04 ISO 파일을 업로드하고 unattended install에 체크를 했더니22.10으로 잘못 인식하여 지가 잘못 설치를 함 -> 가상환경이 열리는데 터미널이 안 열림unattended install 체크박스에 체크를 풀고 버전을 22.04로 맞춰준 후 수동으로 설치를 했더니 정상 작동 우분투 설치 후 Terminator 설치 (터미널 창 분할이 되어 ROS에 도움이 됨) @ 오른쪽 yjh-VirtualBox : PC 이름@ 왼쪽 yjh : 사용자 이름~ : Home 경로ls : 현재 홈 경로의 파일이나 폴더 목록clear : 터미널 창 클리어 sudo -> 관리..
[2026 ROS 스터디] 김명원 #1주차 - Termianl과 ROS2 기초 #1 Terminal 명령어 1. ls - 경로의 파일이나 디렉토리(폴더) 목록 확인2. mkdir - 새로운 폴더 생성3. rm - 삭제라는 명령어 * -r은 폴더를 삭제하겠다4. cd - 디렉토리 이동 #2 ROS2 설치 및 bashrc 설정현재 우분투 버전이 24.04라서 ROS2 humble 설치에 제한이 있습니다.이번 스터디에서는 humble 대신 jazzy로 대체하지만 추후 humble로 전환하겠습니다. 1. ROS2 설치설치 과정은 생략했습니다.아래는 설치가 완료되었을 때 화면입니다.2. ROS2 실행source /opt/ros/jazzy/setup.bash - ros환경을 사용하기 위한 명령어아래는 잘 활용할 수 있는 상태가 되었는지 확인하는 코드 3. bashrc 활용subl ~/.b..
[2026 1학기 알고리즘 스터디] 김광철 #5주차 5주차 DP 알고리즘 스터디 블로깅 시작하겠습니다.이번 주차에는 동적 계획법, 즉 DP 문제들을 중심으로 풀었습니다.처음에는 점화식을 세우는 것이 어렵게 느껴졌지만, 문제들을 풀다 보니 이전에 구한 값을 이용해서 다음 값을 구한다는 공통점이 있다는 것을 알 수 있었습니다.1. 피보나치 수#include #include using namespace std;int solution(int n) { vector fib(n + 1); fib[0] = 0; fib[1] = 1; for (int i = 2; i 첫 번째 문제입니다.이 문제는 기본적인 피보나치 수를 구하고 나머지를 구하는 문제였습니다.피보나치 수는 앞의 두 수를 더해서 다음 수를 만드는 방식이라 어렵지 않았습니다.fib[i] = ..
[2026 1학기 알고리즘 스터디] 이상현 #3, 4주차 3주차 DFS/BFS최단/최소 → BFS, 모든 경우/경로 → DFS1. 타겟 넘버인덱스마다 +, - 분기하는 DFS.def solution(numbers, target): answer = 0 def dfs(i, total): nonlocal answer if i == len(numbers): if total == target: answer += 1 return dfs(i+1, total + numbers[i]) dfs(i+1, total - numbers[i]) dfs(0, 0) return answer끝까지 가서 비교 (중간에 같다고 카운트 X)부분집합 합 DP로도 풀림: 합 S일 때 (S+..
[2026 1학기 알고리즘 스터디] 박민규 #3주차 언어: C++ DFS와 BFS, 백트래킹에 대한 지식이 부족해서 GPT와 링크자료를 통해서 학습하 문제를 풀었습니다. 1. 타겟 넘버#include #include using namespace std;int answer = 0;void dfs(vector& numbers, int target, int idx, int sum) { if (idx == numbers.size()) { if (sum == target) { answer++; } return; } dfs(numbers, target, idx + 1, sum + numbers[idx]); dfs(numbers, target, idx + 1, sum - numbers[i..
[2026 1학기 알고리즘 스터디] 박승환 #4주차 이번 알고리즘은 자료구조+그리디다. 자료구조는 수업에서 배웠던 리스트 부터 시작해서 스택, 큐 등등 모든 것을 포함해서 말하는것이고 이번에 새로 알게된 것은 그리디(Greedy) 알고리즘으로 "탐욕 알고리즘"이라고도 한다. 그리디 알고리즘(Greedy Algorithm): "선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫒아 최종적인 해답에 도달하는 방법" 일정 공식은 없고 창의력을 요구하는 알고리즘이다. 즉 문제를 풀기 위해 최소한의 아이디어를 내야한다. 1. 올바를 괄호 #include using namespace std;bool solution(string s){ int ok = 0; for(int i = 0; i 이 문제는 간단한 문제로 괄호의 짝이 맞는지 확인 하는 문제이다..
[2026 1학기 알고리즘 스터디] 임동민 #3주차 안녕하세요! 알고리즘 스터디 3주차 DFS/BFS 시작하겠습니다! 1번 타겟넘버#include #include using namespace std;int answer = 0;void DFS(vector& numbers, int target, int index, int sum) { if (index == numbers.size()) { if (sum == target) { answer++; } return; } DFS(numbers, target, index + 1, sum + numbers[index]); DFS(numbers, target, index + 1, sum - numbers[index]);}int solution(..
[2026 1학기 알고리즘 스터디] 박승환 #3주차 이번 알고리즘은 DFS 와 BFS이다.DFS(깊이 우선 탐색)은 모든 경우의 수를 구하는 문제에 적절하다.BFS(너비 우선 탐색)은 최단 경로 같은 문제에 적합하다. 1. 타겟 넘버#include #include using namespace std;int answer = 0;void dfs(vector& numbers, int target, int index, int sum) { if(index == numbers.size()) { if(sum == target) { answer++; } return; } dfs(numbers, target, index + 1, sum + numbers[index]); dfs(numbers..
[2026 1학기 알고리즘 스터디] 고윤정 #4주차 4주차 알고리즘 스터디 시작합니당 올바른 괄호def solution(s): answer = True cnt = 0 for c in s: if c == '(': cnt += 1 else: cnt -= 1 if cnt - cnt )가 먼저 나오는 경우 판단- 마지막에 cnt != 0 확인 -> (가 안 닫힌 경우 판단- 카운터가 음수가 되면 즉시 False, 끝까지 순회 후 카운터가 0이면 True- 스택으로도 풀 수 있지만 괄호 종류가 1가지라 카운터로 풀이 기능개발import mathdef solution(progresses, speeds): answer = [] days = [math.c..
[2026 1학기 알고리즘 스터디] 고윤정 #3주차 안녕하세용 알고리즘 스터디 3주차 시작합니닷 타겟 넘버def solution(numbers, target): answer = 0 def dfs(i, s): # i: 현재 인덱스, s: 현재까지의 합 nonlocal answer if i == len(numbers): # 모든 숫자 다 사용했으면 if s == target: # 합이 target이면 카운트 answer += 1 return dfs(i + 1, s + numbers[i]) dfs(i + 1, s - numbers[i]) dfs(0, 0) ..
[2026 1학기 알고리즘 스터디] 이상래 #3,4주차 1. 타겟넘버class Solution { int answer = 0; public int solution(int[] numbers, int target) { dfs(numbers, target, 0, 0); return answer; } void dfs(int[] numbers, int target, int depth, int sum) { if (depth == numbers.length) { if (sum == target) answer++; return; } dfs(numbers, target, depth + 1, sum + numbers[depth]); dfs(n..

반응형