SlideShare a Scribd company logo
2nd ROS Tutorial Seminar
2015/11/08
제2회
ROS
튜토리얼 세미나!
로봇 암 모델링과
MoveIt! 사용법
2nd ROS Tutorial Seminar
표윤석
Section 4
2015/11/08
www.facebook.com/yoonseok.pyo
3
ROSRobot Operating System
ROSRobot Operating System
로봇 암?
6
세계 최초 산업용로봇 유니메이트(unimate), 1961
내가
할아버지
급이지~
http://en.wikipedia.org/wiki/Unimate 7
원통좌표형
극좌표형
직교좌표형
수평다관절형(SCARA형) 수직다관절형
http://www.ait.kyushu-u.ac.jp/ 8
원통좌표형
극좌표형
직교좌표형
수평다관절형(SCARA형) 수직다관절형
오늘 세미나에서
다룰 녀석
9http://www.ait.kyushu-u.ac.jp/
http://www.robotis.com/
6th axis
5th axis
4th axis
3rd axis
2nd axis
1st axis
관절
(revolute joint)
링크(link)
10
http://www.theroboticschallenge.org/http://www.robotis.com/
안녕!
6th axis
5th axis
4th axis
3rd axis
2nd axis
1st axis
관절
(revolute joint)
링크(link)
11
12
CHIMP
(TARTAN RESCUE)
Aero DRC
(TEAM AERO)
HRP2+
(TEAM AIST-NEDO)
DRC-Hubo
(TEAM DRC-HUBO AT UNLV)
Cog-Burn
(TEAM GRIT)
Johnny 05
(TEAM HECTOR)
Atlas
(TEAM HKU)
HRP-2
(Team HRP2-Tokyo)
Running Man
(Team IHMC Robotics)
Xing Tian
(Team Intelligent Pioneer)
DRC-HUBO
(Team KAIST)
Helios (Atlas)
(Team MIT)
Hydra
(Team NEDO-Hydra)
JAXON
(Team NEDO-JSK)
Momaro
(Team NimbRo Rescue)
RoboSimian
(Team RoboSimian)
THORMANG
(Team ROBOTIS)
THORMANG
(Team SNU)
THOR-RD
(Team THOR)
Hercules
(Team TRAC Labs)
LEO
(Team TROOPER)
ESCHER
(Team VALOR)
Florian
(Team ViGIR)
WALK-MAN
(Team WALK-MAN)
WARNER
(Team WPI-CMU)
http://www.theroboticschallenge.org/teams
Yaskawa SmartPal V
13
14
https://youtu.be/4VtDHWiN0as
로봇 암 제어?
그리 호락호락한 녀석은 절대 아님!
15
로봇 암 제어?
그리 호락호락한 녀석은 절대 아님!
근데! 판이 바뀌었다!
등장!(^^)/
16
그래도, 기초는 알고 가자!
17
18
x
y
z
3차원 공간
저기!
(x,y,z)
작업 공간(work space): 말단 장치의 위치(x, y, z)와 자세(θ, φ, ψ)로 표현한 공간
19
http:// www.neo-tex.com
x
y
z
3차원 공간
저기!
(x,y,z)
http://www.robotis.com/
제 뭐래?
각도 값으로 주세요. ^^;;
(θ1, θ2,… θ 6)
작업 공간(work space): 말단 장치의 위치(x, y, z)와 자세(θ, φ, ψ)로 표현한 공간
6th axis
5th axis
4th axis
3rd axis
2nd axis
1st axis
관절 공간(joint space): 관절의 각 각도(θ1,θ2,θ3,...)로 표현한 공간
20
http://www.tbotech.com/sodacansafe.htm
x
y
z
위치(x, y, z)
자세(θ, φ, ψ)
roll(θ)
pithch(φ) yaw(ψ)
6개의 변수로
물체의 위치/자세가 표현 가능
= 6자유도로 표현가능
21
x
y
z
위치(x, y, z)
자세(θ, φ, ψ)
roll(θ)
pithch(φ) yaw(ψ)
6th axis
5th axis
4th axis
3rd axis
2nd axis
1st axis
http://www.robotis.com http://www.tbotech.com/sodacansafe.htm
6개의 변수로
물체의 위치/자세가 표현 가능
= 6자유도로 표현가능
6개의 변수로
로봇의 말단 장치의 위치,자세가 결정
= 6자유도를 갖는다
22
23
24
ROSRobot Operating System
고생들 하셨습니다!
26
좀 쉽게 갑시다.
모션 플래닝 툴
고생들 하셨습니다!
27
28
https://youtu.be/dblCGZzeUqs
29http://wiki.ros.org/ROS/Patterns/RobotModelling
URDF(Universal Robot Description Format) → RViz
SRDF(Semantic Robot Description Format) → MoveIt!
SDF(Simulation Description Format) → Gazebo
URDF
30http://wiki.ros.org/ROS/Patterns/RobotModelling
즉,
하나면 된다!
자~ 그렇다면
URDF에 대해 알아봅시다.
32
실습 시간
<3축 매니퓰레이터>
https://github.com/oroca/rosbook_robot_arm
$ cd ~/catkin_ws/src
$ catkin_create_pkg testbot_description urdf
$ cd testbot_description
$ mkdir urdf
$ cd urdf
$ gedit testbot.urdf
기저 링크1
링크2
링크3
말단장치
관절1
관절2
관절3
링크4
33
(전문)
https://github.com/oroca/rosbook_robot_arm/blob/master/testbo
t_description/urdf/testbot.urdf
기저 링크1
링크2
링크3
말단장치
관절1
관절2
관절3
링크4
<link name="link1">
<collision>
<origin rpy="0 0 0" xyz="0 0 0.25"/>
<geometry>
<box size="0.1 0.1 0.5"/>
</geometry>
</collision>
<visual>
<origin rpy="0 0 0" xyz="0 0 0.25"/>
<geometry>
<box size="0.1 0.1 0.5"/>
</geometry>
<material name="black"/>
</visual>
<inertial>
<origin rpy="0 0 0" xyz="0 0 0.25"/>
<mass value="1"/>
<inertia ixx="1.0" ixy="0.0" ixz="0.0“
iyy="1.0" iyz="0.0“
izz="1.0"/>
</inertial>
</link>
34
기저 링크1
링크2
링크3
말단장치
관절1
관절2
관절3
링크4
<joint name="joint2" type="revolute">
<parent link="link2"/>
<child link="link3"/>
<origin rpy="0 0 0" xyz="0 0 0.5"/>
<axis xyz="0 1 0"/>
<limit effort="30" lower="-2.617“
upper="2.617" velocity="1.571"/>
</joint>
35
36오려 붙이기 용도!
https://goo.gl/38UBG8
$ check_urdf testbot.urdf
robot name is: test_robot
---------- Successfully Parsed XML ---------------
root Link: base has 1 child(ren)
child(1): link1
child(1): link2
child(1): link3
child(1): link4
$ urdf_to_graphiz testbot.urdf
Created file test_robot.gv Created file test_robot.pdf
37
<launch>
<arg name="model" default="$(find testbot_description)/urdf/testbot.urdf" />
<arg name="gui" default="True" />
<param name="robot_description" textfile="$(arg model)" />
<param name="use_gui" value="$(arg gui)"/>
<node pkg="joint_state_publisher" type="joint_state_publisher“name="joint_state_publisher" />
<node pkg="robot_state_publisher" type="state_publisher“name="robot_state_publisher" />
</launch>
$ roslaunch testbot_description testbot.launch
$ rosrun rviz rviz
38
39
조인트 값을
변경 해보세요.
40
실습 시간
<4축 + 1 그리퍼 매니퓰레이터>
https://github.com/oroca/turtlebot_arm
$ cd ~/catkin_ws/src
$ git clone https://github.com/oroca/turtlebot_arm.git
$ cd ~/catkin_ws/
$ catkin_make
$ rospack profile
$ roslaunch turtlebot_arm_bringup arm_4dof_sim.launch --screen
41
$ roslaunch turtlebot_arm_bringup arm_4dof_sim.launch --screen
42
https://youtu.be/zNYrWzFBgqg
43
코드 분석 시간...
$ roscd turtlebot_arm_bringup/launch
$ gedit arm_4dof_sim.launch
$ roscd turtlebot_arm_description/urdf
$ gedit arm_4dof.urdf.xacro
$ gedit arm_4dof.xacro
$ gedit arm_4dof_hardware.xacro
ROSRobot Operating System
http://moveit.ros.org/documentation/concepts/
45
46
실습 시간
“4축 + 1 그리퍼 매니퓰레이터
의 MoveIt 설정”
따라 해 봅시다!
47
$ roslaunch moveit_setup_assistant setup_assistant.launch
마법사 아저씨가
여러분을 도와 줍니다 ^^
클릭
48
1.선택
2.클릭
49
2.클릭
1.확인
50
모델이 보이네요.
51
2.클릭
1.클릭
52
항상 접해있는 (충돌하는) 링크,
결코 만나지 않는 링크 등을 미리 계산
53
1.클릭
2.클릭
54
2.클릭
1.입력
55
확인
56
1.클릭
2.클릭
57
2.클릭
1.입력
58
6.클릭
2.선택
4.선택
3.클릭
5.클릭
1.클릭
59
2.클릭
1.확인
60
2.클릭
1.입력
61
2.클릭
1.선택 4.클릭
3.확인
62
클릭
63
2.클릭
1.선택
4.클릭
3.확인
64
확인
65
1.클릭
2.클릭
66
3.클릭
1.입력
2.모델 확인!
67
4.클릭
2.변경
1.입력
3.모델 확인!
68
4.클릭
2.변경
1.입력
3.모델 확인!
69
4.클릭
2.변경
1.입력
3.모델 확인!
70
확인
71
1.클릭
2.클릭
72
1.입력
2.클릭
73
확인
74
1.클릭 3.클릭
2.선택
4.확인
75
2.입력
1.클릭
3.클릭
76
클릭
끝.
77
$ roslaunch turtlebot_arm_4dof_moveit_config setup_assistant.launch
78
$ roslaunch turtlebot_arm_4dof_moveit_config demo.launch
79
1. 인터랙티브 마커를 드래그 또는 회전
2.Plan and Execute 클릭
3. 동작 확인
80
체크
81
$ roslaunch turtlebot_arm_4dof_moveit_config turtlebot_arm_moveit.launch --screen
$ rosrun moveit_commander moveit_commander_cmdline.py
> use arm
[ INFO] [1446688881.357273154]: Ready to take MoveGroup co
mmands for group arm.
OK
arm> current
joints = [0.0 0.0 0.0 0.0 0.0]
gripper_link pose = [
header:
seq: 0
stamp:
secs: 1446688885
nsecs: 776949882
frame_id: /base_link
pose:
position:
x: -2.83336952646e-06
y: 1.10256712683e-06
z: 0.341499999981
orientation:
x: -1.40783094196e-06
y: -0.706830343159
z: 1.40672709244e-06
w: 0.707383111182 ]
gripper_link RPY = [-0.005091709409684286, -1.570014584606
8136, 0.005091707848606231]
이부분임
82
PC와의
통신에 사용
4 관절 + 1 그리퍼 실습용으로 6대를 준비했습니다.
$ sudo apt-get install ros-indigo-arbotix*
$ ls /dev/ttyUSB*
/dev/ttyUSB0
$ sudo chmod a+rw /dev/ttyUSB0
$ roslaunch turtlebot_arm_bringup arm_4dof_real.launch --screen
$ arbotix_gui
83
간단한 테스트 용도로 좋음!
슬라이드를 이용해 각 관절 값을 변경 가능
84
$ roscd turtlebot_arm_4dof_demo/scripts/
$ gedit moveit_fk_demo.py
$ gedit moveit_ik_demo.py
지정된 위치로 이동한다.
85
말단 장치의 위치 값
말단 장치의 위치 값 지정
계획&실행
86
$ roslaunch turtlebot_arm_bringup arm_4dof_real.launch --screen
$ roslaunch turtlebot_arm_4dof_moveit_config turtlebot_arm_moveit.launch sim:=false --screen
$ rosrun turtlebot_arm_4dof_demo moveit_fk_demo.py
$ roslaunch turtlebot_arm_bringup arm_4dof_real.launch --screen
$ roslaunch turtlebot_arm_4dof_moveit_config turtlebot_arm_moveit.launch sim:=false --screen
$ rosrun turtlebot_arm_4dof_demo moveit_ik_demo.py
실제로 동작해보고 IK 와 FK 값들도 변경해 보세요.
로봇이 없다면 아래와 같이 시뮬레이션만 실행해도 됩니다.
$ roslaunch turtlebot_arm_4dof_moveit_config turtlebot_arm_moveit.launch
$ rosrun turtlebot_arm_4dof_demo moveit_fk_demo.py
또는
$ rosrun turtlebot_arm_4dof_demo moveit_ik_demo.py
마지막 과제!
모바일 로봇과 매니퓰레이터의 결합
(섹션3 + 섹션4)
<?xml version="1.0"?>
<!--
- Base : kobuki
- Stacks : hexagons
- 3d Sensor : kinect
-->
<robot name="turtlebot" xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:include filename="$(find turtlebot_description)/urdf/turtlebot_library.urdf.xacro" />
<kobuki/>
<stack_hexagons parent="base_link"/>
<sensor_asus_xtion_pro parent="base_link"/>
<xacro:include filename="$(find turtlebot_arm_description)/urdf/arm_4dof.xacro" />
<turtlebot_arm parent="base_link" color="white" gripper_color="green"
joints_vlimit="1.571" pan_llimit="-2.617" pan_ulimit="2.617">
<origin xyz="0.1 0 0.4"/>
</turtlebot_arm>
</robot>
88
$ cd /opt/ros/indigo/share/turtlebot_description/robots/
$ sudo gedit kobuki_hexagons_asus_xtion_pro.urdf.xacro
터틀봇에 다이나믹셀로 만든 터틀봇 암 추가
89
$ roslaunch turtlebot_rviz_launchers view_model.launch
짜~짠!
90
91
질문
대환영!
국내 유일! 최초! ROS 책
일본어로 변역 되어 나올 책
비 영어권 최고의 책
인세 전액 기부
여기서! 광고 하나 나가요~
여기서! 광고 둘 나가요~
• 오로카
• www.oroca.org
• 오픈 로보틱스 지향
• 풀뿌리 로봇공학의 저변 활성화
• 열린 강좌, 세미나, 프로젝트 진행
• 로봇공학을 위한 열린 모임 (KOS-ROBOT)
• www.facebook.com/groups/KoreanRobotics
• 로봇공학 통합 커뮤니티 지향
• 일반인과 전문가가 어울러지는 한마당
• 로봇공학 소식 공유
• 연구자 간의 협력
혼자 하기에 답답하시다고요?
커뮤니티에서 함께 해요~
여기서! 광고 셋 나가요~
다른 말이 필요 없습니다!
감사합니다.
Yoonseok Pyo
passionvirus@gmail.com
www.robotpilot.net
표윤석
www.facebook.com/yoonseok.pyo
또~ 봬요!
*^^*
끝.

More Related Content

PDF
Buku Guru Prakarya Kelas VII SMP Kurikulum 2013
PPTX
Александр Еремеев (ФРИИ) Customer development: 5 шагов к пользователю
DOCX
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
DOC
Khutbah Jumat Tafsir Surat At -Takatsur
PPTX
Biomolecules
PDF
제3회 오픈 로보틱스 세미나 (제12세션) : 로봇 암 모델링과 MoveIt! 사용법
PDF
20160414 ROS 2차 강의 (for 아스라다 팀)
PPTX
20160420 ROS 3차 강의 (for 아스라다 팀)
Buku Guru Prakarya Kelas VII SMP Kurikulum 2013
Александр Еремеев (ФРИИ) Customer development: 5 шагов к пользователю
tugas 1 anak berkebutihan khusus pelajaran semester 6 jawaban tuton 1.docx
Khutbah Jumat Tafsir Surat At -Takatsur
Biomolecules
제3회 오픈 로보틱스 세미나 (제12세션) : 로봇 암 모델링과 MoveIt! 사용법
20160414 ROS 2차 강의 (for 아스라다 팀)
20160420 ROS 3차 강의 (for 아스라다 팀)

Similar to 2nd ROS Tutorial Seminar Section 4 (20)

PDF
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
PPTX
OpenJigWare(V02.00.04)
PPTX
Open jig-ware 6회-오로카세미나pptx
PDF
지능 Baram 보고서
PDF
20150708 ros seminar_in_busan_korea
PPTX
MoveIt 기반 모션 카피 로봇팔 제작기
PDF
2nd ROS Tutorial Seminar Section 2
PPTX
Open Jig Ware
PPTX
오픈소스 ROS기반 건설 로보틱스 기술 개발
PPTX
모두가 함께하는ROS 워크숍
PPT
설인 Abaqus Dogbone따라하기
PDF
KYSR 3rd Seminar 경희대학교 이순걸 교수
PDF
Baebot(배봇) ver2.0 조립설명서 배로만쌤
PDF
20160406 ROS 1차 강의 (for 아스라다 팀)
PPTX
Home2040
PPTX
Oroca seminar auturbo
PDF
normas estándar para uso en robótica movil
PPTX
광주교대 연수 2016
PPTX
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
PPTX
6회 오픈로보틱스 세미나 발표자료 - pinkwink 블로그 소개
[AWS Dev Day] 이머징 테크 | ROS 로 실현하는 어릴 적 로봇과학자의 꿈 - 박천구 AWS 솔루션즈 아키텍트, 박진용 우아한 ...
OpenJigWare(V02.00.04)
Open jig-ware 6회-오로카세미나pptx
지능 Baram 보고서
20150708 ros seminar_in_busan_korea
MoveIt 기반 모션 카피 로봇팔 제작기
2nd ROS Tutorial Seminar Section 2
Open Jig Ware
오픈소스 ROS기반 건설 로보틱스 기술 개발
모두가 함께하는ROS 워크숍
설인 Abaqus Dogbone따라하기
KYSR 3rd Seminar 경희대학교 이순걸 교수
Baebot(배봇) ver2.0 조립설명서 배로만쌤
20160406 ROS 1차 강의 (for 아스라다 팀)
Home2040
Oroca seminar auturbo
normas estándar para uso en robótica movil
광주교대 연수 2016
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
6회 오픈로보틱스 세미나 발표자료 - pinkwink 블로그 소개
Ad

More from Yoonseok Pyo (15)

PDF
제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
PDF
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
PDF
ROS SERIAL and OpenCR
PDF
20160427 ROS 4차 강의 (for 아스라다 팀)
PDF
DYNAMIXEL ROS Package
PDF
공돌이에게도 전략은 필요하다
PPTX
BLDC 모터 돌려보기
PDF
Open Source License
PDF
4th Open Robotics Seminar
PDF
2nd ROS Tutorial Seminar
PDF
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
PDF
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
PDF
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
PDF
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
PDF
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
제6회 오픈 로보틱스 세미나 4세션 공학으로 콘텐츠 만들기
제6회 오픈 로보틱스 세미나 1세션 임의의 어떤 로봇
ROS SERIAL and OpenCR
20160427 ROS 4차 강의 (for 아스라다 팀)
DYNAMIXEL ROS Package
공돌이에게도 전략은 필요하다
BLDC 모터 돌려보기
Open Source License
4th Open Robotics Seminar
2nd ROS Tutorial Seminar
제3회 오픈 로보틱스 세미나 (제9세션) : ROS를 활용한 SLAM과 내비게이션
제3회 오픈 로보틱스 세미나 (제7세션) : 로봇운영체제ROS 개론
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제8세션 로봇 운영체제 ROS 개론)
제1회 오픈 로보틱스 세미나 (제6세션:로봇 운영체제 ROS 개론)
Ad

2nd ROS Tutorial Seminar Section 4