본문 바로가기

Robot/ROS36

20강 ROS SLAM 1. SLAM Introduction 카메라 센서를 이용하여 3개의 점으로 위치를 찾자 천장에 AR 마커를 놓고 사용하는 방식을 쓴다.(천장의 높이가 일정하므로) 1. SLAM이란 동시적 로컬라이제이션과 맵핑 새롭게 무인도를 탐험하면서 지도를 생성하는 것.면 목표: 지도를 만들어 지속적으로 사용하자 2. SLAM의 문제점 1) 어떤 지도를 그릴 것인가 약도 형태로 간략하게 그려서 추정할 것인가. 아니면 완전한 3D그래픽으로 그릴 것인가. 얼마의 크기로 지도를 만들 것인가. 주변 환경 센싱 및 자기 위치 추정을위한 센서의 노이즈 주변 환경의 반복성 및 인식 모호성 -> 복도, 숲 등에서 쉽지 않다. 복도는 특징을 잡기 어렵다. 2) Grid Map 가장 많이 쓰는 2차원 맵 - 복잡하다. 확률 계산도 어렵.. 2022. 3. 16.
킴 - lane detector 결과 자율주행모드(Q)로 주행하니 커브길을 다음과 같이 SLIDE WINDOW로 차선을 인식하여 갈 수 있다. 특히 커브길에는 avg_val이 0이 되도록 PID 제어기에서 P GAIN이 동작한다. 여기서는 -0.1를 게인으로 설정했다. 커브 길을 지난 다음에는 차선 정 가운데에 위치하기 위해 dist_steer를 0으로 만들도록 코드가 작동한다. server.py openCV 가 아닌 ROS 자체에서 트랙바 기능을 코드로 구현 dynamic reconfigure cfg : 트랙바에 추가할 내용 e_stop.py -> lidar_e_stop.cfg으로 값이 들어간다. 라 lidar2D로 바꿔서 출력하라 scan:=lidar2D steering_publisher.py 바퀴로 차선 인식하는 코드 lidar... 2022. 3. 15.
민 - ar_maker ros melodic ar marker 을 검색 http://wiki.ros.org/ar_track_alvar ar_track_alvar - ROS Wiki Overview This package is a ROS wrapper for Alvar, an open source AR tag tracking library. ar_track_alvar has 4 main functionalities: Generating AR tags of varying size, resolution, and data/ID encoding Identifying and tracking the pose of individual AR tag wiki.ros.org 꼭 내가 쓰는 ROS 버전이 AR 마커를 지원하는지 확인해볼 것. 멜로딕.. 2022. 3. 15.
민 - ar_maker ros melodic ar marker 을 검색 http://wiki.ros.org/ar_track_alvar ar_track_alvar - ROS Wiki Overview This package is a ROS wrapper for Alvar, an open source AR tag tracking library. ar_track_alvar has 4 main functionalities: Generating AR tags of varying size, resolution, and data/ID encoding Identifying and tracking the pose of individual AR tag wiki.ros.org 꼭 내가 쓰는 ROS 버전이 AR 마커를 지원하는지 확인해볼 것. 멜로딕.. 2022. 3. 14.
민 - [20강] [FATAL] [1646976944.455246156, 68.666000000]: Failed to create the dwa_local_planner/DWAPlannerROS planner, are you sure it is properly registered and that the containing library is built? Exception: According to the loaded plugin descriptions the class dwa_local_planner/DWAPlannerROS with base class type nav_core::BaseLocalPlanner does not exist. Declared types are base_local_planner/Trajectory.. 2022. 3. 14.
킴 [이미지 처리] 컬러 스페이스 OS에 따라서 이미지가 RGB 또는 BGR로 다르게 들어온다. Binary image는 0,1으로 흑백만 보여준다. Gray Scale image는 0-255까지 밝기를 나타낸다. 각 R, G, B 채널에 8BIT씩 할당되어있다. HSV Color-space는 색, 채도, 명도를 나타낸다. cv2.cvtColor()를 사용하면 변경이 가능하다. 3가지 컬러별로 채널 cv2.imshow("image", self.frame) cv2.imshow("b", self.frame[:, :, 0]) # 0번째 채널을 보여달라. cv2.imshow("g", self.frame[:, :, 1]) cv2.imshow("r", self.frame[:, :, 2]) hsv cv2.imshow('hsv', hsv.. 2022. 3. 10.
킴 [OpenCV] http://wiki.ros.org/usb_cam usb_cam - ROS Wiki kinetic melodic noetic Show EOL distros: EOL distros: electric fuerte groovy hydro indigo jade lunar diamondback: Only showing information from the released package extracted on Unknown. No API documentation available. Please see this page for in wiki.ros.org 먼저, openCV의 버전을 확인해보자 kw-cobot@kwcobot-HGDT-Series:~$ pkg-config --modversion opencv 3.2.0 .. 2022. 3. 10.
킴 테스트3 토픽 주고 받기 아주아주 기본형태 1. 기본적인 publisher 코드 #! /usr/bin/env python import rospy from std_msgs.msg import String class SimplePubNode: def __init__(self): self.simple_pub = rospy.Publisher( "/msg", String, queue_size = 5) print("init node") def pubMsg(self): self.simple_pub.publish("Hello world!") def run(): rospy.init_node("simple_pub") spn = SimplePubNode() # Instance rate = rospy.Rate(5) while not rospy.is_.. 2022. 3. 9.
킴 테스트3 토픽 주고 받기 아주아주 기본형태 1. 기본적인 publisher 코드 #! /usr/bin/env python import rospy from std_msgs.msg import String class SimplePubNode: def __init__(self): self.simple_pub = rospy.Publisher( "/msg", String, queue_size = 5) print("init node") def pubMsg(self): self.simple_pub.publish("Hello world!") def run(): rospy.init_node("simple_pub") spn = SimplePubNode() # Instance rate = rospy.Rate(5) while not rospy.is_.. 2022. 3. 8.