본문 바로가기
프로젝트정리, uArm관련/학생플젝

자동화 물류 시스템

by 알 수 없는 사용자 2022. 2. 4.
프로젝트명 자동화 물류 시스템
프로젝트 소개
및 구성도
turtlebot 과 arm 과 vision 을 이용한 물류 자동화시스템 구현

프로젝트 동작 순서 요약
- 프로젝트 실제 환경은 터틀봇에 제품를 적재하는 영역(이하 적재1),
- 터틀봇이 배달한 제품를 분류하는 두 영역(이하 공급2)으로 나뉜다.

- MasterPC에서 기동 "START" 버튼을 누른다. ( "STOP"버튼을 누를 시 전체 시스템 정지 )
- 각 노드들(설비들:arm,vision,turtlebot)에 대한 상태를 GUI화면에서 확인 할 수 있다.

- 적재1에서 카메라_1이 제품를 인식하면 Arm_1이 터틀봇에 제품를 적재한 후, 터틀봇이 이송하여 공급2로 이동한다.

- 비전_2가 공급2로 이송된 제품의 마커를 인식하면 Arm_2가 제품를 흡착하여 정해진 구역에 제품를 분류해 공급 한다.


사용기술
GUI 화면   : python 의 tkinter로 구현
turtlebot   : SLAM
, gmapping , Navigation , openCR
Vision       : openCV 
Arm          : swiftpro오픈소스 활용, UART통신 , AsyncSpinner API


전체 구성




노드 구성도 . ( rqt_graph )  o : node , ㅁ : topic



노드 구성도 . (각 설비위주로) o : node , <--> : topic 방향



Message topic 세부 내용




Vision-Arm 세부내용




GUI 화면 ( 초록등 : ON , 주황등 : Moving , 빨간등 : error )


사용 방법
사용 순서
(준비) 
ubuntu 16.04, ROS kinetic, opencv가 설치된 PC 2대 (이하 PC1, PC2)
ubuntu 16.04, ROS kinetic, python3이 설치된 PC 1대 (이하 Master PC)
터틀봇3 와플파이에 라즈베리파이 os (ver. stretch), ROS kinetic가 설치된 라즈베리 파이 3b+와 OpenCR 보드를 준비한다. (이하 라즈베리 파이)

1. Master PC 터미널에

   $ roscore
   $ rosrun GUI_turtle gui_multiple.py

   를 입력한다.

2. 라즈베리 파이 터미널에

   $ roslaunch turtlebot3_bringup turtlebot3_robot.launch
   $ roslaunch turtlebot3_navigation turtlebot3_navigation.launch
   $ map_file:=$HOME/map.yaml
   $ roslaunch turtle_node turtle_node.launch

   를 입력한다.

3. PC1에 카메라1, U-ARM1을 연결하고 터미널에 

   $ sudo chmod 666 /dev/ttyACM0
   $ roslaunch iwh_arm iwh_launch_1.launch

   를 입력한다.

4. PC2에 카메라2, U-ARM2을 연결하고 터미널에 

   $ sudo chmod 666 /dev/ttyACM0
   $ roslaunch iwh_arm iwh_launch_2.launch

   를 입력한다.

사용 언어 및 기술 HW : OpenCR, Raspberry pi, Arm, Webcam, realsense 435i
SW : ROS kinetic, C++, Python, OpenCV, UART통신, xml, bashrc
OS  : Ubuntu 16.04, Raspberry pi OS
사용 장비 uArm 2대 , 웹캡 2대 , 터틀봇 1대 , 각종기구물


담당 업무 하드웨어설치 조립 , OS설치 , 환경설정 , ARM 프로그램 코딩
인 원(퍼센트) 4 ( GUI , camera , turtlebot , arm )
기간 2022-01-17 ~ 2022-02-10 (22일)
시연 영상 및 사진 https://youtu.be/ZPpqZdn3baQ
자막을 키고 봐주세요
소스코드 https://github.com/wonhyeok1994/Automation-system_git_won

결과 - turtlebot, uarm, camera를 제어 가능한 GUI를 만들어 start/stop 신호를 보낼 수 있고, 각 장비들이 동작하는 상태를 받아 GUI에 띄울 수 있다.


단순히 제품를 이동시키는 것이 아닌 제품에 마커를 부착하여 마커를 인식하고 그에 따른 데이터를 이용해 제품를 분류할 수 있다.


카메라를 이용해 분류한 마커 정보를 이용하여 각각의 영역에 놓을 수 있는 arm의 자세를 구현할 수 있다.


실제로 환경을 구성하여 SLAM을 진행하여 map을 얻고 얻은 map을 토대로 navigation을 진행하여 물류 자동화의 핵심인 물류 로봇을 개발할 수 있다.
   

 

 

댓글