SlideShare ist ein Scribd-Unternehmen logo
1 von 80
ROS custom Robot
Sung Kwan Hwang
`
tamsarobot
Content
Intro
1.Robot Frame
2.ROS Host
3.Client (MicroController)
Nodes and packages
1.teleoperation
2.Odometry / Tf
3.Sensor
4.Navigation StackSetup
2dnav(Move_Base setup &configuration)
5.Gmapping
6.Rviz Setup
7.Navigation
Preparation
1.Robot Frame & Parts
2.ROS Host
3.Client (MicroController)
Robot Frame:Two Wheel
Parts
BLDC Driver
Host PC
OverView(Host-Client )
PC(ROS)
SICK
Gyro
ARDUINO
BLDC DRIVER
BLDC DRIVER
Serial1
Seial2
geometry_msgs/Tw
ist
Encoder
Encoder
custom message
sensor_msgs/Laser
rosserial_phyton
serial_node.py
(ros_lib)
rosserial_arduino
robot_setup_tf
odometry4
robot_mover
sick_wrapper
Move_Base
nav_msgs/Odometry
PC(x86) vs SBC
intel nuc
• Ubuntu 14.04 & ROS
PC(x86)
wget https://raw.githubusercontent.com/oroca/oroca-ros-pkg/master/ros_indigo_install.sh
sh ros_indigo_install.sh
[출처] ROS 설치 이보다 편할순 없다! (오픈소스 소프트웨어 &a mp; 하드웨어: 로봇 기술 공유 카페
(오로카)) |작성자 표윤석
http://www.ros.org/wiki/ROS/Tutorials
Client Microcontroller
Base Controller
Arduino vs cortexM
Arduino IDE
http://arduino.cc/en/Main/Software
$ cd ~/Downloads/
$ tar -Jxvf arduino-1.6.0-linux64.tar.xz -C ~/
$sudo gedit ~/.bashrc
export PATH=$PATH:$HOME/arduino-1.6.0/
ROSSERIAL
$ sudo apt-get install ros-indigo-rosserial ros-indigo-rosserial-
server ros-indigo-rosserial-arduino
$ cd ~/Arduino/libraries/
$ rm -rf ros_lib
$ rosrun rosserial_arduino make_libraries.py
$ roscore
$ rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0
1.teleoperation
2.Odometry/Tf
3.Sensor
4.Navigation Stack Setup
5.Gmapping
6.Rviz Setup
7.Navigation
Teleoperation
cmd_vel topic
$ rostopic info cmd_vel
Type: geometry_msgs/Twist
$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular float64 x
float64 y
float64 z
Create the Package
$ cd ~/ros_workspace
$ roscreate-pkg robot_mover geometry_msgs rospy roscpp
$ rospack profile
$ rosmake robot_mover
Create the Program
$ roscd robot_mover
$ mkdir nodes/
$ touch nodes/mover.py
$ chmod +x nodes/mover.py
Run the Program
$ roscd robot_mover
$ make
$ rosrun robot_mover mover.py
Make Robot_mover node
Arduino Firmware
Subscribe cmd_vel
Trajectory Model for
Differential Steering System
A / B A / B
Arduino Firmware
BLDC_SPEED function
Encoder
A / B A / B
1.teleoperation
2.Odometry/Tf
3.Sensor
4.Navigation Stack Setup
5.Gmapping
6.Rviz Setup
7.Navigation
Odometry node
geometry_msgs:::TranformStamped /odom_trans
nav_msgs::Odometry /odom
Odometry Update
Odometric Localization
양광웅:Blog
선형가속도 =2*pi*R/T
각속도= 2*Pi/T
Tf ( geometry_msgs::TransformStamped /odom_trans)
odom (nav_msgs::Odometry /odom)
Tf_broadcaster
Odometry
1.teleoperation
2.Odometry/Tf
3.Sensor
4.Navigation Stack Setup
5.Gmapping
6.Rviz Setup
7.Navigation
Sensor
$ cd ros_workspace
$svn checkout https://code.ros.org/svn/ros-
pkg/stacks/laser_drivers/trunk
$cd trunk
$rosmake
$rosrun sicktoolbox_wrapper sicklms
$rosrun rviz rviz
ros wiki
1.teleoperation
2.Odometry/Tf
3.Sensor
4.Navigation Stack Setup
5.Gmapping
6.Rviz Setup
7.SLAM
robot_name_2dnav pkg
$roscreate-pkg roamy_2dnav move_base
robot_setup_tf
robot_setup_sensor
robot_setup_odometry
roscpp
5 parameter file +2 launch file
5 parameters
local_costmap_param.yaml
global_costmap_param.yaml
costmap_common_param.yaml
default_move_base.yaml
base_local_planner_param.yaml
robot_configuration.launch
move_base.launch
1.teleoperation
2.Odometry
3.Tf
4.Navigation Stack Setup
5.Gmapping
6.Rviz Setup
7.Navigation
Gmapping
slam_gmapping node
표윤석 ros robot programming
SLAM =Localization+Map
Pieter Abbeel
UC Berkeley EECS
Graphical Model of Full SLAM
pose:unknown
odometry &
scan data :
known
Map:unknown
Cyrill Stachniss University of Freiburg, Germany
Difficult Problem
http://cmp.felk.cvut.cz/~hlavac
SLAM example
Map & Path :given scan data &
odometry
SLAM
robot path posterior
MCL
mapping with known pose
Occupancy Grid Map
Factorization first introduced by Murphy in 1999
Edouard Ivanjko, Ivan Petrovi}, Mi{el Brezak
Incremental Update
http://cmp.felk.cvut.cz/~hlavac
Gmapping launch file
Gmapping
Save map
$rosrun map server map_saver -f ~/mymap
mymap.yaml
1.teleoperation
2.Odometry?Tf
3.Sensor
4.Navigation Stack Setup
5.Gmapping
6.Rviz Setup
7.Navigation
.Navigation
• Localization
• Path Planning
• Obstacle Avoidance
AMCL
ros wiki
MCL
state of maximum confusion
MCL (particle filters,Bayes theorm,HMM)
rosrun navigation.launch
Ros자작로봇황성관21

Weitere ähnliche Inhalte

Was ist angesagt?

CounterFactual Explanations.pdf
CounterFactual Explanations.pdfCounterFactual Explanations.pdf
CounterFactual Explanations.pdfBong-Ho Lee
 
Elect principles 2 filter networks
Elect principles 2   filter networksElect principles 2   filter networks
Elect principles 2 filter networkssdacey
 
[Paper Reading] Attention is All You Need
[Paper Reading] Attention is All You Need[Paper Reading] Attention is All You Need
[Paper Reading] Attention is All You NeedDaiki Tanaka
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language Hitesh-Java
 
Automated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and TrackingAutomated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and TrackingDatabricks
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core javamahir jain
 
diffusion 모델부터 DALLE2까지.pdf
diffusion 모델부터 DALLE2까지.pdfdiffusion 모델부터 DALLE2까지.pdf
diffusion 모델부터 DALLE2까지.pdf수철 박
 
Deep Learning in Computer Vision
Deep Learning in Computer VisionDeep Learning in Computer Vision
Deep Learning in Computer VisionSungjoon Choi
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prologHarry Potter
 
Robotics of Quadruped Robot
Robotics of Quadruped RobotRobotics of Quadruped Robot
Robotics of Quadruped Robot홍배 김
 
Prolog Programming : Basics
Prolog Programming : BasicsProlog Programming : Basics
Prolog Programming : BasicsMitul Desai
 
Back propagation
Back propagationBack propagation
Back propagationNagarajan
 
Neuro-Symbolic AI for Sentiment Analysis with Michael Malak
Neuro-Symbolic AI for Sentiment Analysis with Michael MalakNeuro-Symbolic AI for Sentiment Analysis with Michael Malak
Neuro-Symbolic AI for Sentiment Analysis with Michael MalakDatabricks
 
Attention in Deep Learning
Attention in Deep LearningAttention in Deep Learning
Attention in Deep Learning健程 杨
 
GAN - Theory and Applications
GAN - Theory and ApplicationsGAN - Theory and Applications
GAN - Theory and ApplicationsEmanuele Ghelfi
 

Was ist angesagt? (20)

CounterFactual Explanations.pdf
CounterFactual Explanations.pdfCounterFactual Explanations.pdf
CounterFactual Explanations.pdf
 
Elect principles 2 filter networks
Elect principles 2   filter networksElect principles 2   filter networks
Elect principles 2 filter networks
 
[Paper Reading] Attention is All You Need
[Paper Reading] Attention is All You Need[Paper Reading] Attention is All You Need
[Paper Reading] Attention is All You Need
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language
 
Automated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and TrackingAutomated Hyperparameter Tuning, Scaling and Tracking
Automated Hyperparameter Tuning, Scaling and Tracking
 
Presentation on Core java
Presentation on Core javaPresentation on Core java
Presentation on Core java
 
Core Java Tutorial
Core Java TutorialCore Java Tutorial
Core Java Tutorial
 
diffusion 모델부터 DALLE2까지.pdf
diffusion 모델부터 DALLE2까지.pdfdiffusion 모델부터 DALLE2까지.pdf
diffusion 모델부터 DALLE2까지.pdf
 
Deep Learning in Computer Vision
Deep Learning in Computer VisionDeep Learning in Computer Vision
Deep Learning in Computer Vision
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prolog
 
Two player games
Two player gamesTwo player games
Two player games
 
Robotics of Quadruped Robot
Robotics of Quadruped RobotRobotics of Quadruped Robot
Robotics of Quadruped Robot
 
Prolog Programming : Basics
Prolog Programming : BasicsProlog Programming : Basics
Prolog Programming : Basics
 
Java
JavaJava
Java
 
Back propagation
Back propagationBack propagation
Back propagation
 
Neuro-Symbolic AI for Sentiment Analysis with Michael Malak
Neuro-Symbolic AI for Sentiment Analysis with Michael MalakNeuro-Symbolic AI for Sentiment Analysis with Michael Malak
Neuro-Symbolic AI for Sentiment Analysis with Michael Malak
 
Attention in Deep Learning
Attention in Deep LearningAttention in Deep Learning
Attention in Deep Learning
 
Pandas
PandasPandas
Pandas
 
Tic tac toe simple ai game
Tic tac toe simple ai gameTic tac toe simple ai game
Tic tac toe simple ai game
 
GAN - Theory and Applications
GAN - Theory and ApplicationsGAN - Theory and Applications
GAN - Theory and Applications
 

Andere mochten auch

ROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersAtılay Mayadağ
 
2nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 22nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 2Yoonseok Pyo
 
2nd ROS Tutorial Seminar
2nd ROS Tutorial Seminar2nd ROS Tutorial Seminar
2nd ROS Tutorial SeminarYoonseok Pyo
 
ROS SERIAL and OpenCR
ROS SERIAL and OpenCRROS SERIAL and OpenCR
ROS SERIAL and OpenCRYoonseok Pyo
 
Виталий Стеценко
Виталий СтеценкоВиталий Стеценко
Виталий СтеценкоVitaliy Stetsenko
 
AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...
AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...
AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...Webspec Design
 
2013 Spring/Summer Saratogan
2013 Spring/Summer Saratogan2013 Spring/Summer Saratogan
2013 Spring/Summer SaratoganCity of Saratoga
 
Beyond Estimation Market Outlook
Beyond Estimation Market OutlookBeyond Estimation Market Outlook
Beyond Estimation Market Outlookvermeulens
 
แบบสำรวจตนเอง
แบบสำรวจตนเองแบบสำรวจตนเอง
แบบสำรวจตนเองJiraporn Onlaor
 
Wellesley 2025 Presentation
Wellesley 2025 PresentationWellesley 2025 Presentation
Wellesley 2025 Presentationvermeulens
 
Salesinar by CMC Group
Salesinar by CMC GroupSalesinar by CMC Group
Salesinar by CMC GroupKarin Herzog
 
Parohia Târg Horezu I
Parohia Târg Horezu I Parohia Târg Horezu I
Parohia Târg Horezu I AlbumeParohii
 
Personal Philosophy to Education
Personal Philosophy to EducationPersonal Philosophy to Education
Personal Philosophy to EducationTabitha2001
 

Andere mochten auch (17)

ROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor Helicopters
 
2nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 22nd ROS Tutorial Seminar Section 2
2nd ROS Tutorial Seminar Section 2
 
2nd ROS Tutorial Seminar
2nd ROS Tutorial Seminar2nd ROS Tutorial Seminar
2nd ROS Tutorial Seminar
 
ROS SERIAL and OpenCR
ROS SERIAL and OpenCRROS SERIAL and OpenCR
ROS SERIAL and OpenCR
 
PPP of Nonfiction
PPP of NonfictionPPP of Nonfiction
PPP of Nonfiction
 
Виталий Стеценко
Виталий СтеценкоВиталий Стеценко
Виталий Стеценко
 
Property in delhi ncr
Property in delhi ncrProperty in delhi ncr
Property in delhi ncr
 
AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...
AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...
AMA Experience 2016: Google & Your Business: Planning for Today, Tomorrow and...
 
PPP Poetry
PPP PoetryPPP Poetry
PPP Poetry
 
2013 Spring/Summer Saratogan
2013 Spring/Summer Saratogan2013 Spring/Summer Saratogan
2013 Spring/Summer Saratogan
 
Simple past tense
Simple past tenseSimple past tense
Simple past tense
 
Beyond Estimation Market Outlook
Beyond Estimation Market OutlookBeyond Estimation Market Outlook
Beyond Estimation Market Outlook
 
แบบสำรวจตนเอง
แบบสำรวจตนเองแบบสำรวจตนเอง
แบบสำรวจตนเอง
 
Wellesley 2025 Presentation
Wellesley 2025 PresentationWellesley 2025 Presentation
Wellesley 2025 Presentation
 
Salesinar by CMC Group
Salesinar by CMC GroupSalesinar by CMC Group
Salesinar by CMC Group
 
Parohia Târg Horezu I
Parohia Târg Horezu I Parohia Târg Horezu I
Parohia Târg Horezu I
 
Personal Philosophy to Education
Personal Philosophy to EducationPersonal Philosophy to Education
Personal Philosophy to Education
 

Ähnlich wie Ros자작로봇황성관21

[1C2]webrtc 개발, 현재와 미래
[1C2]webrtc 개발, 현재와 미래[1C2]webrtc 개발, 현재와 미래
[1C2]webrtc 개발, 현재와 미래NAVER D2
 
project_NathanWendt
project_NathanWendtproject_NathanWendt
project_NathanWendtNathan Wendt
 
Tutorial1: mbed開發快速上手
Tutorial1: mbed開發快速上手Tutorial1: mbed開發快速上手
Tutorial1: mbed開發快速上手艾鍗科技
 
The GPS Architecture on Android
The GPS Architecture on AndroidThe GPS Architecture on Android
The GPS Architecture on AndroidPing-Chin Huang
 
managing your network environment
managing your network environmentmanaging your network environment
managing your network environmentscooby_doo
 
Ardupilot Gazebo status.pdf
Ardupilot Gazebo status.pdfArdupilot Gazebo status.pdf
Ardupilot Gazebo status.pdfssuserd7d2f2
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in actionStefano Sanna
 
Vision Based Autonomous Mobile Robot Navigation
Vision Based Autonomous Mobile Robot NavigationVision Based Autonomous Mobile Robot Navigation
Vision Based Autonomous Mobile Robot NavigationNiaz Mohammad
 
Lab 9 instructions
Lab 9 instructionsLab 9 instructions
Lab 9 instructionstrayyoo
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролеріJS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролеріJSFestUA
 
Sharing-Knowledge-OAM-3G-Ericsson .ppt
Sharing-Knowledge-OAM-3G-Ericsson   .pptSharing-Knowledge-OAM-3G-Ericsson   .ppt
Sharing-Knowledge-OAM-3G-Ericsson .pptwafawafa52
 
한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32HANCOM MDS
 
ACI Multicast 구성 가이드
ACI Multicast 구성 가이드ACI Multicast 구성 가이드
ACI Multicast 구성 가이드Woo Hyung Choi
 
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015Codemotion
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...Mark West
 
ospf initial configuration
ospf initial configurationospf initial configuration
ospf initial configurationRandyDookheran1
 

Ähnlich wie Ros자작로봇황성관21 (20)

[1C2]webrtc 개발, 현재와 미래
[1C2]webrtc 개발, 현재와 미래[1C2]webrtc 개발, 현재와 미래
[1C2]webrtc 개발, 현재와 미래
 
project_NathanWendt
project_NathanWendtproject_NathanWendt
project_NathanWendt
 
Tutorial1: mbed開發快速上手
Tutorial1: mbed開發快速上手Tutorial1: mbed開發快速上手
Tutorial1: mbed開發快速上手
 
The GPS Architecture on Android
The GPS Architecture on AndroidThe GPS Architecture on Android
The GPS Architecture on Android
 
managing your network environment
managing your network environmentmanaging your network environment
managing your network environment
 
Ardupilot Gazebo status.pdf
Ardupilot Gazebo status.pdfArdupilot Gazebo status.pdf
Ardupilot Gazebo status.pdf
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in action
 
Vision Based Autonomous Mobile Robot Navigation
Vision Based Autonomous Mobile Robot NavigationVision Based Autonomous Mobile Robot Navigation
Vision Based Autonomous Mobile Robot Navigation
 
MSI UI Software Design Report
MSI UI Software Design ReportMSI UI Software Design Report
MSI UI Software Design Report
 
Lab 9 instructions
Lab 9 instructionsLab 9 instructions
Lab 9 instructions
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролеріJS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
JS Fest 2018. Володимир Шиманський. Запуск двіжка JS на мікроконтролері
 
Sharing-Knowledge-OAM-3G-Ericsson .ppt
Sharing-Knowledge-OAM-3G-Ericsson   .pptSharing-Knowledge-OAM-3G-Ericsson   .ppt
Sharing-Knowledge-OAM-3G-Ericsson .ppt
 
한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32한컴MDS_Virtual Target Debugging with TRACE32
한컴MDS_Virtual Target Debugging with TRACE32
 
ACI Multicast 구성 가이드
ACI Multicast 구성 가이드ACI Multicast 구성 가이드
ACI Multicast 구성 가이드
 
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
Trash Robotic Router Platform - David Melendez - Codemotion Rome 2015
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
 
ospf initial configuration
ospf initial configurationospf initial configuration
ospf initial configuration
 
Network Docs
Network DocsNetwork Docs
Network Docs
 
Ppt of routing protocols
Ppt of routing protocolsPpt of routing protocols
Ppt of routing protocols
 

Ros자작로봇황성관21

Hinweis der Redaktion

  1. 1. 인사말 안녕하세요 /이번 발표를 맏은 탐사로봇 입니다. 2.아이번 세미나에서는 자작 로봇 발표 순서가 있다고 해서 저는 저쪽 입구 쯤애서 단순한 전시나 옹기종기 모여 문답하는 거로 생각했는데 일이 이렇게 커질줄은 몰랐읍니다 3. 다만 카페 회원의 한사람으로서 다른분들과 자작 경험을 공유 하고느것 이 의미가 있을거 같아서 나서게 되었읍니다 4.흥미가 있어 여가시간에 조금씩 취미생활한 것이라 내용에 좀 부족한 면이 있더라도 양해 바랍니다 5.다만 제 발표에는 다른 분들과 다르게 특별한 것 이 있읍니다 10분 짧읍니다.
  2. 1. 말씀 드릴 순서 제작 순서 와 동일 프레임 준비 + ROS node
  3. 1.일 단 프레임 이 잇어야 겠지요 2.ROS 가 돌아갈수 있는 컴퓨터 3.모터제어및 각종 센서 가 붙을 마이크로 컨트롤러
  4. 알미늄 판 두개를 수직으로 붙이고 모터와 바퀴를 붙인 사진 입니다 만들때 찍어논게 없어 분해해서 찍은겁니다. 바퀴는 소형 오토바이 바퀴 직각으로 바꿔주는 1:1 기어 박스.백래쉬 없는 걸로 모터와 엔코더 사이는 타이밍 풀리
  5. 1.마이크로 인피니티 MEMS 센서 회전각과 각속도를 오랜시간 지나도 드리프트가 거의 없음 2.배터리는 보쉬 40암페어 소형 차랼용 3.ebay 헤멤: 사기도 만음 SICK 센서:중고 장터에서 구입 4.모터는 30 와트 짜리 BLDC 모터 인데 중고 시장에서 개당 3만에 구입 5.드라이버는 시리얼 명령이 가능한 BLDC 드라이버 아두이노에 서 시리얼 명령으로 컨트롤 목적으로 6.바퀴는 미니모터스라는 소형 전기 오토바이 전문샵에서 구입 개조
  6. 0-3000까지 속도 조절 가능 시리얼 통신
  7. 대충 조립한 상태 배터리와 아두이노 앤코더 시리얼 코넥터 범퍼 역할 스케이트 보드 바퀴 클립프 샌서는 집에 절벽이 없는 관계로 생략
  8. 그냥 앞에서 본 모습
  9. 붉은 보드가 짝퉁 아두이노 메가 보드 갈색-BLDC 드라이버
  10. Host PC 는 Ubuntu+ ROS 가 운영되는 PC 인데
  11. host pc 는 ubuntu 와 ROS 운영되는 메인 컴퓨터 인데 아두이노와 rosserial 로 통신하게 되면 제 로봇의 경우에는 각종주요 노드를 실행 하게 됩니다. 따라서 성능이 좋으면 좋겠지만 전력소모도 염두에 두고 주로 노트북이나 라즈베리파이 등을 많이 사요 하게 됩니다
  12. 노트북 라즈베리파이 오로이드 비글본 등 아무래도 이런 SBC 는 설치가 까다롭겠지요
  13. 인텔 nuc BXBT-q1900 은 quadcore baytrail celeron 인데 이전 nuc 와 달리 TDP10W 에 1Power 12v 전체 20-25와트
  14. 노트북 기준으로 notebook 기준으로 ubuntu 14.04를 설치하고 indigo 설치합니다 ubuntu 어원 : 함께사는 사회 win win 인디고 설치는 대표님 스크립트 사용
  15. 아두이노는 API 가 많이 개발되어 있고 Easy IDE/개발 환경이 이쁘게 잘 되어 있읍니다 ARm 계열은 IDE 종류도 많고 특히 무료 IDE 설정이 복잡해서 비교가 됩니다 아두이노를 통해 BLDC 모터를 시리얼통신을 할생각이므로 시리얼 포트가 많은 Multiple Serial ports 아두이노메가 를 선택 하였읍니다
  16. 아두이노 IDE 설치 위와 같이 다운로드 하고 설치 한후 패스를 설정
  17. 다음은 ROSSERIAL 설치 다음과 같이 다운 받아서 라이브러리를 만들고 예제로 ACM0포트를 통해 실행할수 있읍니다 이제 host client 통신 준비가 된것이지요
  18. 자 이제 준비가 되었으니 teleoperation 에 도전 해보겠읍니다 처음에 야망을 가지고 도전 했다가도 뭔가 보이는 결과물이 없으면 추진력을 잃게 되기 쉬운데 teleoperation 해서 나도 ROS 로 뭔가 움직여 봤다는 자부심을 느끼게 도
  19. 맨밑에 붉은 동그라미 부분입니다 teleoperation node 를 만들어서 rosserial 을 통해 ROS 명령을 내려 보내야 겠지요
  20. 텔레오퍼래이션 노드는 geometric_msgs 인 cmd_vel topic 을 publish 하고 아두이노 측에서는 이것을 subscrive 하는 형태가 되겠지요 우리로봇은 평면에서만 홝동 하니까 linear .X ,angular.Z 만 신경 쓰면 되겠지요
  21. ros_build vs catkin build 시간이 없어 캐킨 슬라이드 못만들었읍니다 create pkg dependency 써주고 mover. py 를 edit 하여 node folder 를 만들어 넣어준후 실행 파일로 만들어줌
  22. 키를 누르면 각 키에 따라 필요한 명령어를 publish 할수 있게끔 코드가 짜여 있읍니다 i 는 전진 ㅡM 은 후진 j 는 좌측 L은 우측 K는 스톱 나중에 Gmapping 할때도 이노드를 쓰게된다
  23. hrobotics open source differential drive robot 아두이노측 subscriber 는 이 geometry_msgs 를 subscribe 하게 되면 실측 모터 명령에 적합하게 환산 상수를 곱해 즉 BLDC 수치가 500 일때 0.1m/s 이면 subscribe 받은 linear.x 에 5000을 곱해야 되니까 x,th 변수에 저장
  24. 전진 할때,후진 할때 rmsid 아까 구한 환산지수곱한 수치 제자리 회전하는시는 각속도를 바퀴속도로 맞춰 주려면 speed_=(b/2)*th 로봇이 어느점을 중심으로 크게 돌때는 약간의 추가 계산이 필요 하겠죠
  25. 아두이노 배선 시리얼 커넥션은 아두이노 우측 16,17핀 좌측 18,19 핀아웃에 연결 GND 다음에 설명할 엔코더는 인터럽트 핀인 우(2.3)좌( 20,21) 핀에 연결
  26. 아까 계산한 speed right,speed left를 각각 오른 바퀴 왼바퀴에 써주면 된다(드라이버 레퍼런스참조) 예를들어 BLDC spped 500 으로 하고 로봇을 이동시켜서 시간과 거리 엔코더 카운트를 잰다 오도메트리 노드에 temporary debugging code 를 넣어 수치 획득 여러번해서 그래프로 만들어도 된다 이동거리 1.5m 15초 15000틱이 나오면 초당 0.1 미터 속도니까 BLDC speed= 0.1 X ( k="5000") = 500이 나오게 k를 실측을 통해 구해주면 된다
  27. 실측 하는 모습 자로 했을때 오차가 많이 생길수 있는데 이런 방법도 있다
  28. encoder 카운트는 library 활용 그대로 가져다 쓰고 Rt pulse Lt pulse 아두이노에서 pc 로 publish 해줍니다
  29. 아까말씀드린대로 3,4 20,21 번 인터럽트 핀 사용 BLDC모타는 선이 두가닥이 아니고 6가닥인데 그림이 없어서 그냥 DC 모타로 표현한것임
  30. 텔레오퍼레이션 처움 성공 했을때 찍어둔 영상 나중에 형태가 좀 바꾸어서 똑같지는 안읍니다.
  31. 처음 운행이 시작된곳-->추적 항법 앤코더 수치와 자이로 수치를 좀합하여 계산
  32. 자이로 에서 들어온 데이터와 엔코더 데이터를 가지고 오도메트리 메시지를 가지고 x,y,th갱신하고 Tf odom 발행
  33. 즉 이동후의 x,y ,orientation 정보 delta 가 붙는다 를 publish
  34. 갱신 하는(=odometry localization) 방법에 3가지 방법이 있다
  35. 이동추정거리 S 에 바로 삼각함수 곱 x'=x+deltaS*cos(th)=Vxy_ave*T *cos(th) y'= sin sin X,Y 는 오차 w는 정확
  36. 중간위치에서의 접선 사용 오차 적음
  37. 정확한 계산 로봇 이동시 이동 궤적 반지름은 ( 원주길이/주기=속도)/(360한바퀴도는 주기) 삼각형 닮음꼴 따라 이리저리 뒤집으면 위에 공식 나옴
  38. 코드를 는 이와 같읍니다
  39. 좀더 자세히 보면 우선 아두이노 chatter node 에서 올라오는 앤코더 정보를 subscribe gyro 정보를 받아들입니다 현재시간을 정의
  40. dt 는 오도메트리 이전것과 지금 것 사이시간 dth 는 각도변화/dt 로봇 중심점 이동거리 dxy_ave 처음부터 총이동거리 x 처음부터 총 흐른시간 y
  41. 갱신된 x,y,th quaternian 형태로 변환(Z축 중심이니까 yaw) 구조체가 있다 message definition geometry_msgs::TransformStamped message definition 구조체에 대입하여 퍼블리시 header frame ID geometry_msgs/Vector3 translation geometriy_msgs/Quaternion rotation publish
  42. odometry 로봇의 현위치정보-kinematic state 와 3 현 움직임 속도 - dynamic state publish 6 nav_msgs/Odometry /odom header child frame ID geometry_msgs/TwistWithCovariance twist geometry_msgs/PoseWithCovariance pose -------------------------------------------------------------- geometry_msgs/PoseWithCovariance pose geometry_msgs/Point position(x,y,z,) geometry_msgs/Quaternion orientation(x,y,z,w) geometry_msgs/TwistWithCovariance twist geometry_msgs/Twist geometry_msgs/Vector3 linear(x,y,z) geometry_msgs/angular3(x,y,z)
  43. Laser footprint=Base_link 와 레이져 스캐너 원점과 바퀴위치 tf node 만들어줌
  44. 그내용을 RVIZ 로 보면 점선이 tf 붉은 화살표가 pose velosity
  45. mapframe odomframd base_link 좌우휠 상대 관계
  46. 센서노드는 다른 생각할것없이 그대로 다운 로드 사용 sensor _msgs/LaserScan
  47. willow garage 에 있음
  48. move base setup &cofiguration files 5+2
  49. 5 parameter 2 mlaunch file
  50. create package dependency
  51. 5+2 2 launch file
  52. 5 parameter
  53. 여기는 별 설명 할게 없음
  54. 필여한 노드를 다 불러준다 mover rosserial move_base RVIZ sensor
  55. 레이저 센서를 달고 막 돌아다녔더니 지도를 그렸다
  56. 화살표 xt 를 예측하려면 Ut Zt Zt --m,Xt
  57. 지도가 있으면 내위치를 알기가 수월할텐데... 내위치를 알면 지도 그리기가 수월 할텐데... 이 두가지를 동시 해결=어려움: 의뜻 slam_gmappingg node -> 775 lines
  58. RaoBlackwellization map=path 추정 by particle filter and occupancy grid map Factorization introduced by Murphy 1999
  59. 그리드 맵 그리는 과정입니다 샌서 데이터에 따라 범위내에 있는 해당 cell 들에 각각 inverse sensor model locc,lfree,unkown value 를 주고 이전 cell 상태를 고려 하여 baysian uodate 이후 조금씩 그려진 각각의 local map을 합쳐서 전체 지도로 만듬
  60. rkr local map 을 합쳐서 global map 을 만들어 준다
  61. 지도를 그리기위한것 아까 mover 가 여기서 쓰일거라고 말씀 드렸지요 내용은 odometry/Tf sensor node gmapping_slam node mover node slam_gmapping node RVIZ -node 불러줌니다
  62. mover 로 로봇을 조정하며 집안을 돌아다녀 지도 그리기
  63. 다그렸으면 지도를 저장해 줍니다
  64. 마지막
  65. ( after motion update ) 추측항법에서 발생된 오차포함 (motion update?) scan data 로 sensor update motion update 시 오차 발생 sensor update 통해 오차 보정 이론 MCL
  66. state of maximum confusion
  67. sensor update--gain info scan data motion update--lose info (due to noise) 그림엔 없지만 lose information 다시 센서 업데이트--gain info 하다보면 particle 이 고갈 되겠지요(적자생존이란 표현을 쓴사람도 ) 그래서 선택된 파티클의 weight 에따라 새끼를 친다
  68. 두개의 론치 파을을 같이 불러주자