Introduction to Service Robotics Application development with
ludus.russo@gmail.com http://www.hotblackrobotics.com/ http://www.ludusrusso.cc/
1 Ludovico Russo, Gabriele Ermacora May 2017
Introduction to Service Robotics Application development with - - PowerPoint PPT Presentation
Introduction to Service Robotics Application development with ludus.russo@gmail.com http://www.hotblackrobotics.com/ http://www.ludusrusso.cc/ 1 Ludovico Russo, Gabriele Ermacora May 2017 Robotics Fields - Industrial Robotics 2 Ludovico
ludus.russo@gmail.com http://www.hotblackrobotics.com/ http://www.ludusrusso.cc/
1 Ludovico Russo, Gabriele Ermacora May 2017
2 Ludovico Russo - May 2017
3 Ludovico Russo - May 2017
4 Ludovico Russo - May 2017
5 Ludovico Russo - May 2017
6 Ludovico Russo - May 2017
HOTBLACK ROBOTICS Cloud Robotics e IoT
Team / HotBlack Robotics was born during the PhD in TIM JOL CRAB (Connected Robotics Application Lab) and Politecnico di Torino
Ph.D. in Robotics Engineering, focused on Human Robot Interaction and Cloud Services. Ph.D. in Robotics Engineering, expert in Service and Cloud Robotics
MISSION: Democratize robotics through a cloud platform.
The cloud platform and the community
Sharing of robotics Open Hardware projects and robotic Open Source (Robotic App Store)
Write a robotic app is easy via cloud
Dotbot - the first open hardware project programmable by cloud
Cloud robotics will be the enabler for service robotics
[Google Autonomous car] You see, a driverless vehicle needs to be able to make a decision in a split
do all these complex calculations, store all the necessary data and handle the analytics side of it, that’s not what you would call efficient. Instead, these vehicles tap into a remote cloud computing network to access boatloads of stored data. This data includes roadmaps, instructions and strategies, visual indicators or identifiers and much more.
e.g Google Car and cloud robotics
15 Ludovico Russo - May 2017
Development
Conventions
16 Ludovico Russo - May 2017
general-purpose robot software is hard.
problems in robotics
collaborative Software Development
17 Ludovico Russo - May 2017
for five years.
supported for two years.
18 Ludovico Russo - May 2017
19
End-of-life 7 distribution C Turtle (2010) -> Hydro (2013) Supported
Indigo Igloo 2014 - 2019 Jade Turtle 2015 - 2017 Kinetic Kame 2016 - 2021 Lunar Loggerhead 2017 - 2019
Ludovico Russo - May 2017
20 Ludovico Russo - May 2017
(Gentoo)
21
Ludovico Russo - May 2017
22 Ludovico Russo - May 2017
Nodes/Libraries/Messages
23
together and is mutually interdependent.
Ludovico Russo - May 2017
24 Ludovico Russo - May 2017
with a ROS environment from the command line
25 Ludovico Russo - May 2017
26
3D visualizer for the Robot Operating System (ROS) framework
Ludovico Russo - May 2017
27
GUI tool for data visualization for the Robot Operating System (ROS) framework
Ludovico Russo - May 2017
28
Set of tools for recording from and playback ROS stream information
Ludovico Russo - May 2017
29 Ludovico Russo - May 2017
30 Ludovico Russo - May 2017
An application developed in ROS is a network
a multi-machine communication network:
ROSNode
32
ROSMessage
exchange to communicate
ROS Master
application and enables communication ROSTopic
async information
Ludovico Russo - May 2017
A node is a process (a program that is executed) inside a ROS network, that perform a specific task
in the network.
messages using topics, services and actions
Topics are the main communication channels in a ROS network:
in the network
format (Message Type)
publisher
subscriber
Topics exchange data encapsulated in messages.
message.
Services are communication channes in a ROS network:
called as Client
called as Server
blocking
Actions are a complex communication system designed for long executing tasks:
system:
38
$ roscore
Ludovico Russo - May 2017
39
$ rosrun turtlesim turtlesim_node $ rosrun turtlesim turtle_teleop_key
Ludovico Russo - May 2017
be execute
be used
several nodes at the same time
<launchfile.launch>
40
<launch> <param name="somestring1" value="bar" /> <!-- force to string instead of integer --> <param name="somestring2" value="10" type="str" /> <param name="someinteger1" value="1" type="int" /> <param name="someinteger2" value="2" /> <param name="somefloat1" value="3.14159" type="double" /> <param name="somefloat2" value="3.0" /> <!-- you can set parameters in child namespaces --> <param name="wg/childparam" value="a child namespace parameter" /> <!-- upload the contents of a file to the server --> <param name="configfile" textfile="$(find roslaunch)/example.xml" /> <!-- upload the contents of a file as base64 binary to the server --> <param name="binaryfile" binfile="$(find roslaunch)/example.xml" /> </launch>
Ludovico Russo - May 2017
41
$ rostopic echo /turtle1/cmd_vel $ rosrun pub ….
Ludovico Russo - May 2017
42
$ 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
Ludovico Russo - May 2017
ROS defines standard messages to handle common type of communication
43
message that can be stamped and WithCovariance
Ludovico Russo - May 2017
between nodes
messages
and waits for a Response from the Server
44
$ rosservice list $ rosservice call /kill turtle1 $ rosservice call /reset
tool to hand Services
Ludovico Russo - May 2017
Type are the data type sent over a Service/Client communication
informations about a service type in ROS
45
$ rossrv show turtlesim/Spawn float32 x float32 y float32 theta string name
Ludovico Russo - May 2017
accessible by all nodes
tool to access to the rosparam server
46
$ rosparam list /background_b /background_g /background_r /rosdistro /roslaunch/uris/host_imacdiludovico_home net_telecomitalia_it__50532 /rosversion /run_id $rosparam set background_g 160
Ludovico Russo - May 2017
47 Ludovico Russo - May 2017
48 Ludovico Russo - May 2017
project where code and executables are placed
need
within catkin_ws/src
49 Ludovico Russo - May 2017
the src folder
50
package
how to build the package
Ludovico Russo - May 2017
51 Ludovico Russo - May 2017
mapping
v=khSrWtB0Xik
52 Ludovico Russo - May 2017
problems in Robot Navigation
53 Ludovico Russo - May 2017
localization algorithm based on particle filtes
v=xaeUc1-r9rY
54 Ludovico Russo - May 2017
algorithm
v=QFxTCL-i72A
55 Ludovico Russo - May 2017
manipulation
ch?v=vAeEEoxVhAo
56 Ludovico Russo - May 2017
gYgxzc
57 Ludovico Russo - May 2017
topics and services over a character device such as a serial port or network socket
58
ROS Network Rosserial Node Serial Devices
Ludovico Russo - May 2017
59
ROS Network Rosbridge Server Web APPs
Ludovico Russo - May 2017
60 Ludovico Russo - May 2017
61 Ludovico Russo - May 2017
62 Ludovico Russo - May 2017
63 Ludovico Russo - May 2017
https://www.youtube.com/watch?v=HlUB0oHuXrc
64 Ludovico Russo - May 2017
65 Ludovico Russo - May 2017
66 Ludovico Russo - June 2016 Ludovico Russo - May 2017
67 Ludovico Russo - June 2016 Ludovico Russo - May 2017
68 Ludovico Russo - May 2017
69 Ludovico Russo - May 2017
70
https://www.youtube.com/watch?v=EJ5-uBt7rHs
Ludovico Russo - May 2017
71 Ludovico Russo - May 2017
72 Ludovico Russo - May 2017
73 Ludovico Russo - May 2017
74 Ludovico Russo - May 2017