no image
[1] 메카넘휠 모바일 매니풀레이터 설계 - 주행부 PART1
로봇의 목적 제작하려는 로봇의 목적은 "좁은 물류현장에서의 피킹작업 수행"이다. 로봇의 하드웨어 특징 첫 번째로 로봇의 바퀴의 특징을 설명한다. 로봇의 바퀴는 참 다양하다. 대표적으로는 다음과 같다. 시스템 2-wheeled(with ball caster) 우리가 ROS에 입문할 때 흔히들 사용하는 TurtleBot이나 소형 자율주행로봇에 사용. 4-wheeled(전륜, 후륜, 4륜) 보통의 자동차나 자율주행 로봇에 사용. Omni directional 차량이나 자율주행 로봇에 사용. 주로 실내 산업현장에서 사용되고 있음. 좁은 물류현장이 타겟인 만큼 Omni directional 구동방식중 메카넘휠을 채택했다. 구현방법이 다른 것에 비해 간단하고 실제 산업현장에서 널리 사용되는 방식이기 때문이다. 각 ..
2023.02.03
[머리글]메카넘휠 모바일 매니퓰레이터 만들기
시작 학부동안 누릴 수 있는 혜택으로 실무 경험을 쌓아보고자 동아리 사업에 발을 담궜다. 지원금은 500정도로 하고싶은 모든걸 해볼 수 있을테니 정말 좋은 기회다. 동아리 등록은 1월 초에 하였다. 성과보고회는 2월 중순쯤이라 사실 완벽한 모바일 로봇을 완성시키기 어려운 시간이다. 어림잡아 한 달간은 설계와 발주를 진행하고 동시에 기초 제어코딩을 끝마쳐야 2월 들어서 바퀴정도는 움직이지 않을까 싶다. 목표 기간이 짧은만큼 목표를 잘 설정해야했다. 너무 지나치치 않게, 하지만 동기부여가 될정도로?! 그래서 성과보고회가 끝마무리되는 2월 중순까지 설정 목표는 다음과 같다. 모바일 매니퓰레이터 Teleop Keyboard Node로 구동. 매니풀레이터가 Desired Pose를 잘 추종할 수 있도록 제어. 이..
2023.02.03
no image
[한이음_ROS2] 수집한 센서 데이터를 CSV 파일로 추출하기
개발환경 SBC : Raspberry Pi 4B 4GB PC : Ubuntu20.04 LTS 설명 온습도 센서, 미세먼지 센서, 유해가스 센서로부터 수집한 데이터를 서브스크라이브하여 CSV 파일로 추출한다. CSV파일의 데이터를 이용하여 인공지능 모델을 학습한다. 구분자는 ' , ' [컴마] 이다. 년 | 월 | 일 | 시간 | 구역 | 온도 | 습도 | 오염도 과정 소스코드 import rclpy import pandas as pd import datetime as dt from rclpy.node import Node from rclpy.qos import QoSDurabilityPolicy from rclpy.qos import QoSHistoryPolicy from rclpy.qos import ..
2022.08.06
no image
[한이음_임베디드]우분투에서 라즈베리파이 UART 활성화
개발환경 SBC : Raspberry Pi 4B 4GB PC : Ubuntu20.04 LTS 설명 라즈베리파이에서 UART통신을 하여 정보를 받는 미세먼지 센서를 이용하려한다. 라즈베리파이는 기본적으로 6개의 UART를 활성화 할 수 있다. 이중 블루투스에 하나가 할당되어 5개의 UART를 사용자의 입맛에 맞게 활성화 할 수 있다. 물론 상황에따라 블루투스를 오프로 돌리고 6개를 사용할 수도 있다. 과정 1. 라즈베리파이에 raspi-config 를 설치한다. https://merobot.tistory.com/25 [Ubuntu]라즈베리파이 4B raspi-config 설치오류날때 wget https://archive.raspberrypi.org/debian/pool/main/r/raspi-config/..
2022.07.09
no image
[한이음_ROS2]오염도에 따른 Fan PWM 제어 노드
개발환경 Desktop Ubuntu20.04 LTS Raspberry pi 4b 4GB ROS2 foxy 설명 미세먼지 측정 센서로부터 받아온 오염도 수치를 바탕으로 Fan을 제어한다. 오염도 수치에 따른 Fan모드는 다음과 같이 지정하였다. 저속모드 : 0 중속모드 : 1 고속모드 : 2 터보모드 : 3 현재는 미세먼지센서가 구비되어있지 않아 가상으로 토픽을 발행하여 테스트 하였다. 과정 1. 미세먼지 측정 노드로부터 0 ~ 3 까지의 오염도 수치를 서브스크라이브 한다. 2. 서브스크라이브한 오염도 수치를 바탕으로 Fan을 PWM제어 한다. 소스코드 import rclpy from rclpy.node import Node from rclpy.qos import QoSDurabilityPolicy fro..
2022.06.28
no image
[한이음_ROS2]습도값을 받아 릴레이를 조작하는 노드
개발환경 Desktop Ubuntu20.04 LTS ROS2 foxy 설명 지난번 만들었던 온습도센서 퍼블리시 노드를 기반으로 한다. 하지만 매번 라즈베리의 GPIO를 통해 센서데이터를 받아오기 불편하다는 단점이 있다. 따라서 임의값을 지정하여 온습도 데이터를 퍼블리시하였다. 온습도 데이터중, 습도 데이터에 따라 가습기에 연결된 릴레이 스위치를 작동시킨다. 사람이 가장 쾌적할 수 있는 습도 범위는 40% ~ 60%라고 한다. 따라서 그 중간값인 50%를 기준으로 작동을 지시한다. 과정 1. DHT_FAKE_PUB 노드를 통해 임의의 온습도 데이터를 퍼블리시한다. 2. RELAY_PUB 노드가 이를 서브스크라이브 한다. 3. 서브스크라이브한 습도를 가지고 IF문을 거친다. 4. 정수형태의 1과 0을 퍼블리..
2022.06.26
no image
[한이음_ROS2]온습도 센서 Publisher
개발환경 Raspberry pi 4 4GB Python 3.8 설명 자율주행 공기청정기의 온습도 정보를 받기 위해 DHT 11 센서를 이용했다. 파이썬을 이용하여 패키지를 제작하였다. DHT 11 센서는 라즈베리파이 전용 라이브러리가 존재한다. 따라서 패키지를 실행하기 위해서는 아래 깃에서 설치 과정을 따라 하기로 한다. https://github.com/adafruit/Adafruit_Python_DHT GitHub - adafruit/Adafruit_Python_DHT: Python library to read the DHT series of humidity and temperature sensors on a Raspberry Python library to read the DHT series of ..
2022.06.19
no image
[Jetson Nano]젯슨나노 전원 인가가 안될때!
잡히지 않는 시그널 젯슨 나노를 구매하고 적절한 아답터를 전원부에 꽂고 HDMI도 정상적으로 연결했건만...!? 계속해서 잡히지 않는 신호... 그래서 다음과 같이 순서를 정하고 문제를 해결해 나갔다. #1. 아답터 파워 불량 #2. 보드 전원손상 #3. SD카드 OS 설치 또는 인식 불가 #4. HDMI 케이블 불량 다행히 아답터 파워 불량은 아니었고, SD카드에 OS를 굽는 것도 올바른 절차를 거쳤으며, HDMI 케이블 신호도 정상이었다. 아뿔싸... 그럼 보드가 불량인 건가!! 대학생에겐 저렴한 가격도 아니기에 식은땀만 줄줄.. 계속해서 서칭을 통해 방법을 찾던 중 굉장히 사소한 한 가지가 전원인가를 방해하고 있었단 사실을 알게 되었다. J48 점퍼 핀 J48은 젯슨 나노 보드의 회로도에 표기된 넘..
2022.01.02