SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 1
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Java Robotics & IoT
How many tasks must a PiBot spell
Before you call him intellect
How many threads must JVM propel
Before you make it understand
Trayan Iliev
tiliev@iproduct.org http://iproduct.org
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 2
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
About me ...
Trayan Iliev
Assistent Professor at Sofia
University
&
CEO of IPT – Intellectual Products
& Technologies
an IT Education Company
specialized in Java™ and
Java EE and Web trainings
Oracle®, Java™ and JavaScript™ are trademarks or registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 3
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Disclaimer
All slides in this presentation reflect only my own personal preferences
and current understanding and have not received any endorsement or
approval by IPT - Intellectual Products and Technologies or any third
party. They should not be used for any purchasing (or other) decisions.
The information presented here may be incorrect or incomplete.
It is provided "as is", without warranty of any kind, express or implied,
including but not limited to the warranties of merchantability, fitness for
a particular purpose and noninfringement. In no event shall the author
or copyright holders be liable for any claim, damages or other liability,
whether in an action of contract, tort or otherwise, arising from, out of or
in connection with the information in this presentation or the use or
other dealings in this information.
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 4
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
... and Java™ Robotics
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 5
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
How to Build a Robot with Java™?
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 6
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
How to Build a Robot with Java™?
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 7
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
How to Build a Robot with Java™?
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 8
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
… and Why?
A great way to learn Java™ - why not?
Multithreading
Event driven and asynchronous programming
Actually reactive programming
Java 8 Lambdas and Streaming
Serial and network communication (Web Sockets are
great :)
and much, much more ...
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 9
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Low Level GPIO Programming is Fun :)
public class MotorDemo01 {
public static void main(String[] args) throws InterruptedException {
// initialize wiringPi library
Gpio.wiringPiSetupGpio();
// Motor direction pins
Gpio.pinMode(5, Gpio.OUTPUT);
Gpio.pinMode(6, Gpio.OUTPUT);
// SoftPwm.softPwmCreate(12, 0, 100);
Gpio.pinMode(12, Gpio.PWM_OUTPUT);
Gpio.pinMode(13, Gpio.PWM_OUTPUT);
Gpio.pwmSetMode(Gpio.PWM_MODE_MS);
Gpio.pwmSetRange(480);
Gpio.pwmSetClock(2);
Gpio.pwmWrite(12, 460);
Gpio.pwmWrite(13, 460);
Gpio.digitalWrite(5, 0);
Gpio.digitalWrite(6, 1);
Thread.sleep(5000);
System.out.println("Running motors forward accelerating");
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 10
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
How to Build a Robot with Java™?
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 11
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Low Level GPIO Programming is Fun :)
public class MotorDemo01 {
public static void main(String[] args) throws InterruptedException {
// initialize wiringPi library
Gpio.wiringPiSetupGpio();
// Motor direction pins
Gpio.pinMode(5, Gpio.OUTPUT);
Gpio.pinMode(6, Gpio.OUTPUT);
// SoftPwm.softPwmCreate(12, 0, 100);
Gpio.pinMode(12, Gpio.PWM_OUTPUT);
Gpio.pinMode(13, Gpio.PWM_OUTPUT);
Gpio.pwmSetMode(Gpio.PWM_MODE_MS);
Gpio.pwmSetRange(480);
Gpio.pwmSetClock(2);
Gpio.pwmWrite(12, 460);
Gpio.pwmWrite(13, 460);
Gpio.digitalWrite(5, 0);
Gpio.digitalWrite(6, 1);
// SoftPwm.softPwmWrite(12, i);
Thread.sleep(5000);
System.out.println("Running motors forward accelerating");
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 12
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
The Platforms
Lego®
Mindstorms®
- http://www.lego.com/en-us/mindstorms
Raspberry Pi™ - https://www.raspberrypi.org/raspberry-pi-2-
on-sale/
Banana Pi®
- http://www.bananapi.org/p/product.html
SparkFun®
pcDuino v2 & v3 -
https://www.sparkfun.com/products/12856
BeagleBone - http://beagleboard.org/bone
ODROID – http://www.hardkernel.com/main/main.php
Arduino (Sorry no Java™ here – YET) & all the clones
PINGUINO = similar to Arduino but on PIC microcontrollers
LEGO® is a registered trademark of LEGO® Group. Programs of IPT are not affiliated,
sponsored or endorsed by LEGO® Education or LEGO® Group. Raspberry Pi™ is a
trademark of Raspberry Pi Foundation. Other names may be trademarks of their
respective owners.
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 13
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Lego® Mindstorms®
Pros:
Easy to use – even for children, using graphical editor
Ready made hardware components – no need to solder
and drill :)
There is a Java on Lego project – LeJOS (www.lejos.org/)
Cons:
Too easy to use – the graphical editor is not my personal
favourite when programming more complex algorithms, or if
integration is needed with other libraries (easy with LeJOS)
Custom sensors or Arduino integration may be harder to do
Limited computational capabilities
,
LEGO® is a registered trademark of LEGO® Group. Programs of IPT are not affiliated,
sponsored or endorsed by LEGO® Education or LEGO® Group. Raspberry Pi™ is a
trademark of Raspberry Pi Foundation. Other names may be trademarks of their
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 14
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Raspberry Pi™
Pros:
Much better computational power for only 35$ - 900MHz quad-
core ARM Cortex-A7 CPU, 1GB DR2 SDRAM, compatibility with
Raspberry Pi 1
Cons:
You have to build everything
in your robot yourself ...
... but it can be fun :)
There is a 40 pin GPIO
available, there are motor
drivers, servos, sensors for Pi
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 15
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
The Platforms
LeJOS, Java for Lego® Mindstorms®, The Pi4J Project –
Connecting Java to Raspberry Pi™, Arduino.
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 16
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
SparkFun® pcDuino v3
$59.95, CPU: AllWinner A20 SoC
1GHz ARM Cortex A7 Dual Core
GPU: OpenGL ES2.0, OpenVG
1.1 Mali 400 Dual Core
1GB DRAM
Onboard Storage: 4GB Flash,
microSD card (TF) slot for up to
32GB
Arduino-Style Peripheral Headers
SATA Host Socket
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 17
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
The Platforms
LeJOS, Java for Lego® Mindstorms®, The Pi4J Project –
Connecting Java to Raspberry Pi™, Arduino.
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 18
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Arduino and the Clones
Open hardware and software project
Low level and real time microcontroller programming
Easy to program using Arduino IDE
New: Plugin for Eclipse under development!
There is a big variety of boards
Even very cheap ones < 15$
Pulolu
A-Star
Micro/Mini
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 19
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
But Lets See Some Code: Lego
a
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 20
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
But Lets See Some Java Code: LeJOS
public class MotorDemo07 {
public static void main(String[] args) {
final EV3 ev3 = (EV3) BrickFinder.getLocal();
TextLCD lcd = ev3.getTextLCD();
Audio audio = ev3.getAudio();
//Color sensor
EV3ColorSensor colorSensor = new EV3ColorSensor(SensorPort.S3);
SensorMode color = colorSensor.getRGBMode();
float[] colorSample = new float[color.sampleSize()];
playMessage(audio);
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 21
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
LeJOS (2)
EV3TouchSensor touchSensor = new EV3TouchSensor(SensorPort.S1);
SensorMode touch = touchSensor.getTouchMode();
float[] sample = new float[touch.sampleSize()];
RegulatedMotor mA, mB, mC;
mA = new EV3LargeRegulatedMotor(MotorPort.A);
mB = new EV3LargeRegulatedMotor(MotorPort.B);
mC = new EV3LargeRegulatedMotor(MotorPort.C);
mB.setSpeed(120);// 2 RPM
mC.setSpeed(120);
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 22
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
LeJOS (3)
mB.synchronizeWith(new RegulatedMotor[] { mC });
long startTime = System.currentTimeMillis();
long duration;
int lastColorId = Color.NONE;
for (int i = 0; i < 4; i++) {
// go forward
mB.startSynchronization();
mB.forward();
mC.forward();
mB.endSynchronization();
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 23
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
LeJOS (4)
// go until not obstacle
do {
duration = System.currentTimeMillis() - startTime;
touch.fetchSample(sample, 0);
color.fetchSample(colorSample, 0);
lcd.drawString("" + colorSample[0], 0, 3);
lcd.drawString("" + colorSample[1], 0, 4);
lcd.drawString("" + colorSample[2], 0, 5);
} while (duration < 60000 && mB.isMoving() && mC.isMoving()
&& sample[0] == 0 && isReflecting(colorSample));
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 24
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
LeJOS (5)
mB.startSynchronization(); // go back
mB.backward();
mC.backward();
mB.endSynchronization();
mB.startSynchronization(); // turn back
mB.rotate(1000, true);
mC.rotate(-1000, true);
mB.endSynchronization();
while (mB.isMoving() && mC.isMoving())
Thread.yield();
}
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 25
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
LeJOS (6)
mB.flt();
mC.flt();
mA.close();
mB.close();
mC.close();
}
private static void playMessage(final Audio audio) {
audio.playSample(new File("pozdrav_01.wav"), 100);
}
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 26
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
LeJOS (7)
You have to adjust the thresholds by trial and error :)
private static boolean isReflecting(float[] colorSample){
return colorSample[0] > 0.015
|| colorSample[1] > 0.015
|| colorSample[2] > 0.015;
}
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 27
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J – Java Low Level GPIO (I2C, SPI, Serial) for
Raspberry Pi
General-purpose input/output (GPIO) – allow digital (and
Analog on Arduino) input and output
Allows listeners to be registered for events connected with the
signal
Supports I²C (Inter-Integrated Circuit) – slower but uses only
two pins for bidirectional data transmission with many devices
(different addresses).
Serial Peripheral Interface (SPI) – much faster but requires
additional wires
See for more details IPT repository @ GitHub:
https://github.com/iproduct/course-social-robotics/wiki/Lectures
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 28
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J (1) – GPIO Initialization
public class MotorDemo01 {
public static void main(String[] args) throws
InterruptedException {
// initialize wiringPi library using Broadcom pin
numbering scheme
Gpio.wiringPiSetupGpio();
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 29
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J (2) - Setup
// Motor direction pins
Gpio.pinMode(5, Gpio.OUTPUT);
Gpio.pinMode(6, Gpio.OUTPUT);
// Motor speed pulse width modulated (PWM) pins
Gpio.pinMode(12, Gpio.PWM_OUTPUT);
Gpio.pinMode(13, Gpio.PWM_OUTPUT);
Gpio.pwmSetMode(Gpio.PWM_MODE_MS);
Gpio.pwmSetRange(480);
Gpio.pwmSetClock(2);
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 30
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J (3) – Turning Left / Right
System.out.println("Turning left");
//setting motor directions
Gpio.digitalWrite(5, 1);
Gpio.digitalWrite(6, 0);
//setting speed
Gpio.pwmWrite(12, 460); // speed 460 of 480 max
Gpio.pwmWrite(13, 460);
// turn duration
Thread.sleep(3000);
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 31
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J (4) – Accelerating / Decelerating
System.out.println("Motors forward accelerating");
for (int i = 0; i <= 480; i++) {
//setting motor directions
Gpio.digitalWrite(5, 1);
Gpio.digitalWrite(6, 1);
//setting speed
Gpio.pwmWrite(12, i);
Gpio.pwmWrite(13, i);
Thread.sleep(40);
}
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 32
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J (5) – Finishing Politely
// turning the motors off
Gpio.digitalWrite(5, 0);
Gpio.digitalWrite(6, 0);
Gpio.pwmWrite(12, 0);
Gpio.pwmWrite(13, 0);
System.out.println("End of the demo.");
}
}
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 33
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Pi4J – Java Low Level GPIO (I2C, SPI, Serial) for
Raspberry Pi (2)
More programming examples – on the Pi :)
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 34
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Question
How many of you have heard that
Internet of things (IoT) is the next
major revolution comparable in
effect with the Internet itself?
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 35
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Source: http://commons.wikimedia.org/wiki/File:Internet_of_things_signed_by_the_author.jpg,
Author: Wilgengebroed on Flickr (https://www.flickr.com/photos/wilgengebroed/8249565455/),
License: GenericAttribution-NonCommercial 2.0 Generic (CC BY-NC 2.0) -
https://creativecommons.org/licenses/by-nc/2.0/
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 36
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Internet of Things (IoT)
Today computers—and, therefore, the Internet—are almost wholly
dependent on human beings for information. Nearly all of the roughly
50 petabytes (a petabyte is 1,024 terabytes) of data available on the
Internet were first captured and created by human beings—by typing,
pressing a record button, taking a digital picture, or scanning a bar
code. ... The problem is, people have limited time, attention and
accuracy—all of which means they are not very good at capturing data
about things in the real world. ... We're physical, and so is our
environment ... If we had computers that knew everything there was to
know about things ... we would be able to track and count everything,
and greatly reduce waste, loss and cost. We would know when things
needed replacing, repairing or recalling, and whether they were fresh
or past their best. The Internet of Things has the potential to change
the world, just as the Internet did. Maybe even more so.
— Kevin Ashton, 'That 'Internet of Things' Thing', RFID Journal,
July 22, 2009
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 37
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Internet of Things (IoT) Perspectives
According to Gartner, there will be nearly 26 billion devices on the
Internet of Things by 2020.
[Gartner, 2013-12-12, http://www.gartner.com/newsroom/id/2636073]
According to ABI Research, more than 30 billion devices will be
wirelessly connected to the Internet of Things by 2020 (Internet of
Everything)
[ABI Research, https://www.abiresearch.com/press/more-than-30-
billion-devices-will-wirelessly-conne]
It's expected to be a 19 Trillion USD market
[John Chambers, Cisco CEO, http://www.bloomberg.com/news/2014-
01-08/cisco-ceo-pegs-internet-of-things-as-19-trillion-market.html]
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 38
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
IoT and Need for Standards
"Basket of remotes" problem – we'll have hundreds of applications
to interface with hundreds of devices that don't share protocols for
speaking with one another
[Jean-Louis Gassée, Apple initial alumni team, and BeOS co-founder,
http://www.mondaynote.com/2014/01/12/internet-of-things-the-basket-of-
remotes-problem/]
Only IPv6 addresses are not enough – IoT devices should be
also easily and directly accessible for users and [their] agents
In read/write mode
Preferably using a standard web browser
Even behind firewalls
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 39
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Web Socket Based Communication
Architecture
Proxies: HTTP CONNECT –
Tunnelling
HTTP/S can be used
WebSockets over SSL
(wss:// scheme)
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 40
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Intelligent Agent – Basic Architecture
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 41
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Three Basic Paradigms in AI Robotics
Hierarchical paradigm – the planning approach [STRIPS,
http://en.wikipedia.org/wiki/STRIPS]
Reactive paradigm [Brooks, Subsusmtion Architecture]
Hybrid paradigm [INTERRAP]:
Reacting
Planning
Social communication and interaction
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 42
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Subsumption Architecture [Brooks, 1986 &1991]
Rodney A. Brooks, MIT AI Lab — paper "Elephants Don't Play
Chess", 1986
Behavioral approach to AI – Behavior-Based Robotics (BBR).
BBR robots act based on multiple independent, simple
behaviors, which can be hierarchicaally subsumed.
Behaviors have a triger (sensor percept) and action (using an
effector).
When there is a conflict between two behaviors – the conflict is
resolved by a third component called Arbitrator.
Overall intelligent behavior is not just a sum of different simple
component behaviors, but it is dynamically emerging from them.
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 43
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Subsumption Architecture [Brooks, 1986 &1991]
Situatedness
Embodiment
Intelligence
Emergence
"Subsumption Architecture Abstract Diagram" by KodoKB - Own work. Licensed under CC0 via Wikimedia Commons -
http://commons.wikimedia.org/wiki/File:Subsumption_Architecture_Abstract_Diagram.png#/media/
File:Subsumption_Architecture_Abstract_Diagram.png
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 44
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
Теория на игрите
RoboCup 2013 – Eindhoven by Albert van Breemen
[https://www.flickr.com/photos/robocup2013/10151792836]
License: Attribution-NonCommercial-ShareAlike 2.0 Generic (CC BY-NC-SA 2.0)
https://creativecommons.org/licenses/by-nc-sa/2.0/
IPT – Intellectual Products & Technologies
Trayan Iliev, http://www.iproduct.org/
BG OUG Meeting – Hisarya
June 13, 2014
Slide 45
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License
More Information about Java™ Robotics:
https://github.com/iproduct/course-social-
robotics/wiki/Lectures
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 46
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
References
Social Robotics Lectures (Github wiki) –
https://github.com/iproduct/course-social-robotics/wiki/Lectures
Iliev, T., Ontology Based Multi-Agent Architecture for Adaptive
Courseware Delivery, Int. Workshop on Interactive Computer-aided
Learning ICL'2003, Villach, Austria, September 24-26, 2003
Internet of Things (IoT) in Wikipedia –
http://en.wikipedia.org/wiki/Internet_of_Things
Brooks, R.: A robust layered control system for a mobile robot. IEEE
Journal of Robotics and Automation, 2(1), 1986, pp. 14-23
Brooks, R., Intelligence without representation, Artificial Intelligence,
47, 1991, pp.139-159
IPT – Intellectual Products & Technologies
Trayan Iliev, http://product.org/
BG OUG Meeting – Plovdiv
June 12, 2015
Slide 47
Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0
Unported License. In the presentation are used materials from https://openclipart.org/
Thanks for Your Attention!
Questions?

Contenu connexe

Similaire à IPT – Java Robotics and IoT

computer_vision_dummies_with_Opencv.pdf
computer_vision_dummies_with_Opencv.pdfcomputer_vision_dummies_with_Opencv.pdf
computer_vision_dummies_with_Opencv.pdfDeepuChaudhary12
 
Applying IoT
Applying IoTApplying IoT
Applying IoTNorseDisc
 
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJava Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJeff Prestes
 
Raspberry Pi NightHacking by Stephen Chin
Raspberry Pi NightHacking by Stephen Chin Raspberry Pi NightHacking by Stephen Chin
Raspberry Pi NightHacking by Stephen Chin Codemotion
 
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoEchelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoAndri Yadi
 
Year 5-6: Ideas for teaching coding
Year 5-6: Ideas for teaching codingYear 5-6: Ideas for teaching coding
Year 5-6: Ideas for teaching codingJoanne Villis
 
Samsung SDS OpeniT - The possibility of Python
Samsung SDS OpeniT - The possibility of PythonSamsung SDS OpeniT - The possibility of Python
Samsung SDS OpeniT - The possibility of PythonInsuk (Chris) Cho
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveAndri Yadi
 
Getting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonGetting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonAyan Pahwa
 
Python 101 For The Net Developer
Python 101 For The Net DeveloperPython 101 For The Net Developer
Python 101 For The Net DeveloperSarah Dutkiewicz
 
Building your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiBuilding your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiJeff Prestes
 
Understanding Technologies - Presentation for College Students
Understanding Technologies - Presentation for College StudentsUnderstanding Technologies - Presentation for College Students
Understanding Technologies - Presentation for College StudentsKetan Raval
 
120018965 lab view-arduino-v1
120018965 lab view-arduino-v1120018965 lab view-arduino-v1
120018965 lab view-arduino-v1Eslem Islam
 
Continuous integration with Docker
Continuous integration with DockerContinuous integration with Docker
Continuous integration with DockerRondinelli Mesquita
 
Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009
Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009
Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009JP Bosman
 
Internet of Things Conference - Bogor city
Internet of Things Conference - Bogor cityInternet of Things Conference - Bogor city
Internet of Things Conference - Bogor cityAndri Yadi
 
Python and Jupyter: Your Gateway for Learning
Python and Jupyter: Your Gateway for LearningPython and Jupyter: Your Gateway for Learning
Python and Jupyter: Your Gateway for LearningCarol Willing
 

Similaire à IPT – Java Robotics and IoT (20)

computer_vision_dummies_with_Opencv.pdf
computer_vision_dummies_with_Opencv.pdfcomputer_vision_dummies_with_Opencv.pdf
computer_vision_dummies_with_Opencv.pdf
 
Applying IoT
Applying IoTApplying IoT
Applying IoT
 
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJava Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
 
Raspberry Pi NightHacking by Stephen Chin
Raspberry Pi NightHacking by Stephen Chin Raspberry Pi NightHacking by Stephen Chin
Raspberry Pi NightHacking by Stephen Chin
 
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoEchelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
 
Year 5-6: Ideas for teaching coding
Year 5-6: Ideas for teaching codingYear 5-6: Ideas for teaching coding
Year 5-6: Ideas for teaching coding
 
Samsung SDS OpeniT - The possibility of Python
Samsung SDS OpeniT - The possibility of PythonSamsung SDS OpeniT - The possibility of Python
Samsung SDS OpeniT - The possibility of Python
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer Perspective
 
IoT Session Thomas More
IoT Session Thomas MoreIoT Session Thomas More
IoT Session Thomas More
 
Cc internet of things @ Thomas More
Cc internet of things @ Thomas MoreCc internet of things @ Thomas More
Cc internet of things @ Thomas More
 
Getting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonGetting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPython
 
Python 101 For The Net Developer
Python 101 For The Net DeveloperPython 101 For The Net Developer
Python 101 For The Net Developer
 
Building your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiBuilding your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry Pi
 
Understanding Technologies - Presentation for College Students
Understanding Technologies - Presentation for College StudentsUnderstanding Technologies - Presentation for College Students
Understanding Technologies - Presentation for College Students
 
120018965 lab view-arduino-v1
120018965 lab view-arduino-v1120018965 lab view-arduino-v1
120018965 lab view-arduino-v1
 
Continuous integration with Docker
Continuous integration with DockerContinuous integration with Docker
Continuous integration with Docker
 
Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009
Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009
Rapid e-Learning for Nuclear Medicine ICT Conference 17 November 2009
 
Internet of Things Conference - Bogor city
Internet of Things Conference - Bogor cityInternet of Things Conference - Bogor city
Internet of Things Conference - Bogor city
 
Python and Jupyter: Your Gateway for Learning
Python and Jupyter: Your Gateway for LearningPython and Jupyter: Your Gateway for Learning
Python and Jupyter: Your Gateway for Learning
 
Johnny-Five
Johnny-FiveJohnny-Five
Johnny-Five
 

Plus de Trayan Iliev

Making Machine Learning Easy with H2O and WebFlux
Making Machine Learning Easy with H2O and WebFluxMaking Machine Learning Easy with H2O and WebFlux
Making Machine Learning Easy with H2O and WebFluxTrayan Iliev
 
Rapid Web API development with Kotlin and Ktor
Rapid Web API development with Kotlin and KtorRapid Web API development with Kotlin and Ktor
Rapid Web API development with Kotlin and KtorTrayan Iliev
 
IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018Trayan Iliev
 
Learning Programming Using Robots - Sofia University Conference 2018
Learning Programming Using Robots - Sofia University Conference 2018 Learning Programming Using Robots - Sofia University Conference 2018
Learning Programming Using Robots - Sofia University Conference 2018 Trayan Iliev
 
Active Learning Using Connected Things - 2018 (in Bulgarian)
Active Learning Using Connected Things - 2018 (in Bulgarian)Active Learning Using Connected Things - 2018 (in Bulgarian)
Active Learning Using Connected Things - 2018 (in Bulgarian)Trayan Iliev
 
Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018Trayan Iliev
 
Fog Computing - DEV.BG 2018
Fog Computing - DEV.BG 2018Fog Computing - DEV.BG 2018
Fog Computing - DEV.BG 2018Trayan Iliev
 
Microservices with Spring 5 Webflux - jProfessionals
Microservices  with Spring 5 Webflux - jProfessionalsMicroservices  with Spring 5 Webflux - jProfessionals
Microservices with Spring 5 Webflux - jProfessionalsTrayan Iliev
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Trayan Iliev
 
What's new in java 9?
What's new in java 9?What's new in java 9?
What's new in java 9?Trayan Iliev
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in DepthTrayan Iliev
 
Stream Processing with CompletableFuture and Flow in Java 9
Stream Processing with CompletableFuture and Flow in Java 9Stream Processing with CompletableFuture and Flow in Java 9
Stream Processing with CompletableFuture and Flow in Java 9Trayan Iliev
 
React HOCs, Context and Observables
React HOCs, Context and ObservablesReact HOCs, Context and Observables
React HOCs, Context and ObservablesTrayan Iliev
 
Reactive Java Robotics & IoT with Spring Reactor
Reactive Java Robotics & IoT with Spring ReactorReactive Java Robotics & IoT with Spring Reactor
Reactive Java Robotics & IoT with Spring ReactorTrayan Iliev
 
Reactive robotics io_t_2017
Reactive robotics io_t_2017Reactive robotics io_t_2017
Reactive robotics io_t_2017Trayan Iliev
 
Java & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionals
Java & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionalsJava & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionals
Java & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionalsTrayan Iliev
 
IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016Trayan Iliev
 
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...Trayan Iliev
 

Plus de Trayan Iliev (18)

Making Machine Learning Easy with H2O and WebFlux
Making Machine Learning Easy with H2O and WebFluxMaking Machine Learning Easy with H2O and WebFlux
Making Machine Learning Easy with H2O and WebFlux
 
Rapid Web API development with Kotlin and Ktor
Rapid Web API development with Kotlin and KtorRapid Web API development with Kotlin and Ktor
Rapid Web API development with Kotlin and Ktor
 
IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018IPT Reactive Java IoT Demo - BGOUG 2018
IPT Reactive Java IoT Demo - BGOUG 2018
 
Learning Programming Using Robots - Sofia University Conference 2018
Learning Programming Using Robots - Sofia University Conference 2018 Learning Programming Using Robots - Sofia University Conference 2018
Learning Programming Using Robots - Sofia University Conference 2018
 
Active Learning Using Connected Things - 2018 (in Bulgarian)
Active Learning Using Connected Things - 2018 (in Bulgarian)Active Learning Using Connected Things - 2018 (in Bulgarian)
Active Learning Using Connected Things - 2018 (in Bulgarian)
 
Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018
 
Fog Computing - DEV.BG 2018
Fog Computing - DEV.BG 2018Fog Computing - DEV.BG 2018
Fog Computing - DEV.BG 2018
 
Microservices with Spring 5 Webflux - jProfessionals
Microservices  with Spring 5 Webflux - jProfessionalsMicroservices  with Spring 5 Webflux - jProfessionals
Microservices with Spring 5 Webflux - jProfessionals
 
Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux Reactive Microservices with Spring 5: WebFlux
Reactive Microservices with Spring 5: WebFlux
 
What's new in java 9?
What's new in java 9?What's new in java 9?
What's new in java 9?
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in Depth
 
Stream Processing with CompletableFuture and Flow in Java 9
Stream Processing with CompletableFuture and Flow in Java 9Stream Processing with CompletableFuture and Flow in Java 9
Stream Processing with CompletableFuture and Flow in Java 9
 
React HOCs, Context and Observables
React HOCs, Context and ObservablesReact HOCs, Context and Observables
React HOCs, Context and Observables
 
Reactive Java Robotics & IoT with Spring Reactor
Reactive Java Robotics & IoT with Spring ReactorReactive Java Robotics & IoT with Spring Reactor
Reactive Java Robotics & IoT with Spring Reactor
 
Reactive robotics io_t_2017
Reactive robotics io_t_2017Reactive robotics io_t_2017
Reactive robotics io_t_2017
 
Java & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionals
Java & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionalsJava & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionals
Java & JavaScipt Reactive Robotics and IoT 2016 @ jProfessionals
 
IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016IPT angular2 typescript SPA 2016
IPT angular2 typescript SPA 2016
 
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...
 

Dernier

Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Dernier (20)

Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

IPT – Java Robotics and IoT

  • 1. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 1 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Java Robotics & IoT How many tasks must a PiBot spell Before you call him intellect How many threads must JVM propel Before you make it understand Trayan Iliev tiliev@iproduct.org http://iproduct.org
  • 2. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 2 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ About me ... Trayan Iliev Assistent Professor at Sofia University & CEO of IPT – Intellectual Products & Technologies an IT Education Company specialized in Java™ and Java EE and Web trainings Oracle®, Java™ and JavaScript™ are trademarks or registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
  • 3. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 3 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Disclaimer All slides in this presentation reflect only my own personal preferences and current understanding and have not received any endorsement or approval by IPT - Intellectual Products and Technologies or any third party. They should not be used for any purchasing (or other) decisions. The information presented here may be incorrect or incomplete. It is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the author or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the information in this presentation or the use or other dealings in this information.
  • 4. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 4 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ ... and Java™ Robotics
  • 5. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 5 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ How to Build a Robot with Java™?
  • 6. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 6 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ How to Build a Robot with Java™?
  • 7. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 7 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ How to Build a Robot with Java™?
  • 8. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 8 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License … and Why? A great way to learn Java™ - why not? Multithreading Event driven and asynchronous programming Actually reactive programming Java 8 Lambdas and Streaming Serial and network communication (Web Sockets are great :) and much, much more ...
  • 9. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 9 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Low Level GPIO Programming is Fun :) public class MotorDemo01 { public static void main(String[] args) throws InterruptedException { // initialize wiringPi library Gpio.wiringPiSetupGpio(); // Motor direction pins Gpio.pinMode(5, Gpio.OUTPUT); Gpio.pinMode(6, Gpio.OUTPUT); // SoftPwm.softPwmCreate(12, 0, 100); Gpio.pinMode(12, Gpio.PWM_OUTPUT); Gpio.pinMode(13, Gpio.PWM_OUTPUT); Gpio.pwmSetMode(Gpio.PWM_MODE_MS); Gpio.pwmSetRange(480); Gpio.pwmSetClock(2); Gpio.pwmWrite(12, 460); Gpio.pwmWrite(13, 460); Gpio.digitalWrite(5, 0); Gpio.digitalWrite(6, 1); Thread.sleep(5000); System.out.println("Running motors forward accelerating");
  • 10. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 10 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ How to Build a Robot with Java™?
  • 11. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 11 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Low Level GPIO Programming is Fun :) public class MotorDemo01 { public static void main(String[] args) throws InterruptedException { // initialize wiringPi library Gpio.wiringPiSetupGpio(); // Motor direction pins Gpio.pinMode(5, Gpio.OUTPUT); Gpio.pinMode(6, Gpio.OUTPUT); // SoftPwm.softPwmCreate(12, 0, 100); Gpio.pinMode(12, Gpio.PWM_OUTPUT); Gpio.pinMode(13, Gpio.PWM_OUTPUT); Gpio.pwmSetMode(Gpio.PWM_MODE_MS); Gpio.pwmSetRange(480); Gpio.pwmSetClock(2); Gpio.pwmWrite(12, 460); Gpio.pwmWrite(13, 460); Gpio.digitalWrite(5, 0); Gpio.digitalWrite(6, 1); // SoftPwm.softPwmWrite(12, i); Thread.sleep(5000); System.out.println("Running motors forward accelerating");
  • 12. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 12 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License The Platforms Lego® Mindstorms® - http://www.lego.com/en-us/mindstorms Raspberry Pi™ - https://www.raspberrypi.org/raspberry-pi-2- on-sale/ Banana Pi® - http://www.bananapi.org/p/product.html SparkFun® pcDuino v2 & v3 - https://www.sparkfun.com/products/12856 BeagleBone - http://beagleboard.org/bone ODROID – http://www.hardkernel.com/main/main.php Arduino (Sorry no Java™ here – YET) & all the clones PINGUINO = similar to Arduino but on PIC microcontrollers LEGO® is a registered trademark of LEGO® Group. Programs of IPT are not affiliated, sponsored or endorsed by LEGO® Education or LEGO® Group. Raspberry Pi™ is a trademark of Raspberry Pi Foundation. Other names may be trademarks of their respective owners.
  • 13. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 13 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Lego® Mindstorms® Pros: Easy to use – even for children, using graphical editor Ready made hardware components – no need to solder and drill :) There is a Java on Lego project – LeJOS (www.lejos.org/) Cons: Too easy to use – the graphical editor is not my personal favourite when programming more complex algorithms, or if integration is needed with other libraries (easy with LeJOS) Custom sensors or Arduino integration may be harder to do Limited computational capabilities , LEGO® is a registered trademark of LEGO® Group. Programs of IPT are not affiliated, sponsored or endorsed by LEGO® Education or LEGO® Group. Raspberry Pi™ is a trademark of Raspberry Pi Foundation. Other names may be trademarks of their
  • 14. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 14 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Raspberry Pi™ Pros: Much better computational power for only 35$ - 900MHz quad- core ARM Cortex-A7 CPU, 1GB DR2 SDRAM, compatibility with Raspberry Pi 1 Cons: You have to build everything in your robot yourself ... ... but it can be fun :) There is a 40 pin GPIO available, there are motor drivers, servos, sensors for Pi
  • 15. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 15 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License The Platforms LeJOS, Java for Lego® Mindstorms®, The Pi4J Project – Connecting Java to Raspberry Pi™, Arduino.
  • 16. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 16 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License SparkFun® pcDuino v3 $59.95, CPU: AllWinner A20 SoC 1GHz ARM Cortex A7 Dual Core GPU: OpenGL ES2.0, OpenVG 1.1 Mali 400 Dual Core 1GB DRAM Onboard Storage: 4GB Flash, microSD card (TF) slot for up to 32GB Arduino-Style Peripheral Headers SATA Host Socket
  • 17. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 17 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License The Platforms LeJOS, Java for Lego® Mindstorms®, The Pi4J Project – Connecting Java to Raspberry Pi™, Arduino.
  • 18. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 18 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Arduino and the Clones Open hardware and software project Low level and real time microcontroller programming Easy to program using Arduino IDE New: Plugin for Eclipse under development! There is a big variety of boards Even very cheap ones < 15$ Pulolu A-Star Micro/Mini
  • 19. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 19 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ But Lets See Some Code: Lego a
  • 20. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 20 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License But Lets See Some Java Code: LeJOS public class MotorDemo07 { public static void main(String[] args) { final EV3 ev3 = (EV3) BrickFinder.getLocal(); TextLCD lcd = ev3.getTextLCD(); Audio audio = ev3.getAudio(); //Color sensor EV3ColorSensor colorSensor = new EV3ColorSensor(SensorPort.S3); SensorMode color = colorSensor.getRGBMode(); float[] colorSample = new float[color.sampleSize()]; playMessage(audio);
  • 21. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 21 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License LeJOS (2) EV3TouchSensor touchSensor = new EV3TouchSensor(SensorPort.S1); SensorMode touch = touchSensor.getTouchMode(); float[] sample = new float[touch.sampleSize()]; RegulatedMotor mA, mB, mC; mA = new EV3LargeRegulatedMotor(MotorPort.A); mB = new EV3LargeRegulatedMotor(MotorPort.B); mC = new EV3LargeRegulatedMotor(MotorPort.C); mB.setSpeed(120);// 2 RPM mC.setSpeed(120);
  • 22. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 22 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License LeJOS (3) mB.synchronizeWith(new RegulatedMotor[] { mC }); long startTime = System.currentTimeMillis(); long duration; int lastColorId = Color.NONE; for (int i = 0; i < 4; i++) { // go forward mB.startSynchronization(); mB.forward(); mC.forward(); mB.endSynchronization();
  • 23. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 23 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License LeJOS (4) // go until not obstacle do { duration = System.currentTimeMillis() - startTime; touch.fetchSample(sample, 0); color.fetchSample(colorSample, 0); lcd.drawString("" + colorSample[0], 0, 3); lcd.drawString("" + colorSample[1], 0, 4); lcd.drawString("" + colorSample[2], 0, 5); } while (duration < 60000 && mB.isMoving() && mC.isMoving() && sample[0] == 0 && isReflecting(colorSample));
  • 24. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 24 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License LeJOS (5) mB.startSynchronization(); // go back mB.backward(); mC.backward(); mB.endSynchronization(); mB.startSynchronization(); // turn back mB.rotate(1000, true); mC.rotate(-1000, true); mB.endSynchronization(); while (mB.isMoving() && mC.isMoving()) Thread.yield(); }
  • 25. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 25 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License LeJOS (6) mB.flt(); mC.flt(); mA.close(); mB.close(); mC.close(); } private static void playMessage(final Audio audio) { audio.playSample(new File("pozdrav_01.wav"), 100); }
  • 26. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 26 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License LeJOS (7) You have to adjust the thresholds by trial and error :) private static boolean isReflecting(float[] colorSample){ return colorSample[0] > 0.015 || colorSample[1] > 0.015 || colorSample[2] > 0.015; }
  • 27. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 27 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J – Java Low Level GPIO (I2C, SPI, Serial) for Raspberry Pi General-purpose input/output (GPIO) – allow digital (and Analog on Arduino) input and output Allows listeners to be registered for events connected with the signal Supports I²C (Inter-Integrated Circuit) – slower but uses only two pins for bidirectional data transmission with many devices (different addresses). Serial Peripheral Interface (SPI) – much faster but requires additional wires See for more details IPT repository @ GitHub: https://github.com/iproduct/course-social-robotics/wiki/Lectures
  • 28. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 28 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J (1) – GPIO Initialization public class MotorDemo01 { public static void main(String[] args) throws InterruptedException { // initialize wiringPi library using Broadcom pin numbering scheme Gpio.wiringPiSetupGpio();
  • 29. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 29 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J (2) - Setup // Motor direction pins Gpio.pinMode(5, Gpio.OUTPUT); Gpio.pinMode(6, Gpio.OUTPUT); // Motor speed pulse width modulated (PWM) pins Gpio.pinMode(12, Gpio.PWM_OUTPUT); Gpio.pinMode(13, Gpio.PWM_OUTPUT); Gpio.pwmSetMode(Gpio.PWM_MODE_MS); Gpio.pwmSetRange(480); Gpio.pwmSetClock(2);
  • 30. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 30 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J (3) – Turning Left / Right System.out.println("Turning left"); //setting motor directions Gpio.digitalWrite(5, 1); Gpio.digitalWrite(6, 0); //setting speed Gpio.pwmWrite(12, 460); // speed 460 of 480 max Gpio.pwmWrite(13, 460); // turn duration Thread.sleep(3000);
  • 31. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 31 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J (4) – Accelerating / Decelerating System.out.println("Motors forward accelerating"); for (int i = 0; i <= 480; i++) { //setting motor directions Gpio.digitalWrite(5, 1); Gpio.digitalWrite(6, 1); //setting speed Gpio.pwmWrite(12, i); Gpio.pwmWrite(13, i); Thread.sleep(40); }
  • 32. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 32 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J (5) – Finishing Politely // turning the motors off Gpio.digitalWrite(5, 0); Gpio.digitalWrite(6, 0); Gpio.pwmWrite(12, 0); Gpio.pwmWrite(13, 0); System.out.println("End of the demo."); } }
  • 33. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 33 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Pi4J – Java Low Level GPIO (I2C, SPI, Serial) for Raspberry Pi (2) More programming examples – on the Pi :)
  • 34. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 34 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Question How many of you have heard that Internet of things (IoT) is the next major revolution comparable in effect with the Internet itself?
  • 35. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 35 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Source: http://commons.wikimedia.org/wiki/File:Internet_of_things_signed_by_the_author.jpg, Author: Wilgengebroed on Flickr (https://www.flickr.com/photos/wilgengebroed/8249565455/), License: GenericAttribution-NonCommercial 2.0 Generic (CC BY-NC 2.0) - https://creativecommons.org/licenses/by-nc/2.0/
  • 36. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 36 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Internet of Things (IoT) Today computers—and, therefore, the Internet—are almost wholly dependent on human beings for information. Nearly all of the roughly 50 petabytes (a petabyte is 1,024 terabytes) of data available on the Internet were first captured and created by human beings—by typing, pressing a record button, taking a digital picture, or scanning a bar code. ... The problem is, people have limited time, attention and accuracy—all of which means they are not very good at capturing data about things in the real world. ... We're physical, and so is our environment ... If we had computers that knew everything there was to know about things ... we would be able to track and count everything, and greatly reduce waste, loss and cost. We would know when things needed replacing, repairing or recalling, and whether they were fresh or past their best. The Internet of Things has the potential to change the world, just as the Internet did. Maybe even more so. — Kevin Ashton, 'That 'Internet of Things' Thing', RFID Journal, July 22, 2009
  • 37. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 37 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Internet of Things (IoT) Perspectives According to Gartner, there will be nearly 26 billion devices on the Internet of Things by 2020. [Gartner, 2013-12-12, http://www.gartner.com/newsroom/id/2636073] According to ABI Research, more than 30 billion devices will be wirelessly connected to the Internet of Things by 2020 (Internet of Everything) [ABI Research, https://www.abiresearch.com/press/more-than-30- billion-devices-will-wirelessly-conne] It's expected to be a 19 Trillion USD market [John Chambers, Cisco CEO, http://www.bloomberg.com/news/2014- 01-08/cisco-ceo-pegs-internet-of-things-as-19-trillion-market.html]
  • 38. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 38 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ IoT and Need for Standards "Basket of remotes" problem – we'll have hundreds of applications to interface with hundreds of devices that don't share protocols for speaking with one another [Jean-Louis Gassée, Apple initial alumni team, and BeOS co-founder, http://www.mondaynote.com/2014/01/12/internet-of-things-the-basket-of- remotes-problem/] Only IPv6 addresses are not enough – IoT devices should be also easily and directly accessible for users and [their] agents In read/write mode Preferably using a standard web browser Even behind firewalls
  • 39. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 39 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Web Socket Based Communication Architecture Proxies: HTTP CONNECT – Tunnelling HTTP/S can be used WebSockets over SSL (wss:// scheme)
  • 40. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 40 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Intelligent Agent – Basic Architecture
  • 41. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 41 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Three Basic Paradigms in AI Robotics Hierarchical paradigm – the planning approach [STRIPS, http://en.wikipedia.org/wiki/STRIPS] Reactive paradigm [Brooks, Subsusmtion Architecture] Hybrid paradigm [INTERRAP]: Reacting Planning Social communication and interaction
  • 42. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 42 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Subsumption Architecture [Brooks, 1986 &1991] Rodney A. Brooks, MIT AI Lab — paper "Elephants Don't Play Chess", 1986 Behavioral approach to AI – Behavior-Based Robotics (BBR). BBR robots act based on multiple independent, simple behaviors, which can be hierarchicaally subsumed. Behaviors have a triger (sensor percept) and action (using an effector). When there is a conflict between two behaviors – the conflict is resolved by a third component called Arbitrator. Overall intelligent behavior is not just a sum of different simple component behaviors, but it is dynamically emerging from them.
  • 43. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 43 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Subsumption Architecture [Brooks, 1986 &1991] Situatedness Embodiment Intelligence Emergence "Subsumption Architecture Abstract Diagram" by KodoKB - Own work. Licensed under CC0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Subsumption_Architecture_Abstract_Diagram.png#/media/ File:Subsumption_Architecture_Abstract_Diagram.png
  • 44. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 44 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License Теория на игрите RoboCup 2013 – Eindhoven by Albert van Breemen [https://www.flickr.com/photos/robocup2013/10151792836] License: Attribution-NonCommercial-ShareAlike 2.0 Generic (CC BY-NC-SA 2.0) https://creativecommons.org/licenses/by-nc-sa/2.0/
  • 45. IPT – Intellectual Products & Technologies Trayan Iliev, http://www.iproduct.org/ BG OUG Meeting – Hisarya June 13, 2014 Slide 45 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License More Information about Java™ Robotics: https://github.com/iproduct/course-social- robotics/wiki/Lectures
  • 46. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 46 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ References Social Robotics Lectures (Github wiki) – https://github.com/iproduct/course-social-robotics/wiki/Lectures Iliev, T., Ontology Based Multi-Agent Architecture for Adaptive Courseware Delivery, Int. Workshop on Interactive Computer-aided Learning ICL'2003, Villach, Austria, September 24-26, 2003 Internet of Things (IoT) in Wikipedia – http://en.wikipedia.org/wiki/Internet_of_Things Brooks, R.: A robust layered control system for a mobile robot. IEEE Journal of Robotics and Automation, 2(1), 1986, pp. 14-23 Brooks, R., Intelligence without representation, Artificial Intelligence, 47, 1991, pp.139-159
  • 47. IPT – Intellectual Products & Technologies Trayan Iliev, http://product.org/ BG OUG Meeting – Plovdiv June 12, 2015 Slide 47 Licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. In the presentation are used materials from https://openclipart.org/ Thanks for Your Attention! Questions?