no image
[13]메카넘휠 로봇 IMU센서 작동 테스트(Ubuntu)
Ubuntu 20.04 LTS 환경에서 패키지 빌드 지난번 Window환경에서 exe실행파일을 통해 IMU센서 정삭작동을 확인하였다. Ubuntu에서 바로 테스트해보고자 하였으나 공식 Github 레포지토리에 AMD64 라이브러리가 잘못 올라와서 문의하고 수정된 걸 받고 하니 시간이 좀 걸렸다. [10] 메카넘휠 로봇 IMU센서 작동 테스트(Window) IMU센서 IMU센서는 엔티렉스에서 개발한 MW-AHRSv2를 사용하였다. MW-AHRSv1( 3축 가속도, 3축 자이로, 3축 지자기가 내장된 AHRS 모듈) 엔티렉스에서 2번째 선보이는 IMU 제품출시~!! 3축 가속도, 3축 자이로 merobot.tistory.com Ntrex에서 제공하는 ROS2 패키지를 빌드해본다. GitHub 레포지토리는 아..
2023.03.16
no image
[12] 메카넘휠 로봇 배터리 탑재 후 주행 테스트
소모전력 계산 로봇을 구성하는 각 부품들의 소비전력을 계산해보았다. 지난번 한이음 프로젝트를 할 때 로봇의 배터리 용량이 적어서 불편했던점을 감안하여 넉넉히 설계하였다. 전기를 먹는 부품들의 데이터시트에서 최고성능에서의 소비전력을 기준으로 하였다. DC모터같은경우 정상 작동 전류가 2.3A이지만 구동과 부하변화로 인해서 전류 피크를 찍을것을 대비해서 여유있게 설계해주어야 한다. 대략 5배 내외로 피크를 찍는다고 하니 단독으로 배정해주었다. Wh(시간당 소비전력)은 245.4로 계산이 되었다. 물론 로봇이 최고성능을 발휘할 때의 이야기고 이보다는 적게 소모될 것이다. 대략 5시간정도의 구동시간이면 충분할 듯 하였다. 따라서 다음과 같이 전력 분배도를 구성하였다. 배터리는 예상치와 비슷한 제품으로 선정을 하..
2023.03.14
no image
[11] 메카넘휠 로봇의 URDF 파일 만들기
URDF 파일이란? URDF는 Unified Robot Description Format의 줄임말이다. 로봇의 관절과 같은 Joint와 Link들 간의 관계를 정의하고 관성, 재료, 모델파일 등을 포함한다. 로봇을 제작하는 데 있어서 TF를 구성하는데 필수적인 요소이다. Fusion360 URDF export Fusion에서 컴포넌트로 전환 후 로봇의 Rotation와 Rigid 구속을 완료했다면 다음과 같은 화면일 것이다. 이제 Fusion360에서 URDF를 추출해 주는 애드온을 설치해주어야 한다. 애드온 파일은 깃허브에 있으며, "dheena2k2" 님께서 기존 ROS1에서의 Fusion2urdf를 수정하여 ROS2버전에 맞춘 것이라고 한다. ROS1 버전도 테스트해봤으며 정상적으로 작동했다. *R..
2023.03.14
no image
[10] 메카넘휠 로봇 IMU센서 작동 테스트(Window)
IMU센서 IMU센서는 엔티렉스에서 개발한 MW-AHRSv2를 사용하였다. MW-AHRSv1( 3축 가속도, 3축 자이로, 3축 지자기가 내장된 AHRS 모듈) 엔티렉스에서 2번째 선보이는 IMU 제품출시~!! 3축 가속도, 3축 자이로, 3축 지자기가 내장된 AHRS 모듈로, RS232및 CAN통신 지원, 알루미늄케이스를 가공하여 장착, 로봇제품이나 소형항공기용으로 독 www.devicemart.co.kr 해당 제품 구매시 케이블만 동봉되어있어서 RS-232와 CAN통신을 위해서 RS-232 to USB 혹은 CAN to USB 인터페이스 장치가 필요하다. 디바이스마트나 네이버에 검색해도 쉽게 나온다. RS-232 통신 보통 센서들이 직렬통신으로 데이터를 전송한다. 해당 IMU센서도 RS-232라는 직..
2023.03.09
no image
[9] 메카넘휠 로봇 SBC 전후좌우 제어
SBC 설치 저번에는 노트북에 아두이노를 직접 연결하여 테스트를 거쳤다. 이제 SBC에 아두이노를 연결하고 노트북트로 원격조종을 해보려 한다. SBC는 우선 Jetson Nano B01로 사용을 한다. Ubuntu 20.04 LTS에 ROS2 Galactic을 설치했다. Git 레포지토리를 이용해서 기존에 노트북에서 하던 작업 내용을 옮겼다. 글을 쓰는 시점에서 레포지토리는 비공개 상태이므로 작업의 편의를 위해 SSH를 발급받아 SSH클론 해주었다. 아두이노 1의 포트는 /dev/ttyACM0 아두이노 2의 포트는 /dev/ttyACM1 으로 각각 할당되었고 Bashrc 파일에 각 포트마다 chmod 666을 입력해주어 Permission Denied를 방지했다. 노트북과 SBC는 ROS_DOMAIN_I..
2023.03.08
no image
[8] 메카넘휠 로봇의 파라미터 변경을 통한 통합 런치파일 구성
ROS2 파라미터 각 노드는 자체적으로 파라미터 서버를 둘 수 있다. 사실 정말 유용하게 사용되는 기능인데, 노드가 실행되는 도중에도 실시간으로 파라미터를 변경하여 적용이 가능하다. 기존에 코드를 열고 변수를 바꿔줬던 것에 비해서 상당히 효율적이다! 이전 글에서 말했다시피 모터의 각속도 데이터를 시리얼통신으로 아두이노에게 보내주었다. 앞바퀴 둘, 뒷바퀴 둘 해서 각각 나누어 받게 될텐데, 이 때 노드를 앞바퀴용과 뒤바퀴용을 따로 만들어 구동하면 노드 스크립트를 두 개나 만들게 돼서 비효율적이다. 따라서 노드 스크립트는 하나만 사용하고 대신 파라미터를 변경할 수 있도록 해서 런치파일 작성시 각자의 파라미터만 지정해주어 편리하게 사용하고자 했다. motor_control.py 전체 소스코드는 다음과 같이 구..
2023.03.07
no image
[7] ROS2 메카넘휠 모터 제어
ROS2를 이용하여 모터를 제어해보자 모터를 제어하기 위해서 다음과 같은 과정을 생각했다. 1. 사용자로부터 로봇의 원하는 선속도와 각속도를 받는다. 2. 메카넘휠 역기구학 계산을 적용하여 선속도와 각속도를 모터의 각속도로 받는다. 3. 각 모터의 각속도를 임베디드보드(아두이노)로 전송한다. 4. (현재속도/최대속도)*255 를 계산하여 PWM제어의 255에 대한 비로 변환해주고 구동한다. 구동 사양은 다음과 같다. Laptop : 테스트할 때 사용 Jetson Nano(SBC) : 실제 적용 Arduino MEGA 2560 : 모터 구동 Laptop 혹은 SBC와 임베디드보드의 통신 사실 이 부분이 제일 힘들었다. 나름의 시행착오도 겪어가며 여러가지 방법을 고민했다. 보통 센서데이터 전송에는 Seria..
2023.03.05
no image
[4] YdLidar G4 라이다센서 데이터 받아오기
라이다센서 라이다센서는 Ydlidar의 G4모델을 사용하였다. 중국 회사의 제품이지만 가격대비 나쁘지 않은 성능을 보여준다. 그리고 아래 작성한 튜토리얼은 YdLidar가 아니더라도 대부분의 라이다와 ROS의 연동과정과 비슷하므로 참고해도 좋다. YDLIDAR|Focus on lidar sensor solutions Robot cleaner By providing low-cost, high-lifetime, small-sized, high-stability lidar, it helps intelligent sweeping robots easily implement application solutions such as mapping, obstacle avoidance and navigation. www.y..
2023.02.28
no image
로봇으로 주방을 혁신하는 기업들
주방에서 일하는 로봇 협동로봇의 기술력을 바탕으로 주방을 혁신하는 기업들이 있다. 협동로봇을 이용하면 제품의 생산성 증대, 균일한 품질을 기대할 수 있다. 이에 로보틱스 기업은 유명 프랜차이즈와 협약을 맺고서 각 매장과 레시피에 맞는 솔루션을 제공하고자 한다. 이미 유명해서 알고있는 기업들도 몇 있지만, 스타트업도 눈에 보인다. 퓨처키친 스타트업 퓨처키친은 프랜차이즈 본촌치킨과 손을 잡았다. 본촌치킨은 한국 부산에서 출발했지만 해외에서 더 유명해진 프랜차이즈다. 전 세계에 400여개의 매장을 두고 있어 국내와 해외시장을 동시에 노려볼 수 있게된다. 이미 퓨처키친과 본촌치킨은 400여개 매장에 적용가능한 솔루션에 대해서 PoC(기술검증)을 진행중이라고 한다. 전 세계 딜리버리 푸드를 요리하는, 퓨처키친팀입..
2023.02.24