
0. 사전작업: 초음파센서 - 아두이노 - PC연결 아래 글에서 1, 3번 과정을 진행하면 된다. 2021/01/13 - [프로그래머스 자율주행스쿨] - Ubuntu16.04 - 아두이노 나노 - 초음파센서(HC-SR04) 실습 Ubuntu16.04 - 아두이노 나노 - 초음파센서(HC-SR04) 실습 1. 아두이노 PC에 연결 아두이노를 USB케이블로 연결한다. PC에서 아두이노 연결 확인 -> 'HL-340 USB 어쩌구' 확인 lsusb USB를 꽂고 위에 Virtual Machine으로 연결했는데도 lsusb명령어를 실행했을 때 'HL-3.. donie.tistory.com 1. ultrasonic 패키지 패키지 생성 catkin_create_pkg ultrasonic std_msgs rospy ..

1. 문제 : 데이터 크기에 따른 전송속도 측정 1초에 1번씩 다양한 용량의 long_string을 발행한다. 문자열은 #으로 가득 채운다. 발행하는 토픽 이름은 long_string, 타입은 String (문자열) 1M, 5M, 10M, 20M, 50M byte전송한다. receiver측에서 수신속도 계산한다. 송수신 속도의 단위 : Bps (Byte/sec) 로 측정한다. 1-1. 소스 파일, 런치파일 sender_speed.py #!/usr/bin/env python import rospy import time from std_msgs.msg import String, Int32 rospy.init_node('Sender') pub = rospy.Publisher('long_string', Stri..

1. 문제 : 협업해야 하는 노드를 순서대로 기동시킬 수 있는가? 4개의 sender 노드와 1개의 receiver노드를 기동한다. sender 노드들은 receiver에게 메시지를 보내는데, 순서대로 receiver는 도착하도록 한다. First - Second - Third - Fourth 이렇게 출력해야. 앞에 있는 노드가 움직이기 전에 먼저 움직여서는 안된다. (움직인다 = 토픽을 보내는 것) 1-1. 패키지 생성 order_test 이름의 패키지 생성. cd xycar_ws/src/ catkin_create_pkg order_test std_msgs rospy cm 1-3. 소스, 런치 파일 receiver.py #!/usr/bin/env python import rospy from std_ms..

1. 문제 : 주기적 발송에서 타임슬롯을 오버하면 어떻게 되는가? receiver 측에서 토픽을 받을 때, 타임슬롯을 오버하게 되는 경우, 오버된 타임슬롯에서 토픽은 버리는지? 늦은 것을 이어서 처리하는지? 늦은 것을 처리하는데 타임 슬롯을 지키면서 처리하는지? 타임 슬롯 개념. 1-2. 파이썬 파일 teacher_int32_job.py #!/usr/bin/env python import rospy import timeit from std_msgs.msg import Int32 rospy.init_node('teacher') pub = rospy.Publisher('msg_to_student', Int32, queue_size=0) rate = rospy.Rate(5) def do_job(time): f..

1. 문제 : 도착하는 데이터를 미처 처리하지 못하면 어떻게 되는가? 받는 쪽이 버벅대게 만들어 놓고 데이터를 왕창 보낸다. 구독자의 콜백함수 안에 시간이 많이 걸리는 코드를 넣어서 토픽 처리에 시간이 걸리도록 한다. 콜백함수가 끝나지 않았는데 토픽이 새로 도착하면 어떻게 되는가? 1-1. 파이썬 파일 작성 sender_overflow.py #!/usr/bin/env python import rospy from std_msgs.msg import Int32 rospy.init_node('Sender') pub = rospy.Publisher('my_topic', Int32, queue_size=10) rate = rospy.Rate(1000) count = 1 while not rospy.is_shutd..

1. 통신 프로토콜 (TCP/IP계열) XMLRPC프로토콜 : 노드들이 마스터와 통신할 때 이용. TCPROS프로토콜 : 각 노드간 통신할 때 이용. ROS에서 노드와 노드가 서로 통신하면서 협업을 한다. 단일 하드웨어 안에 있는 노드끼리도 네트워크로 통신한다. 즉, 내 컴퓨터 안의 노드들끼리도 네트워크로 통신을 한다. 약간의 오버헤드가 있지만, 확장성을 위해 그렇게 한다. 마스터의 IP주소는 모두가 알고 있어야 한다. ※ 원격통신 환경 구축 및 실습 2020/12/24 - [ROS] - Ubuntu16.04 ROS Kinetic - 원격통신 환경 구축 및 실습 Ubuntu16.04 ROS Kinetic - 원격통신 환경 구축 및 실습 0. 개요 공인 IP는 전 세계에서 하나뿐인 IP주소. 사설 IP는 ..

0. 개요 공인 IP는 전 세계에서 하나뿐인 IP주소. 사설 IP는 공유기 안의 주소. 사설IP를 가지고 있는 여러 장치를 "포트 포워딩"을 이용하여 연결한다. teacher에 대해서 1024~65000 범위 내의 포트로 포트 포워딩. 1. 공유기 포트 포워드 설정 인터넷 창을 켜서 http://192.168.0.1 로 접속한다. 로그인, 관리도구로 들어간다. 비밀번호를 모르면 나와있는 디폴트값으로 먼저 시도, 안되면 아빠한테 물어봐야.. 고급 설정 - NAT/라우터 관리 - 포트포워드 설정 탭에 들어간다. 아래와 같이 규칙을 작성하고 적용을 누르면 내부 IP주소가 잘못되었다고 한다. ifconfig를 실행했을 때 나오는 주소였는데, 어떻게 해야할지 모르겠어서 현재 접속된 IP주소 박스를 체크하였다. 적..

1. 문제 : 누락없이 모두 잘 도착하는가? 특히 처음과 끝. sender가 보내는 메시지를 receiver가 처음부터 끝까지 누락없이 잘 받는지 확인하기. 못 받는다면, sender가 못 보내는 것인지? receiver가 못 받는 것인지? Publisher와 Subscriber의 실질적인 통신 구축에 지연시간이 존재한다. 받는 쪽에서 준비가 안됐는데 토픽을 보내면? -> 못 받고 잃어버린다. 1-1. 파이썬 파일 작성 sender_serial.py #!/usr/bin/env python import rospy from std_msgs.msg import Int32 rospy.init_node('sender_serial') pub = rospy.Publisher('my_topic', Int32) rate..
- Total
- Today
- Yesterday
- 우분투
- set backspace
- 포트인식문제
- 8자주행
- 원격 통신
- 백준알고리즘
- Python
- umount
- VirtualBox
- 초음파센서
- 리눅스
- sensehat
- vue/cli
- Mount
- 아두이노 IDE
- 프로그래머스
- C++
- 윈도우 복구
- subscriber
- Publisher
- Ubuntu20.04
- python3
- 코드리뷰
- 윈도우
- HC-SR04
- ROS
- roslaunch
- VMware
- filesystem
- Ubuntu16.04
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |