raspbian buster(10) os 라즈베리파이 3B+ROS1 실행을 위함와이파이를 겨우 연결했다.. 우분투나 최신 라즈비안 os 같은 경우 와이파이 세세한 설정이 가능한데 옛날 os를 라즈베리파이에 설치하다보니 첫 단추부터 진이 빠진다.우선 기존 우분투에서 eduroam 와이파이에 연결하려면 TLS 터널링 클릭 -> 인증기관 인증서 불필요 체크 -> 학교 웹메일 아이디 입력 -> 비밀번호 입력 하면 연결된다.하지만 라즈베리파이 (라즈비안 10 버전?) 의 경우 해당 와이파이를 클릭하기도 전에 eduroam 와이파이가 비활성화 되어있었다. 때문에 터미널창에서 수동으로 연결하는 방법밖에 없었다. 다만 검색해도 일반적으로 만 입력하는 경우가 대다수였고 학교 와이파이같은 특수한 경우는 별로 없었다.우..

ROS는 2007년 스탠포드 대학 AI LAB의 프로젝트에 사용된 인공지능 로봇의 개발을 위해 만든 Switchyard 에서 시작했다. 그리고 2008년 로봇 전문 기업 윌로우게러지가 이어받아 ROS라는 이름으로 개발하기 시작했다. 2010년 ROS Box Turtle이라는 이름으로 첫 ROS가 릴리즈되었고 새로운 버전이 이어지고 있다. 현재는 OSRF(Open Source Robotics Foundation)이 관리를 맡고 있으며 오픈 소스로 공개되어 있다. ROS1은 개발 당시 단일 로봇, 리눅스 환경, 실시간 제어 불가능, 안정된 네트워크 환경, 연구용 등과 같은 제한 사항이 있었다. 때문에 새로운 개발 환경이 요구되면서 ROS2가 개발되었다. ROS1과 비교하여 ROS2에는 다음과 같은 특징이 있..
로봇 경진대회에서 사용하기 위해 opencv를 처음 사용해보았는데 어떤 부분 위주로 사용했는지 기초부터 정리해봐야겠다.그냥 파이썬에서 실행하는 것과 ROS에서 opencv를 사용하는 게 섞여있다.이미지 불러오기img = cv2.imread('test.jpg')cv2.imshow('frame',img)cv2.waitkey(0)cv2.destroyAllWindows()#혹은while True: keycode = cv2.waitKey(0) if keycode == ord('x'): break비디오 불러오기video = cv2.VideoCapture('test.mp4')if not video.isOpened(): print("Video is unavailable :", filepath) exit(0)카메라에서..
서비스 서버, 클라이언트 만들기 (service_server.py)서비스 서버의 구조서버 노드 만들기(클래스)init 정의서버를 만드는 함수 self.create_service(만든 서비스 타입, 이름, 실행함수)callback 함수 정의 (response 반환)client 로부터 request 받으면 실행main 함수객체화spin 실행shutdownif 문서비스 서버 만들기구독, 발행 노드를 만들때는 create_subscription, create_publisher를 이용했던 것처럼 이번에는 create_service를 이용한다.multi_spawn이란 이름의 MultiSpawn 데이터 타입의 서비스를 호출?callback 함수에서는 request와 response를 받고from my_first_pa..

서비스 정의 만들기srv 폴더 만들기메시지 패키지 (my_first_package_msgs) 에 srv 폴더 만들기메시지 만들때는 msg 만들었다면 서비스는 srv 폴더를 만듦srv 파일 만들기원하는 .srv 파일을 만듦메시지 msg는 종류가 한 가지 이지만 서비스는 request와 response로 두 가지이기에 구분이 필요함--- 구분자 이용하여 구분을 하는 것임int64 num---float64[] xfloat64[] yfloat64[] thetaCMakeLists.txt 수정이전에 만들었던 msg 파일과 마찬가지로 srv 파일을 알려줌 find_package(rosidl_default_generators REQUIRED)rosidl_generate_interfaces(${PROJECT_NAME} ..

이전에 대회에 나갔을 때 기존에 있는 패키지를 바탕으로 코드를 수정하면서 원하는 방향으로 로봇이 움직이도록 만들었다. 이때 내가 처음부터 작성한 코드가 아니기에 조금만 수정해도 오류가 발생했다. 코딩, 프로그래밍을 한 것이 처음이었기에 이때부터 디버깅이라고 해야할지 로그를 남기는 것의 필요성이 중요하게 다가왔다. 하지만 ROS에서 로그를 남기는 방법이 다양해서 어떤 방법을 사용할지 몰라 그냥 print를 이용했었다. ㅎㅎ 이번에 로그 관련 강의가 올라와 이 부분이 궁금해 먼저 글을 써보려고 한다.우선 혹시 모르기 때문에 rqt 관련 파일?을 설치한다.sudo apt install ros-humble-rqt*터틀심 실행하고 rqt를 실행하자!플러그인 - 로깅 - 콘솔 선택rqt 플러그인으로 로그를 관찰할 ..
항상 그랬듯 새로운 파이썬 파일 만들고서는 setup.py 수정하기setup.py에서 엔트리 포인트를 추가해주어야 함 두 가지 토픽을 구독하는 노드 만들기import rclpy as rp from rclpy.node import Nodefrom turtlesim.msg import Posefrom geometry_msgs.msg import Twistfrom my_first_package_msgs.msg import CmdAndPoseVelclass CmdAndPose(Node): def __init__(self): super().__init__('turtle_cmd_pose') self.sub_pose = self.create_subscription(Pose, '/turt..

메시지 정의 패키지 만들기패키지는 src 폴더에서 만들어야한다.ros2 pkg create --build-type ament_cmake my_first_package_msgs이전에 패키지를 만들 때에는 ament_python을 썼는데c++ 문법을 쓰진 않지만 ament_python이 메시지 빌드가 안되기 때문기존에 만든 에서 사용할 메시지를 정의할 것이기에_msgs 라는 이름의 패키지를 만듦왜 데이터 타입이 있는 패키지를 따로 분리해서 만드냐?메시지만 따로 빌드할 수 있다로봇의 버전이 달라도 원격 pc에서 핸들링이 쉽다..?새로운 패키지가 만들어졌음을 볼 수 있다.setup.py 대신 CMakeLists.txt 파일이 있다.메시지 정의 파일 만들기만든 패키지 폴더에 들어가서 msg 폴더를 만든다.그리고..
- Total
- Today
- Yesterday
- 리브모바일
- 네이버페이
- 티스토리챌린지
- mealy
- 카시오
- 알뜰 요금제
- 리브엠
- 배송기간
- 경북대
- 타란튤라
- 방어동작
- a모바일
- 계산방법
- 북문
- 할인
- 오블완
- 카카오페이
- 10만포인트
- 파스타
- 방향장
- 문서 스캔
- 메쉬 밴드
- f-94w
- f-91w
- 알뜰폰요금제
- 알리익스프레스
- 시계 줄
- Liiv M
- 교체
- 맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |