전체 글 (1091) 썸네일형 리스트형 [2026 ROS 스터디] 윤준현 #4주차 1 - 5~8, 2 - 1~6 1-5 내 package에서 topic 구독해보기 코드를 작성하거나 바꿨으면 빌드해줘야함빌드했으면 환경을 다시 읽어야함 my_first_package에 있는 my_subscriber로 토픽 구독하기 1-6 실습my_subscriber.py 생성 후 실행되면 까꿍 출력되는 코드 작성 my_subscriber.py가 들어있는 파일에 들어가서 실행해보니 잘 되는 모습(파일 이름에 오타는 후에 수정함) 저 __name__ , __main__은 무엇인가?__name__을 출력해보았더니__main__이 뜨는 모습 이 파일이 불려오기만 해도 __name__이 출력되게 코드를 작성함 my_subscriber 가 뜨는 모습 pose 토픽 구독할 노드를 만들기 위해 코드 작성 이 e.. [React] ForEach, Map [이 블로그는 리액트 챌린지를 듣는 친구들에게 블로그를 쓸 때 어떤 식으로 작성하면 좋은지를 보여주는 예시입니다.] 트위터 클론코딩 강의를 듣는 중에, 코드 챌린지로 닉네임을 편집할 수 있는 코드를 작성했다. 단순히 닉네임만 바꾸는 것은 쉽게 성공했지만, 전 닉네임으로 작성했던 트윗들에 명시되어있는 닉네임들도 바꾸기 위해 코드를 작성했는데,forEach문을 사용해서 도큐먼트들을 하나씩 순회하는 코드를 작성했다. 작성하면서 map과 forEach의 차이가 무엇인지 궁금해져서정리하는 글을 작성하기로 했다.또한 React 내부에서 For 반복문보다 ForEach와 Map을 사용하는 이유도 정리해보려고 한다.Promise란?Promise는 비동기 작업의 결과를 담는 객체이다.즉, 미래에 완료될(or 실패할) .. [2026 ROS 스터디] 윤준현 #3주차 4-1,2,3 5-1,2, 응용 1-1,2,3,4 4-1 Python으로 topic 구독 해보기 이 명령어로 sub_test 노드를 만드는 데 성공 데이터를 예쁘게 한 번 출력해주는 함수를 하나 생성 후 Pose라는 데이터 타입을 쓰는 /turtle1/pose 라는 토픽을 구독하게 test_node한테 시킴그리고 토픽이 들어올 때마다 callback 함수 실행 turtlesim이 pose 토픽을 보내고, sub_test 가 받고있다는 것을 rqt_graph로 확인 rp.spin_once() 명령어로 한 번 토픽 받기그냥 rp.spin()쓰면 계속 들어옴 4-2 Topic을 받는 횟수를 제한하기 callback 함수를 수정하여 원하는 개수만큼 받게 만들 수 있다 4-3 ROS2 Topic .. [2026 ROS 스터디] 조하영 #3주차 # 4-1 Python으로 topic 구독1. callback함수callback함수: 토픽을 받을 때마다 어떤 일을 수행하게 하는 함수 rclpy와 pose 메세지 타입을 임포트 rp.init을 두번 실행하면 오류create_node('sub_test')를 통해 노드 생성 node와 pose 확인 가능 callback함수 정의turtle1의 pose 데이터를 출력test_node에서 pose 데이터타입을 불러오고 callback실행 /turtlesim에서 /sub_test로 흐르는 topic 실제로 pose 데이터가 출력됨 callback에 x, y, theta값 출력을 추가했기 때문에 restart 후 다시 실행해야 함rp.spin(test_node)로 현재 pose데이터 계속 확인 가능 # 4-2 t.. [2026 ROS 스터디] 김하늘 #3주차 4-1. python으로 topic 구독해보기# 1import rclpy as rpfrom turtlesim.msg import Pose# 2rp.init()test_node = rp.create_node('sub_test')# 3def callback(data): print("--->") print("/turtle1/pose : ", data) print("X : ", data.x) print("Y : ", data.y) print("Theta : ", data.theta) # 4test_node.create_subscription(Pose, '/turtle1/pose', callback, 10)# 5rp.spin_once(test_node)# rp.spin(test_node.. [ROS2 스터디]Python으로 Topic/Service 다루기 + Package와 Node 만들기 20245284 김태우 #3주차 이번 주에는 지난 시간에 터미널 명령어로 확인했던 Topic과 Service를 Python 코드에서 직접 다뤄보고 이후에는 ROS2 Package와 Node를 직접 만들어 실행해보는 과정을 진행했다. 처음 ROS2를 공부할 때는 ros2 topic list, ros2 service list같은 명령어를 입력하면서 이미 만들어진 기능을 확인하는 정도였다면 이번에는 내가 직접 Subscriber, Publisher, Service Client를 만들고 Node를 실행해보는 단계까지 넘어갔다 1. Python으로 Topic 구독하기먼저 turtlesim의 /turtle1/pose Topic을 Python에서 구독해봤다. /turtle1/pose에는 거북이의 현재 위치와 방향 등의 정보가 계속 전달된다. im.. [2026 ROS 스터디] 서재민 #3주차 용어 정리노드: ROS2 통신에 참여하는 실행 단위로, 구독·발행·서비스 호출은 모두 노드가 수행합니다. 토픽: 이름이 붙은 데이터 채널입니다. 발행자는 누가 듣는지 모르고, 이름과 타입만 알면 누구나 구독할 수 있습니다. 타이머: 지정한 주기마다 콜백을 호출하는 기능으로, 토픽을 일정 간격으로 발행할 때 사용합니다. 서비스: 클라이언트가 요청하면 서버가 처리하고 응답하는 1:1 통신입니다. srv 정의의 --- 위가 요청, 아래가 응답입니다. 서비스 클라이언트: 서비스에 요청을 보내는 쪽으로, create_client로 만들고 call_async로 요청합니다. 요청을 받아 처리하고 응답하는 쪽은 서비스 서버입니다. call_async와 future: call_async는 응답을 기다리지 않고 반환하며,.. [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+.. 이전 1 2 3 4 ··· 44 다음