SlideShare a Scribd company logo
Making Robots
with mruby
2015-12-12 RubyKaigi 2015
Yurie Yamane
Team Yamanekko
Who am I?
やまね ゆりえ(Yurie Yamane)  
  @yuri_at_earth(only in Japanese)
a member of TOPPERS project
ET robocon staff
たいやき部(taiyaki-bu)
Yamanekko
https://github.com/yamanekko
2012
2013
2014
nomitory
2015
Robots
and Us
http://global.yamaha-motor.com/jp/showroom/event/2015tokyomotorshow/sp/exhibitionmodels/mgp/
“There are probably some things in this world that only I can do.”
https://www.youtube.com/watch?v=EzgJWwAx8Mo
PART 1:
Self-
balancing
Robot
using
LEGO EV3
闇RubyKaigi(2011)
http://gihyo.jp/news/report/01/rubykaigi2011/0001?page=7
http://www.etrobo.jp/2015/
ETロボコンAdvent Calendar 2015
http://www.adventar.org/calendars/734
ET Robot Contest
• aka ET ロボコン(ET ROBOCON)
• ET means “Embedded Technology”
• To develop the advanced skills of
embedded technology such as modeling,
designing, and developing embedded
systems
• “one-make racing” style (all robots have
same designs)
EV3way: Software
System OS Language
TOPPERS/EV3RT TOPPERS RTOS C, C++
MonoBrick Linux C#
leJOS EV3 Linux Java
EV3way: Software
• mruby on EV3RT + TECS
• mrby Forum ver.
• yamanekko ver.
System OS Language
TOPPERS/EV3RT TOPPERS RTOS C + mruby
mruby-ev3rt
mruby-ev3rt demo
Sep. 20th, 2015 at Fukuyama, Hiroshima Pref.
Movie by A. Hirai with ET Robocon Staff@chu-shikoku
• TOPPERS(Toyohashi OPen Platform for
Embedded Real-time Systems)
• TOPPERS’ Products
• Realtime Kernel
• Automotive Kernel
• Tools
• TOPPERS + TSUBAME(swallow) -> TOPAME
TOPPERS Project
とぱめ(TOPAME)
https://www.toppers.jp/
Who uses TOPPERS?
http://ev.nissan.co.jp/LEAF/?pfa=01
http://www.ricoh.co.jp/printer/sg/3100ke/
http://www.korg.com/jp/products/dj/electribe/
http://music.casio.com/ja/products/digital_pianos/ghs/products/
https://en.wikipedia.org/wiki/H-IIB
from: http://toppers.jp/applications.html
TOPPERS Kernel Roadmap
ATK1 ATK2 ATK3
FMP3
HRP3
ASP3
2000 2010 2020
1st generation 3rd generation2nd generation
ITRON
Automotive
FDMP
HRP
FI4
JSP
Dynamic

gen.
ASP Safety
HRP2
FMP
ASP
SSP
http://toppers.jp/docs/intro-invite.pdf
TOPPERS EV3RT
unprivileged
mode
(user mode)
privileged
mode
(kernel mode)
http://dev.toppers.jp/trac_user/ev3pf/wiki/WhatsEV3RT
Self Balancing Robot
Inverted Pendulum
Inverted Pendulum
Inverted Pendulum
Inverted Pendulum
Inverted Pendulum
Inverted Pendulum
Inverted Pendulum
How Robot Works
Target Board
Sensors
Actuator
Gyro Sensor
Ultrasonic Sensor
Motor
Light Sensor
How Robot Works
Target Board
Sensors
Actuator
Read
How Robot Works
Target Board
Sensors
Actuator
Move
How Robot Works
sense
calculate
control motor
execute
periodically
What’s RTOS
• OS for Real Time System
• Real time system: to make much of Deadlines
• NOTICE: “Real-Time” has several meanings
• “Real-Time” in RTOS is completely different
from such as “Real-time Web”
Time is Resource
• In real time
system, Tasks
should be done
in a given time
(deadline)
• RTOS manage
“Time” as
resources (like
memories)
https://www.flickr.com/photos/arjanrichter/3886579525/
Priority of tasks
• Every tasks have their own priority
• Lower-priority tasks never execute
when higher-priority tasks alive
• While higher-priority task is running,
lower-priority tasks are not running
(into READY status)
All tasks are mruby
main_task
balance_task
watch_task
HIGH priority
LOW priority
balancer.rb
watch.rb
app_ruby.rb
注)バランス制御に重点を置いた例。
  これが正しい方法というわけではない
balancer.rb
loop do

forward = 30

color = colorSensor.brightness

if color >= (LIGHT_WHITE + LIGHT_BLACK)/2

turn = 20	 ## turn left

else

turn = -20	 ## turn right

end

pwm_left, pwm_right, *args =

balancer.calculate_auto(forward, turn, GYRO_OFFSET)

leftMotor.pwm = pwm_left

rightMotor.pwm = pwm_right

EV3RT::Task.sleep

end
watch.rb
loop do

break if back_button.pressed?

EV3RT::Task.sleep

end
app_ruby.rb
## initialize sensors, motors, clock and tasks

touchSensor = EV3RT::TouchSensor.new(EV3RT::PORT_1)

gyroSensor = EV3RT::GyroSensor.new(EV3RT::PORT_4)

leftMotor = EV3RT::Motor.new(EV3RT::PORT_C, EV3RT::LARGE_MOTOR)

rightMotor = EV3RT::Motor.new(EV3RT::PORT_B, EV3RT::LARGE_MOTOR)

clock = EV3RT::Clock.new()

EV3RT::Task.active(EV3RT::BALANCE_TASK_ID) ## initialize balancer

loop do ## waiting button pushed

break if touchSensor.pressed?

clock.sleep(10)

end

EV3RT::Task.start_cyclic(EV3RT::BALANCE_CYC_ID) ## start balancer

EV3RT::Task.sleep ## do other tasks
Classes in mruby-ev3rt
Motor
TailMotor
Sensor
GyroSensorColorSensor
TouchSensor
LED LCD Clock Serial Task
Balancer
Button
PART 2:
DIY
Self-
balancing
Robot
DIY Self-balancing Robot
Can we make our own robots
from scratch?
https://www.flickr.com/photos/84906483@N08/8747337118/
DIY Self-balancing Robot
😿🙀😸
http://www.instructables.com/id/Another-Easier-Inverted-Pendulum/
Collecting Parts
Target Board
Sensors Actuator
Raspberry Pi A+
• Lower battery usage
than Pi B+ and Pi 2
• Works with small
USB battery
• Cheeper (< $30) than
Pi B+ and Pi 2
Raspberry Pi A+
😿
ARM Family
http://www.emcu.it/CortexFamily/CortexFamily.html
Pi1 Pi2
EV3
STM32F4
Inverted Pendulum
How to measure an angle
Gyro Sensor
http://akizukidenshi.com/catalog/g/gK-06779/
Gyro Sensor
• ST Micro L3GD20
• 3-axis digital
gyroscope
• use 8 pin DIP module
by Akizuki Denshi
Gyro Sensor
😿
Gyro Sensor
🙀
Measuring the Angle
!1 !2
How to rotate wheels
DC Motor
• TAMIYA FA-130 Motor
• speed control by voltage
• IO cannot change voltage
• 3.3 V (fixed)
• → use PWM
DC Motor
😿
(Motor + Gear) x 2
Wheel x 2
Body
Tamiya 70157 Universal Plate Set
Batteries (for motors)
Batteries (for motors)
🙀
Battery (for Pi A+)
connect a sensor
?
SPI vs I2C
• SPI and I2C are popular protocols
• Gyro sensor L3GD20 supports both
• SPI is more complex, but faster than
I2C
• Raspberry Pi supports SPI (see
“BCM2835 ARM Peripherals”)
• https://www.raspberrypi.org/wp-content/uploads/
2012/02/BCM2835-ARM-Peripherals.pdf
Serial Peripheral Interface (SPI)
• Master and Slave model
• In our case, Raspberry Pi is master
• 4 pins (Input, Output, Clock, Select)
Demo
Gyro Test
serial = Serial.new
timer = SystemTimer.new
gyro = Gyro.new()
serial.puts("time,gyro")
MESURE_COUNTS = 45
start_time = timer.now
cnt = 0
loop do
mesure_sum = 0
MESURE_COUNTS.times{ mesure_sum += gyro.read(Gyro::Y) }
omega_i = mesure_sum * 0.00875 / MESURE_COUNTS;
cnt +=1
now = ((timer.now - start_time) / 1000).floor
if cnt == 10
cnt = 0
serial.puts("#{now},#{omega_i}")
end
end
connect motors
?
PWM
• Pulse-Width Modulation
• pseudo-analog signal output
http://www.electronics-tutorials.ws/blog/pulse-width-modulation.html
PWM
• Raspberry Pi A+/B+/2 supports 2 PWMs
• Old Raspberry Pi B support only 1
PWM
• So we can control 2 motors (Right/Left)
Motor Driver
ST Micro L298N
Motor Driver
PWMIN1 IN2
OUT1
OUT2
MOTOR
Motor Driver
Raspberry Pi
IN1 IN2 OUT
0 0 STOP
0 1 Forward
1 0 Reverse
1 1 Brake
Demo
Motor Test
# in1, in2, enable, pwm0or1
motor_left = Motor.new(5,6,12,0)
motor_right = Motor.new(16,20,19,1)
motor_right.drive(50)
motor_left.drive(50)
RSRobot.delay(3000000)
motor_left.drive(200)
motor_right.drive(200)
RSRobot.delay(3000000)
motor_right.drive(50)
motor_left.drive(50)
RSRobot.delay(3000000)
motor_right.drive(-100)
motor_left.drive(-100)
RSRobot.delay(3000000)
motoy_right.stop
motor_left.sop
JTAG
• For Debugger
• Doesn’t have to
use it
• but with JTAG, we
can use GDB, so
it’s very helpful to
debug
Pinout
Making
Balancer
class
Balancing Equation
power = k_1 * (Angular Velocity) +
k_2 * (Angle) +
k_3 * (Velocity) +
k_4 * (Position)
P = K!! + K✓✓ + Kvv + Kxx
Angle
✓ ✓
Angular Velocity
! !(fast) (slow)
Velocity
(fast) (slow)vv
Position
(far) (near)y asixsy asixs
Balancing Equation
power = k_1 * omega_i +
k_2 * theta_i +
k_3 * v_i +
k_4 * x_i
P = K!! + K✓✓ + Kvv + Kxx
Balancing Equation
power = k_1 * omega_i +
k_2 * theta_i +
k_3 * v_i +
k_4 * x_i
a ≒ Power
v ≒ ∫ Power
x ≒ ∬ Power
P = K!! + K✓✓ + Kvv + Kxx
Balancing Equation
P = K!! + K✓✓ + Kvv + Kxx
= K!! + K✓
X
! + Kv
X
P + Kx
X X
P
power = k_1 * omega_i +
k_2 * theta_i +
k_3 * v_i +
k_4 * x_i
a ≒ Power
v ≒ ∫ Power
x ≒ ∬ Power
Balancing Equation
theta_i += omega_i
v_i += power
x_i += v_i
power = k_1 * theta_i +
k_2 * omega_i +
k_3 * v_i +
k_4 * x_i
P = K!! + K✓✓ + Kvv + Kxx
= K!! + K✓
X
! + Kv
X
P + Kx
X X
P
Balancer class
class Balancer
def calculate(omega_i)
@theta_i += omega_i
# …
t = @k_angle * @theta_i
o = @k_omega * omega_i
# …
power = t + o + …
# …
return power, power
end
end
main loop
loop do
gyro_value = gyro.measure(Gyro::Y,
MESURE_COUNTS)
pwm_left, pwm_right =
balancer.calculate(gyro_value)
motor_left.pwm = pwm_left
motor_right.pwm = pwm_right
end
demo
まずは何か作ってみよう!
Source code
•https://github.com/yamanekko/mruby-ev3rt
•https://github.com/yamanekko/mruby-rs-robot
•https://github.com/yamanekko/raspi_robot
Thank you & Domo Arigato!
ZZZ...
You can contact us on Twitter: @yuri_at_earth
Special Thanks to: @tenderlove
A. Hirai with ET Robocon Staff@chu-shikoku

More Related Content

What's hot

JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015
Charles Nutter
 
Ruby3x3: How are we going to measure 3x
Ruby3x3: How are we going to measure 3xRuby3x3: How are we going to measure 3x
Ruby3x3: How are we going to measure 3x
Matthew Gaudet
 
Why scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisWhy scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with this
Ruslan Shevchenko
 
Practical PHP 5.3
Practical PHP 5.3Practical PHP 5.3
Practical PHP 5.3
Nate Abele
 
JavaScript in 2015
JavaScript in 2015JavaScript in 2015
JavaScript in 2015
Igor Laborie
 
JRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVMJRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVM
Charles Nutter
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
Hiroshi SHIBATA
 
PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...
PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...
PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...
Pôle Systematic Paris-Region
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScriptQiangning Hong
 
How to Begin to Develop Ruby Core
How to Begin to Develop Ruby CoreHow to Begin to Develop Ruby Core
How to Begin to Develop Ruby Core
Hiroshi SHIBATA
 
Joblib for cloud computing
Joblib for cloud computingJoblib for cloud computing
Joblib for cloud computing
Alexandre Abadie
 
Gemification plan of Standard Library on Ruby
Gemification plan of Standard Library on RubyGemification plan of Standard Library on Ruby
Gemification plan of Standard Library on Ruby
Hiroshi SHIBATA
 
The secret of programming language development and future
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and future
Hiroshi SHIBATA
 
Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016
Yuta Iwama
 
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMRLightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMRShinji Tanaka
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js frameworkBen Lin
 
Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017
Sunghyouk Bae
 
Kotlin @ Coupang Backed - JetBrains Day seoul 2018
Kotlin @ Coupang Backed - JetBrains Day seoul 2018Kotlin @ Coupang Backed - JetBrains Day seoul 2018
Kotlin @ Coupang Backed - JetBrains Day seoul 2018
Sunghyouk Bae
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
bobmcwhirter
 
The Year of JRuby - RubyC 2018
The Year of JRuby - RubyC 2018The Year of JRuby - RubyC 2018
The Year of JRuby - RubyC 2018
Charles Nutter
 

What's hot (20)

JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015JRuby 9000 - Taipei Ruby User's Group 2015
JRuby 9000 - Taipei Ruby User's Group 2015
 
Ruby3x3: How are we going to measure 3x
Ruby3x3: How are we going to measure 3xRuby3x3: How are we going to measure 3x
Ruby3x3: How are we going to measure 3x
 
Why scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisWhy scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with this
 
Practical PHP 5.3
Practical PHP 5.3Practical PHP 5.3
Practical PHP 5.3
 
JavaScript in 2015
JavaScript in 2015JavaScript in 2015
JavaScript in 2015
 
JRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVMJRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVM
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
 
PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...
PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...
PyParis2017 / Function-as-a-service - a pythonic perspective on severless com...
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript
 
How to Begin to Develop Ruby Core
How to Begin to Develop Ruby CoreHow to Begin to Develop Ruby Core
How to Begin to Develop Ruby Core
 
Joblib for cloud computing
Joblib for cloud computingJoblib for cloud computing
Joblib for cloud computing
 
Gemification plan of Standard Library on Ruby
Gemification plan of Standard Library on RubyGemification plan of Standard Library on Ruby
Gemification plan of Standard Library on Ruby
 
The secret of programming language development and future
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and future
 
Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016
 
Lightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMRLightweight wrapper for Hive on Amazon EMR
Lightweight wrapper for Hive on Amazon EMR
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
 
Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017Kotlin @ Coupang Backend 2017
Kotlin @ Coupang Backend 2017
 
Kotlin @ Coupang Backed - JetBrains Day seoul 2018
Kotlin @ Coupang Backed - JetBrains Day seoul 2018Kotlin @ Coupang Backed - JetBrains Day seoul 2018
Kotlin @ Coupang Backed - JetBrains Day seoul 2018
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
 
The Year of JRuby - RubyC 2018
The Year of JRuby - RubyC 2018The Year of JRuby - RubyC 2018
The Year of JRuby - RubyC 2018
 

Viewers also liked

The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015
craig lehmann
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby Usage
SATOSHI TAGOMORI
 
Ruby meets Go
Ruby meets GoRuby meets Go
Introduction to Meteor & React
Introduction to Meteor & ReactIntroduction to Meteor & React
Introduction to Meteor & React
Max Li
 
FizzBuzzではじめるテスト
FizzBuzzではじめるテストFizzBuzzではじめるテスト
FizzBuzzではじめるテスト
Masashi Shinbara
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container Era
Sadayuki Furuhashi
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
Sadayuki Furuhashi
 
Docker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころDocker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころ
健一 茂木
 
Fluentd at Bay Area Kubernetes Meetup
Fluentd at Bay Area Kubernetes MeetupFluentd at Bay Area Kubernetes Meetup
Fluentd at Bay Area Kubernetes Meetup
Sadayuki Furuhashi
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
健一 茂木
 
"fireap" - fast task runner on consul
"fireap" - fast task runner on consul"fireap" - fast task runner on consul
"fireap" - fast task runner on consul
IKEDA Kiyoshi
 
grifork - fast propagative task runner -
grifork - fast propagative task runner -grifork - fast propagative task runner -
grifork - fast propagative task runner -
IKEDA Kiyoshi
 
DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?
Sadayuki Furuhashi
 
Introduction to poloxy - proxy for alerting
Introduction to poloxy - proxy for alertingIntroduction to poloxy - proxy for alerting
Introduction to poloxy - proxy for alerting
IKEDA Kiyoshi
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
 
TRICK2015 results
TRICK2015 resultsTRICK2015 results
TRICK2015 results
mametter
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
 

Viewers also liked (17)

The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015
 
Data Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby UsageData Analytics Service Company and Its Ruby Usage
Data Analytics Service Company and Its Ruby Usage
 
Ruby meets Go
Ruby meets GoRuby meets Go
Ruby meets Go
 
Introduction to Meteor & React
Introduction to Meteor & ReactIntroduction to Meteor & React
Introduction to Meteor & React
 
FizzBuzzではじめるテスト
FizzBuzzではじめるテストFizzBuzzではじめるテスト
FizzBuzzではじめるテスト
 
Logging for Production Systems in The Container Era
Logging for Production Systems in The Container EraLogging for Production Systems in The Container Era
Logging for Production Systems in The Container Era
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 
Docker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころDocker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころ
 
Fluentd at Bay Area Kubernetes Meetup
Fluentd at Bay Area Kubernetes MeetupFluentd at Bay Area Kubernetes Meetup
Fluentd at Bay Area Kubernetes Meetup
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
 
"fireap" - fast task runner on consul
"fireap" - fast task runner on consul"fireap" - fast task runner on consul
"fireap" - fast task runner on consul
 
grifork - fast propagative task runner -
grifork - fast propagative task runner -grifork - fast propagative task runner -
grifork - fast propagative task runner -
 
DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?DigdagはなぜYAMLなのか?
DigdagはなぜYAMLなのか?
 
Introduction to poloxy - proxy for alerting
Introduction to poloxy - proxy for alertingIntroduction to poloxy - proxy for alerting
Introduction to poloxy - proxy for alerting
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
 
TRICK2015 results
TRICK2015 resultsTRICK2015 results
TRICK2015 results
 
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリットSails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
 

Similar to RubyKaigi2015 making robots-with-mruby

Introduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous AgentsIntroduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous Agents
Bryan Duggan
 
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기
NAVER D2
 
Basic Tutorial for Robotic Arm
Basic Tutorial for Robotic ArmBasic Tutorial for Robotic Arm
Basic Tutorial for Robotic Arm
Yu Wei Chen
 
ADT02 - Java 8 Lambdas and the Streaming API
ADT02 - Java 8 Lambdas and the Streaming APIADT02 - Java 8 Lambdas and the Streaming API
ADT02 - Java 8 Lambdas and the Streaming API
Michael Remijan
 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomy
Dongmin Yu
 
LLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptxLLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptx
Dr. Yasir Butt
 
Actor Concurrency
Actor ConcurrencyActor Concurrency
Actor Concurrency
Alex Miller
 
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupДоклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Badoo Development
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Michael Barker
 
Locks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerLocks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael Barker
JAX London
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applications
Paweł Żurowski
 
Douglas Crockford: Serversideness
Douglas Crockford: ServersidenessDouglas Crockford: Serversideness
Douglas Crockford: Serversideness
WebExpo
 
Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)
Stephen Chin
 
Java 8
Java 8Java 8
Pic18 f4520 and robotics
Pic18 f4520 and roboticsPic18 f4520 and robotics
Pic18 f4520 and roboticsSiddhant Chopra
 
Gordon morrison temporalengineering-delphi-v3
Gordon morrison temporalengineering-delphi-v3Gordon morrison temporalengineering-delphi-v3
Gordon morrison temporalengineering-delphi-v3
Gordon Morrison
 
Parallel Computing in R
Parallel Computing in RParallel Computing in R
Parallel Computing in R
mickey24
 
Memory Management with Java and C++
Memory Management with Java and C++Memory Management with Java and C++
Memory Management with Java and C++Mohammad Shaker
 
Using redux and angular 2 with meteor
Using redux and angular 2 with meteorUsing redux and angular 2 with meteor
Using redux and angular 2 with meteor
Ken Ono
 
Using redux and angular 2 with meteor
Using redux and angular 2 with meteorUsing redux and angular 2 with meteor
Using redux and angular 2 with meteor
Ken Ono
 

Similar to RubyKaigi2015 making robots-with-mruby (20)

Introduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous AgentsIntroduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous Agents
 
[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기[245] presto 내부구조 파헤치기
[245] presto 내부구조 파헤치기
 
Basic Tutorial for Robotic Arm
Basic Tutorial for Robotic ArmBasic Tutorial for Robotic Arm
Basic Tutorial for Robotic Arm
 
ADT02 - Java 8 Lambdas and the Streaming API
ADT02 - Java 8 Lambdas and the Streaming APIADT02 - Java 8 Lambdas and the Streaming API
ADT02 - Java 8 Lambdas and the Streaming API
 
Presto anatomy
Presto anatomyPresto anatomy
Presto anatomy
 
LLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptxLLaMA_Final The Meta LLM Presentation.pptx
LLaMA_Final The Meta LLM Presentation.pptx
 
Actor Concurrency
Actor ConcurrencyActor Concurrency
Actor Concurrency
 
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang MeetupДоклад Антона Поварова "Go in Badoo" с Golang Meetup
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!
 
Locks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerLocks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael Barker
 
Architecture for scalable Angular applications
Architecture for scalable Angular applicationsArchitecture for scalable Angular applications
Architecture for scalable Angular applications
 
Douglas Crockford: Serversideness
Douglas Crockford: ServersidenessDouglas Crockford: Serversideness
Douglas Crockford: Serversideness
 
Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)Raspberry Pi with Java (JJUG)
Raspberry Pi with Java (JJUG)
 
Java 8
Java 8Java 8
Java 8
 
Pic18 f4520 and robotics
Pic18 f4520 and roboticsPic18 f4520 and robotics
Pic18 f4520 and robotics
 
Gordon morrison temporalengineering-delphi-v3
Gordon morrison temporalengineering-delphi-v3Gordon morrison temporalengineering-delphi-v3
Gordon morrison temporalengineering-delphi-v3
 
Parallel Computing in R
Parallel Computing in RParallel Computing in R
Parallel Computing in R
 
Memory Management with Java and C++
Memory Management with Java and C++Memory Management with Java and C++
Memory Management with Java and C++
 
Using redux and angular 2 with meteor
Using redux and angular 2 with meteorUsing redux and angular 2 with meteor
Using redux and angular 2 with meteor
 
Using redux and angular 2 with meteor
Using redux and angular 2 with meteorUsing redux and angular 2 with meteor
Using redux and angular 2 with meteor
 

More from yamanekko

Model2code mruby 2018
Model2code mruby 2018Model2code mruby 2018
Model2code mruby 2018
yamanekko
 
Ev3rt and mruby-ev3rt 2018ver
Ev3rt and mruby-ev3rt 2018verEv3rt and mruby-ev3rt 2018ver
Ev3rt and mruby-ev3rt 2018ver
yamanekko
 
mruby can be more lightweight
mruby can be more lightweightmruby can be more lightweight
mruby can be more lightweight
yamanekko
 
Rubykaigi2016 High Tech Seat in mruby
Rubykaigi2016 High Tech Seat in mrubyRubykaigi2016 High Tech Seat in mruby
Rubykaigi2016 High Tech Seat in mruby
yamanekko
 
mrubyでETロボコンに出よう
mrubyでETロボコンに出ようmrubyでETロボコンに出よう
mrubyでETロボコンに出よう
yamanekko
 
Writing mruby Debugger
Writing mruby DebuggerWriting mruby Debugger
Writing mruby Debugger
yamanekko
 
How to debug mruby (rubyconftw2014)
How to debug mruby (rubyconftw2014)How to debug mruby (rubyconftw2014)
How to debug mruby (rubyconftw2014)
yamanekko
 
ルネサスナイト
ルネサスナイトルネサスナイト
ルネサスナイトyamanekko
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05yamanekko
 
How to control physical devices with mruby
How to control physical devices with mrubyHow to control physical devices with mruby
How to control physical devices with mruby
yamanekko
 
使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發yamanekko
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
yamanekko
 

More from yamanekko (12)

Model2code mruby 2018
Model2code mruby 2018Model2code mruby 2018
Model2code mruby 2018
 
Ev3rt and mruby-ev3rt 2018ver
Ev3rt and mruby-ev3rt 2018verEv3rt and mruby-ev3rt 2018ver
Ev3rt and mruby-ev3rt 2018ver
 
mruby can be more lightweight
mruby can be more lightweightmruby can be more lightweight
mruby can be more lightweight
 
Rubykaigi2016 High Tech Seat in mruby
Rubykaigi2016 High Tech Seat in mrubyRubykaigi2016 High Tech Seat in mruby
Rubykaigi2016 High Tech Seat in mruby
 
mrubyでETロボコンに出よう
mrubyでETロボコンに出ようmrubyでETロボコンに出よう
mrubyでETロボコンに出よう
 
Writing mruby Debugger
Writing mruby DebuggerWriting mruby Debugger
Writing mruby Debugger
 
How to debug mruby (rubyconftw2014)
How to debug mruby (rubyconftw2014)How to debug mruby (rubyconftw2014)
How to debug mruby (rubyconftw2014)
 
ルネサスナイト
ルネサスナイトルネサスナイト
ルネサスナイト
 
Tokyurubykaigi05
Tokyurubykaigi05Tokyurubykaigi05
Tokyurubykaigi05
 
How to control physical devices with mruby
How to control physical devices with mrubyHow to control physical devices with mruby
How to control physical devices with mruby
 
使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發使用Eclipse快樂的mruby開發
使用Eclipse快樂的mruby開發
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
 

Recently uploaded

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 

Recently uploaded (20)

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 

RubyKaigi2015 making robots-with-mruby