-
[ROS] Asulada Ver. 1Engineer/Robotic 2016. 9. 29. 22:51
Asulada Ver. 1
Created date : 2016.09.29
Last updated : 2016.11.05
안녕하세요. 꿈꾸는 개발자 몽키준입니다.
Maker Fair 2016 에 출품하게 될 Asulada Project 를 준비하면서 Asulada Ver.1 을 소개하려고 합니다.
1. 프로젝트 소개 및 행사 내용
네이버 카페 '오로카' 에서 2016년 3월부터 진행한 수요모임 중 하나인 일명 '아슬하다'란 프로젝트로 진행했습니다. 2016년 10월 15~16일 양일간 열리는 'Maker fair 2016' 에 참여했습니다. 네트워크가 불안정하고 많은 사람들이 오가는 열악(?)한 상황이라 준비한 모든 기능을 전시하지 못했지만 프로젝트의 최종 목표를 달성하는데 의의를 두었습니다.
아슬하다 프로젝트 하드웨어 중에 1호기는 일본 만화 '아수라다' 를 모티브로 한 디자인에 ROS(Robotic Operating System) 를 활용하여 영상인식(OpenCV) 및 모터,LED 를 제어하여 얼굴 트래킹 기능을 수행합니다. 아직은 ROS의 기본 기능만을 이용한 것으로 앞으로 진행할 프로젝트에서 보다 다양한 기능을 추가할 예정입니다.
2. 주요기능
얼굴 인식(OpenCV), HRI(모터제어, LED 제어), 3D 모델링 및 프린팅
3. 주요활동
2016.4월 ~ 5월 ROS 로봇 프로그래밍 강의 by 표윤석
2016.7.5 5th ROS meet up @Robotis
- http://www.ros.org/news/2016/07/5th-ros-meetup-in-korea.html
2016.10.8~9 RosCon2016@Conrad Hotel
- http://roscon.ros.org/2016/
2016.10.15~16 MakerFair2016 @서울혁신파크
- http://korean.visitkorea.or.kr/kor/bz15/where/festival/festival.jsp?cid=2034306
4. HW 사양
라즈베리파이 3, 로지테크 USB 카메라, Dynamixel EX-106, USB 스피커, USB 마이크(제외)
5. SW 구현부
5-1. 구조도
5-2. SW 버전 정보(설치방법)
OS : 우분투 mate 16.04
ROS : Kinetic
5-3. 설치 및 동작 방법
5-3-1 opencv 를 설치하고 haarcascades설치경로를 확인한다.
$> sudo apt-get install ros-kenetic-opencv
$> find / -name haarcascade_frontalface_alt.xml
: 제 PC에서는 "/opt/ros/kinetic/share/OpenCV-3.1.0-dev/haarcascades/" 에서 설치되며 asulada_core/src/Vision.cpp 에서 경로를 맞게 수정한다. 참고로 opencv_app 에서는 "/usr/share/opencv/haarcascades/"로 되어 있습니다.
5-3-2 asulada 코드를 /home/{user}/catkin_ws/src 에 설치한다.
$> cd /home/{user}/catkin_ws/src; git clone http://github.com/JuneKim/asulada
$> cd ../
$> catkin_make
5-3-3 Dynamixel SDK 를 설치한다.
http://cafe.naver.com/openrt/14927
5-3-4 roscore 를 실행한다.
$> roscore &
5-3-5 모터 제어 노드 실행(설치 방법)
파일 위치 : dynamixel_position_controller/include/dynamixel_position_controller/dynamixel_position_controller.h
$> sudo chmod a+rw /dev/ttyUSB0
만약 UART2RS485 모듈을 사용하는 경우에는 "/dev/ttyAMA0" 의 권한을 변경하면 된다.
//#define DEVICENAME "/dev/ttyUSB0" // Check which port is being used on your controller #define DEVICENAME "/dev/ttyAMA0" // Check which port is being used on your controller
5-3-6 camera device 경로를 자신의 디바이스 환경에 맞게 camera node 의 장치를 설정해 수정해 줍니다.
: 제 경우 라즈베리파이 카메라가 문제가 생겨 시중에서 판매하고 있는 저렴한 usb cam 를 사용하였습니다. "universal usb camera driver" 를 지원하는 모델로 연결시 /dev/usb0 로 잡히게 됩니다.
5-3-7 asulada_core, dynamixel node, usb_cam 노드 실행
$> roslaunch asulada_core asulada.launch
4-3-8 이젠 고개를 좌우로 움직이면서 모터의 움직임을 확인한다. 만약 얼굴인식이 되지 않는다면 가까이 있는 라이트를 치우거나 정면샷을 찍히도록 고개를 움직여 본다.
5-4. 코드
http://github.com/JuneKim/asulada
6. 기구부
[1호기]
[2호기]
https://cad.onshape.com/documents/b65c867094b986e836936564/w/d695637d0a02eb3107cb77f2/e/3d0df87391fcb6e20f5d472d
7. 주요사진
[도색작업] 차량용 락카 사용
[메이커페어]
이상 Asulada 프로젝트 소개를 마치겠습니다.
'Engineer > Robotic' 카테고리의 다른 글
[ROS] rosserial 사용하기 (0) 2017.05.24 [ROS] 아두이노 dot matrix with MAX7219 (0) 2017.02.19 [ROS] install roscore (0) 2016.09.22 [ROS] run node with gdb (0) 2016.08.23 [ROS] 노드 리매핑 (0) 2016.06.01