SlideShare a Scribd company logo
1 of 20
Download to read offline
My ROS Experience
- SJ Kim
- bus710@gmail.com
Speaker
SJ Kim (Seongjun Kim)
- Embedded Software Engineer for 6 years
- MCUs, Linux, Web development
- My goals
1. Build autonomous robots
2. Make my robot runs errand for me
3. Easy web interface for SLAM and navigation
2
• SLAM: Simultaneous localization and mapping
• Navigation: the act, activity, or process of finding the way to get to a place
when you are traveling in a ship, airplane, car, etc. (Merriam-Webster)
Table & Contents
- Before ROS - pyKobuki (GUI app for turtlebot)
- Why ROS?
- Essential Concepts & Commands
- ROS installation
- Project 1 - SULCATA (ROS stack for SLAM)
- Project 2 - Gazebo Factory (steps for original robot)
- Project 3 - Web and ROS
- What's Next?
- Q & A
- Reference
3
Before ROS (pyKobuki)
- https://github.com/bus710/pyKobuki
- A GUI application for driving Kobuki
- Python, Tkinter, threading, serial comm.
https://youtu.be/1CXgpq7vz8k
4
Before ROS (pyKobuki) (cont.)
- Target features: TCP socket, Kinect, SLAM, Manipulator
- A new feature requires a new thread.
- New features cause high complexity/time sensitivity.
- An error from a thread can stop other threads.
Kobuki
OS
Python runtime
Main process
SerialQ ParserGUI
PC
USB
TCP socket
Kinect
Manipulator
5
SLAM
Why ROS?
- Meta OS, Stable middleware, and Modular design
- Several message types (topic, service, and action)
- Various useful packages (Drivers, DSP, and ML)
- Supports several languages (c/c++, java, js, golang, …)
- Free Open Source Software
- Promising roadmap (sync w/ Ubuntu LTS)
6
Kobuki
OS
ROS
MLWebGUI
PC
Manipulator Kinect
Driver
DSP Planner
Essential Concepts & commands
- Roscore: ROS itself.
- Rosrun: runs a single node in a package.
- Roslaunch: runs multiple nodes across multiple packages.
- Catkin: is an extension of cmake for ROS.
- Message between Publisher/Subscriber nodes.
- Topic: message stream between pub/sub nodes.
- Service: is RPC. a node can call another nodes’ func.
- Action: can initiate a long-running task.
7
ROS installation
- CPU: Intel i5 - 3rd gen., RAM: 8GB, HDD: 64GB,
- GPU: HD4000, USB: 3.0
- Ubuntu 14.04, ROS Indigo - Desktop Full
8
$ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” 
> /etc/apt/sources.list.d/ros-latest.list’
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116
$ sudo apt-get update
$ sudo apt-get install ros-indigo-desktop-full
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt-get install python-rosinstall
$ cd ~
$ mkdir catkin_ws
$ cd catkin_ws
$ catkin_make
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc ; source ~/.bashrc
http://wiki.ros.org/indigo/Installation/Ubuntu
Project 1 - SULCATA
- A type of tortoise species, which live in the ground.
- Kinect v2, Kobuki, Kobuki supporter kit
- USB Type A to B, Camera mounting screw
- Molex PN : 5566-02B2
9NVIDIA-TK1 (ARM based) Intel I-5 (x64 based)
VS.
Project 1 - SULCATA (cont.)
- Summary for the stack
10
kobuki
Ubuntu
kobuki-slamkobuki-
keyop
rviz
PC
Kinect v2
kobuki-driver
urg-node
libkinect2
iai-kinect2kobuki-node
depth to
laser
ROS 1
235
46
(1) iai-Kinect sends depth image to the dimension converter node.
(2) The converter sends 2D value to urg-node.
(3)&(4) kobuki-slam reads 2D value and tf (time frame) from each nodes.
(5) Rviz visualizes data on GUI.
(6) keyop sends topics for driving kobuki.
Project 1 - SULCATA (cont.)
- Installation & Launch
https://github.com/bus710/sulcata
11
- libkinect2 supports several GPUs (NVIDIA, AMD, Intel, ARM).
- Read the official document carefully to install the driver on your machine.
Project 2 - Gazebo Factory
- Gazebo is OSRF’s 3D robot simulator.
- Supports ground, flight, underwater env. & robot.
- Various physics engines (ODE, Bullet, Simbody, and DART)
- Compatible with ROS. Good for proof of concept.
12
UbuntuPC
ROS
Model System World
World
Plugin
System
plugin
Model
plugin
Gazebo
Project 2 - Gazebo Factory (cont.)
- 3 files for model description.
(1) model.config
(2) model.sdf
(3) link*.dae (by Blender, Solidworks, or Rhino)
- 6 files for ROS package and Gazebo world setting.
(4) CMakeLists.txt
(5) package.xml
(6) launch/PROJECT_NAME.launch
13
/home/USER_NAME/ .gazebo/models/ROBOT_NAME/
catkin_ws/src/PROJECT_NAME/
(1) model.config
(2) model.sdf
(3) link*.dae
(4) CMakeLists.txt
(5) package.xml
(6) launch/PROJECT_NAME.launch
(7) worlds/WORLD_NAME.world
(8) src/GAZEBO_PLUGIN.cc
(8) src/ROS_NODE.py
(7) worlds/WORLD_NAME.world
(8) src/GAZEBO_PLUGIN.cc
(9) src/ROS_NODE.py
Project 2 - Gazebo Factory (cont.)
- Installation & Launch
https://github.com/bus710/gz_factory
14
https://youtu.be/lGlfi2OWBnE
Project 3 - Web and ROS
- ROS bridge package supports web socket.
- A good fit for real-time web applications.
- Any computer has web browser. (no install for client)
- There is a missing link between ROS bridge and browser.
- Browser requires web page before it accesses web socket
15
ROS coreROS bridge
Web
browser
???
Client Robot
This layer must deliver web page for browser
Project 3 - Web and ROS (cont.)
- To deliver web pages, we need a web server.
- Node.js has lightweight web server, Express.
16
Node.js stack ROS stackWeb Browser
Client Robot
User starts
- ROS core.
- ROS simulator node.
- ROS bridge (port 9090).
User starts node stack
(port 3000).User accesses Robot via web
browser. Then, Web browser
requests index.html.
Node returns index.html.
Web browser requests client.js
Node returns client.js.
User clicks button on web.
Then, the loaded Client.js
sends JSON packet via
WebSocket (port 9090).
ROS bridge
- Converts JSON to ROS topic.
- Assigns topic to simulator.
1
2
3
4
n User actions Http exchange Web socket access
Project 3 - Web and ROS (cont.)
- Installation & Launch
https://github.com/bus710/rosbridge-usage
- Result
What's next
- Build a combination with SULCATA + ROS Bridge.
- Research on robotics topics about SLAM & navigation.
- Eventually, make my robot runs errands for me.
18
Q&A
19
Reference
20
[1] http://wiki.ros.org/
[2] http://gazebosim.org/
[3] https://github.com/OpenKinect/libfreenect2
[4] https://github.com/code-iai/iai_kinect2
[5] https://github.com/robotpilot/rosbook_kr
[6] “Programming Robots with ROS”, Morgan Quigley, Brian Gerkey, and William D. Smart
[7] http://wiki.ros.org/urg_node
[8] http://wiki.ros.org/depthimage_to_laserscan
[9] OROCA, the best ROS community in Korea

More Related Content

What's hot

An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
Clay Flannigan
 

What's hot (20)

ROS vs ROS2
ROS vs ROS2ROS vs ROS2
ROS vs ROS2
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
Introduction to ROS
Introduction to ROSIntroduction to ROS
Introduction to ROS
 
Roboticsprojectppt 130116183708-phpapp02
Roboticsprojectppt 130116183708-phpapp02Roboticsprojectppt 130116183708-phpapp02
Roboticsprojectppt 130116183708-phpapp02
 
Robotics
RoboticsRobotics
Robotics
 
Robotics and ROS
Robotics and  ROSRobotics and  ROS
Robotics and ROS
 
ROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdfROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdf
 
ROS and Unity.pdf
ROS and Unity.pdfROS and Unity.pdf
ROS and Unity.pdf
 
Summary for Robotics
Summary for Robotics Summary for Robotics
Summary for Robotics
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
Robot Safety
Robot SafetyRobot Safety
Robot Safety
 
PICK & PLACE ROBOT
PICK & PLACE ROBOTPICK & PLACE ROBOT
PICK & PLACE ROBOT
 
First steps with Gazebo simulation for ROS
First steps with Gazebo simulation for ROSFirst steps with Gazebo simulation for ROS
First steps with Gazebo simulation for ROS
 
Pick and place robot ppt
Pick and place robot pptPick and place robot ppt
Pick and place robot ppt
 
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
 
Robots
RobotsRobots
Robots
 
A.I robotic presentation
A.I robotic presentation  A.I robotic presentation
A.I robotic presentation
 
Presentation of robotics
Presentation of roboticsPresentation of robotics
Presentation of robotics
 
ROS - an open-source Robot Operating System
ROS - an open-source Robot Operating SystemROS - an open-source Robot Operating System
ROS - an open-source Robot Operating System
 
Robotics ppt
Robotics pptRobotics ppt
Robotics ppt
 

Viewers also liked

Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...
zukun
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
hudvin
 

Viewers also liked (7)

Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROS
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
Maģistra studijas informācijas tehnoloģijā
Maģistra studijas informācijas tehnoloģijāMaģistra studijas informācijas tehnoloģijā
Maģistra studijas informācijas tehnoloģijā
 
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
제2회 오픈 로보틱스 세미나 (제10세션 ROS를 활용한 SLAM과 내비게이션)
 
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRVROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
 
Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
 

Similar to My ROS Experience

EF09-Installing-Alfresco-components-1-by-1.pdf
EF09-Installing-Alfresco-components-1-by-1.pdfEF09-Installing-Alfresco-components-1-by-1.pdf
EF09-Installing-Alfresco-components-1-by-1.pdf
DangGonz
 

Similar to My ROS Experience (20)

EF09-Installing-Alfresco-components-1-by-1.pdf
EF09-Installing-Alfresco-components-1-by-1.pdfEF09-Installing-Alfresco-components-1-by-1.pdf
EF09-Installing-Alfresco-components-1-by-1.pdf
 
An Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating SystemAn Overview of the IHK/McKernel Multi-kernel Operating System
An Overview of the IHK/McKernel Multi-kernel Operating System
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Bundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPMBundling Packages and Deploying Applications with RPM
Bundling Packages and Deploying Applications with RPM
 
Frontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeFrontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the like
 
Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1Ef09 installing-alfresco-components-1-by-1
Ef09 installing-alfresco-components-1-by-1
 
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
 
6202942
62029426202942
6202942
 
Open shift
Open shiftOpen shift
Open shift
 
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDKHow to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
 
App container rkt
App container rktApp container rkt
App container rkt
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Core Android
Core AndroidCore Android
Core Android
 
Rust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with EmbassyRust Embedded Development on ESP32 and basics of Async with Embassy
Rust Embedded Development on ESP32 and basics of Async with Embassy
 
Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]Slackware Demystified [SELF 2011]
Slackware Demystified [SELF 2011]
 
Node.js - A practical introduction (v2)
Node.js  - A practical introduction (v2)Node.js  - A practical introduction (v2)
Node.js - A practical introduction (v2)
 
ROS2 on WebOS - Brian Shin(LG)
ROS2 on WebOS - Brian Shin(LG)ROS2 on WebOS - Brian Shin(LG)
ROS2 on WebOS - Brian Shin(LG)
 
How to cross compile ROS2 distro by taken VxWorks RTOS as an example
How to cross compile ROS2 distro by taken VxWorks RTOS as an exampleHow to cross compile ROS2 distro by taken VxWorks RTOS as an example
How to cross compile ROS2 distro by taken VxWorks RTOS as an example
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 

Recently uploaded

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
Health
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
HenryBriggs2
 

Recently uploaded (20)

S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
+97470301568>> buy weed in qatar,buy thc oil qatar,buy weed and vape oil in d...
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
scipt v1.pptxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 

My ROS Experience

  • 1. My ROS Experience - SJ Kim - bus710@gmail.com
  • 2. Speaker SJ Kim (Seongjun Kim) - Embedded Software Engineer for 6 years - MCUs, Linux, Web development - My goals 1. Build autonomous robots 2. Make my robot runs errand for me 3. Easy web interface for SLAM and navigation 2 • SLAM: Simultaneous localization and mapping • Navigation: the act, activity, or process of finding the way to get to a place when you are traveling in a ship, airplane, car, etc. (Merriam-Webster)
  • 3. Table & Contents - Before ROS - pyKobuki (GUI app for turtlebot) - Why ROS? - Essential Concepts & Commands - ROS installation - Project 1 - SULCATA (ROS stack for SLAM) - Project 2 - Gazebo Factory (steps for original robot) - Project 3 - Web and ROS - What's Next? - Q & A - Reference 3
  • 4. Before ROS (pyKobuki) - https://github.com/bus710/pyKobuki - A GUI application for driving Kobuki - Python, Tkinter, threading, serial comm. https://youtu.be/1CXgpq7vz8k 4
  • 5. Before ROS (pyKobuki) (cont.) - Target features: TCP socket, Kinect, SLAM, Manipulator - A new feature requires a new thread. - New features cause high complexity/time sensitivity. - An error from a thread can stop other threads. Kobuki OS Python runtime Main process SerialQ ParserGUI PC USB TCP socket Kinect Manipulator 5 SLAM
  • 6. Why ROS? - Meta OS, Stable middleware, and Modular design - Several message types (topic, service, and action) - Various useful packages (Drivers, DSP, and ML) - Supports several languages (c/c++, java, js, golang, …) - Free Open Source Software - Promising roadmap (sync w/ Ubuntu LTS) 6 Kobuki OS ROS MLWebGUI PC Manipulator Kinect Driver DSP Planner
  • 7. Essential Concepts & commands - Roscore: ROS itself. - Rosrun: runs a single node in a package. - Roslaunch: runs multiple nodes across multiple packages. - Catkin: is an extension of cmake for ROS. - Message between Publisher/Subscriber nodes. - Topic: message stream between pub/sub nodes. - Service: is RPC. a node can call another nodes’ func. - Action: can initiate a long-running task. 7
  • 8. ROS installation - CPU: Intel i5 - 3rd gen., RAM: 8GB, HDD: 64GB, - GPU: HD4000, USB: 3.0 - Ubuntu 14.04, ROS Indigo - Desktop Full 8 $ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’ $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 0xB01FA116 $ sudo apt-get update $ sudo apt-get install ros-indigo-desktop-full $ sudo rosdep init $ rosdep update $ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc $ source ~/.bashrc $ sudo apt-get install python-rosinstall $ cd ~ $ mkdir catkin_ws $ cd catkin_ws $ catkin_make $ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc ; source ~/.bashrc http://wiki.ros.org/indigo/Installation/Ubuntu
  • 9. Project 1 - SULCATA - A type of tortoise species, which live in the ground. - Kinect v2, Kobuki, Kobuki supporter kit - USB Type A to B, Camera mounting screw - Molex PN : 5566-02B2 9NVIDIA-TK1 (ARM based) Intel I-5 (x64 based) VS.
  • 10. Project 1 - SULCATA (cont.) - Summary for the stack 10 kobuki Ubuntu kobuki-slamkobuki- keyop rviz PC Kinect v2 kobuki-driver urg-node libkinect2 iai-kinect2kobuki-node depth to laser ROS 1 235 46 (1) iai-Kinect sends depth image to the dimension converter node. (2) The converter sends 2D value to urg-node. (3)&(4) kobuki-slam reads 2D value and tf (time frame) from each nodes. (5) Rviz visualizes data on GUI. (6) keyop sends topics for driving kobuki.
  • 11. Project 1 - SULCATA (cont.) - Installation & Launch https://github.com/bus710/sulcata 11 - libkinect2 supports several GPUs (NVIDIA, AMD, Intel, ARM). - Read the official document carefully to install the driver on your machine.
  • 12. Project 2 - Gazebo Factory - Gazebo is OSRF’s 3D robot simulator. - Supports ground, flight, underwater env. & robot. - Various physics engines (ODE, Bullet, Simbody, and DART) - Compatible with ROS. Good for proof of concept. 12 UbuntuPC ROS Model System World World Plugin System plugin Model plugin Gazebo
  • 13. Project 2 - Gazebo Factory (cont.) - 3 files for model description. (1) model.config (2) model.sdf (3) link*.dae (by Blender, Solidworks, or Rhino) - 6 files for ROS package and Gazebo world setting. (4) CMakeLists.txt (5) package.xml (6) launch/PROJECT_NAME.launch 13 /home/USER_NAME/ .gazebo/models/ROBOT_NAME/ catkin_ws/src/PROJECT_NAME/ (1) model.config (2) model.sdf (3) link*.dae (4) CMakeLists.txt (5) package.xml (6) launch/PROJECT_NAME.launch (7) worlds/WORLD_NAME.world (8) src/GAZEBO_PLUGIN.cc (8) src/ROS_NODE.py (7) worlds/WORLD_NAME.world (8) src/GAZEBO_PLUGIN.cc (9) src/ROS_NODE.py
  • 14. Project 2 - Gazebo Factory (cont.) - Installation & Launch https://github.com/bus710/gz_factory 14 https://youtu.be/lGlfi2OWBnE
  • 15. Project 3 - Web and ROS - ROS bridge package supports web socket. - A good fit for real-time web applications. - Any computer has web browser. (no install for client) - There is a missing link between ROS bridge and browser. - Browser requires web page before it accesses web socket 15 ROS coreROS bridge Web browser ??? Client Robot This layer must deliver web page for browser
  • 16. Project 3 - Web and ROS (cont.) - To deliver web pages, we need a web server. - Node.js has lightweight web server, Express. 16 Node.js stack ROS stackWeb Browser Client Robot User starts - ROS core. - ROS simulator node. - ROS bridge (port 9090). User starts node stack (port 3000).User accesses Robot via web browser. Then, Web browser requests index.html. Node returns index.html. Web browser requests client.js Node returns client.js. User clicks button on web. Then, the loaded Client.js sends JSON packet via WebSocket (port 9090). ROS bridge - Converts JSON to ROS topic. - Assigns topic to simulator. 1 2 3 4 n User actions Http exchange Web socket access
  • 17. Project 3 - Web and ROS (cont.) - Installation & Launch https://github.com/bus710/rosbridge-usage - Result
  • 18. What's next - Build a combination with SULCATA + ROS Bridge. - Research on robotics topics about SLAM & navigation. - Eventually, make my robot runs errands for me. 18
  • 20. Reference 20 [1] http://wiki.ros.org/ [2] http://gazebosim.org/ [3] https://github.com/OpenKinect/libfreenect2 [4] https://github.com/code-iai/iai_kinect2 [5] https://github.com/robotpilot/rosbook_kr [6] “Programming Robots with ROS”, Morgan Quigley, Brian Gerkey, and William D. Smart [7] http://wiki.ros.org/urg_node [8] http://wiki.ros.org/depthimage_to_laserscan [9] OROCA, the best ROS community in Korea