SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
KotlinでROSノードを
書いてみた
2015/10/04 ROS勉強会
@iwata_n
@iwata_n いわたん
ros歴2ヶ月くらい
- ROS本を読んだぐらい
ロードバイクとボルダリング
Message
このノードをKotlinで作った!
今日伝えたい事
ROSノードをKotlinで書く方法
What s Kotlin?
Why Kotlin?
Kotlinを知ってる人!
まぁそうなりますよね
What's Kotlin?
Javaと同じ仮想マシン上で動くけど、
Javaより安全
Javaより簡潔
Javaと同等に速い
らしい
あとAndroidのアプリも書けるらしい
Kotlin言語は、ジェットブレインズ社の研究所のひとつ、ロシア連邦
レニングラード州都のサンクトペテルブルクで生まれた。
ジェットブレインズ社は Java、Ruby、Python などのプログラミン
グ言語による開発環境などを開発して販売してきた。Kotlin言語は同
社が経験を活かしてJava言語をもっと簡潔、安全になるように改良し
た産業利用向け汎用言語として、2011年7月20日に発表された。
オペーレーティング・システムによらずJava仮想マシン上で動く。
Java言語が書かれたプログラムと同じほど速くコンパイルされ同じほ
ど速く動作するとしている。
Java言語に望まれている機能であっても互換性を保つために実現でき
ていない機能や、将来のJava言語の仕様で実現が予定されている機能
から、有用と思う機能を採用した。また、Java仮想マシンで動く点で
似ているスクリプト言語 Groovy や関数型プログラミング言語色の強
い Scala から、機能や簡易記法(糖衣構文)を採用した。
2012年2月14日、Kotlin はApacheライセンス バージョン2.0に基づ
詳しくはWebで!
KotlinがJavaと同じ仮想マシン上で動く
↓
それならRosJavaで動くんじゃね?
↓
じゃぁ確かめよう
Why Kotlin?
技術的な話
手順
1. RosJavaを入れる
2. RosJavaのプロジェクトを作る
3. build.gradleにkotlin関係のコードを追記する
4. kotlinでコードを書く
5. ビルド
RosJavaのインストール
http://qiita.com/iwata-n@github/items/
989bed3acc21ffb28521
$ mkdir -p /ros/myjava/src
$ cd /ros/myjava/src
$ source /opt/ros/indigo/setup.bash
$ catkin_init_workspace
$ cd ..
$ catkin_make
catkinのワークスペース作成
ROS本のP42∼の作業内容と同じです
パッケージの作成
$ cd /ros/myjava/src
$ catkin_create_rosjava_pkg <Package>
ROS本のP44∼の作業に相当します。
ただ、rosjavaでパッケージを作成するので、
コマンドが違います。
<Package>はお好きな名前で。
パッケージの作成
Created repo file: /home/ros/ros/myjava/src/kotlin/settings.gradle
Created repo file: /home/ros/ros/myjava/src/kotlin/build.gradle
Created repo file: /home/ros/ros/myjava/src/kotlin/CMakeLists.txt
Created repo file: /home/ros/ros/myjava/src/kotlin/package.xml
Creating gradle wrapper: /opt/ros/indigo/lib/python2.7/dist-packages/
rosjava_build_tools/gradle/gradlew -p /home/ros/ros/myjava/src/kotlin
wrapper
:wrapper
BUILD SUCCESSFUL
Total time: 7.033 secs
catkin_create_rosjava_pkgを実行結果
プロジェクトを作成
$ cd /ros/myjava/src/kotlin/
$ catkin_create_rosjava_project sample
Creating rosjava project
Name : sample
File : build.gradle
File : settings.gradle
File : Talker.java
File : Listener.java
File : CMakeLists.txt (gradle task update)
gradleやjavaファイル等の必要なファイルを生成してくれる
package com.github.rosjava.kotlin.sample;
/* 略 */
public class Listener extends AbstractNodeMain {
@Override public GraphName getDefaultNodeName() {
return GraphName.of("rosjava/listener");
}
@Override public void onStart(ConnectedNode connectedNode) {
final Log log = connectedNode.getLog();
Subscriber<std_msgs.String> subscriber =
connectedNode.newSubscriber("chatter", std_msgs.String._TYPE);
subscriber.addMessageListener(new MessageListener<std_msgs.String>() {
@Override public void onNewMessage(std_msgs.String message) {
log.info("I heard: "" + message.getData() + """);
}
});
}
}
ビルド
$ cd /ros/myjava
$ catkin_make
Base path: /home/ros/ros/myjava
# ... 省略
#### Running command: "make -j8 -l8" in "/home/ros/ros/myjava/build"
####
Scanning dependencies of target gradle-iwatan
[100%] Gradling tasks for kotlin
Uploading: com/github/rosjava/kotlin/sample/0.1.0/sample-0.1.0.jar to
repository remote at file:/home/ros/ros/myjava/devel/share/maven
Transferring 4K from remote
Uploaded 4K
[100%] Built target gradle-kotlin
catkinでビルドが出来るが、gradleで直接ビルドした方が速い
実行
$ cd src/<Package>/sample/build/install/sample/bin
$ ./sample com.github.rosjava.kotlin.sample.Listener
rosjavaは
ここまでで手順でOK
Kotlin化
build.gradleを編集
apply plugin: 'application'
mainClassName = 'org.ros.RosRun'
dependencies {
compile 'org.ros.rosjava_core:rosjava:[0.2,0.3)'
}
roskotlin/src/<Package>/sample/build.gradle
gradleとはざっくり言うとMakefileみたいなもの
(他にも色々機能はありますが)
追加その1
apply plugin: kotlin"
buildscript {
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
}
}
追加その2
sourceSets {
deploy
}
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
dependencies {
compile 'com.google.guava:guava:12.0'
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.1-SNAPSHOT'
deployCompile 'com.google.guava:guava:12.0'
testCompile 'org.testng:testng:6.8'
}
test.testClassesDir = project.tasks.compileTestKotlin.destinationDir
この2つを追記すれば
Kotlinで書ける
kotlinでコードを書く
• IntelliJ IDEAを使うとプラグインでJava→Kotlinが
簡単に出来る
• IntelliJはPythonでも便利なIDEなのでオススメ
• Javaのファイルを開いて自動変換するだけ
• http://kotlinlang.org/docs/tutorials/kotlin-android.html
package com.github.rosjava.kotlin.sample;
/* 略 */
public class Listener extends AbstractNodeMain {
@Override
public GraphName getDefaultNodeName() {
return GraphName.of("rosjava/listener");
}
@Override
public void onStart(ConnectedNode connectedNode) {
final Log log = connectedNode.getLog();
Subscriber<std_msgs.String> subscriber =
connectedNode.newSubscriber("chatter", std_msgs.String._TYPE);
subscriber.addMessageListener(new MessageListener<std_msgs.String>() {
@Override
public void onNewMessage(std_msgs.String message) {
log.info("I heard: "" + message.getData() + """);
}
});
Java
package com.github.rosjava.kotlin.sample
/* 略 */
public class Listener() : AbstractNodeMain() {
override public fun getDefaultNodeName(): GraphName = GraphName.of("rosjava/listener")
override public fun onStart(connectedNode: ConnectedNode) {
val log = connectedNode.getLog()
val subscriber =
connectedNode.newSubscriber<std_msgs.String>("chatter", std_msgs.String._TYPE)
subscriber.addMessageListener { message ->
log.info("Kotlin heard: "" + message.getData() + """)
}
}
}
Kotlin
ビルド
$ cd /ros/myjava
$ catkin_make
Base path: /home/ros/ros/myjava
# ... 省略
#### Running command: "make -j8 -l8" in "/home/ros/ros/myjava/build"
####
Scanning dependencies of target gradle-kotlin
[100%] Gradling tasks for kotlin
Uploading: com/github/rosjava/kotlin/sample/0.1.0/sample-0.1.0.jar to
repository remote at file:/home/ros/ros/myjava/devel/share/maven
Transferring 4K from remote
Uploaded 4K
[100%] Built target gradle-kotlin
RosJavaと全く同じ。
実行
これまたRosJavaと全く同じ。
$ cd src/<Package>/sample/build/install/sample/bin
$ ./sample com.github.rosjava.kotlin.sample.Listener
手順おさらい
1. RosJavaを入れる
2. プロジェクトを作る
3. build.gradleにkotlin関係のコードを追記する
4. kotlinでコードを書く
5. ビルド
RosJavaと一緒
RosJavaと一緒
Kotlin化
• コードは少し簡潔になった
• Null安全で実行中にぬるぽで突然死が無い
• ノードの突然死回避→普通のExceptionでは死ぬ
• IntelliJ IDEAとROSの相性がいい事に気がつく
But…
But…
• Pythonと比べると実行までに時間がかかる
• サンプルのビルドに11秒ほど
• ハッカソンなど時間が無い時にはストレスに
まとめ
まとめ
👀Kotlinでのノード実装の方法を紹介
📗RosJavaでもROS本の知識が生きる
😖短期の開発で静的型言語は大変
😃型チェックとNullセーフは安心
おしまい
リンク
• 写真素材ぱくたそ
• https://www.pakutaso.com
• RosJavaを入れた記録
• http://qiita.com/iwata-n@github/items/989bed3acc21ffb28521
• KotlinでROSのノードを書く
• http://qiita.com/iwata-n@github/items/30eefa47326fb5b0ef77
• 今日のコード+αのGithub
• https://github.com/iwata-n/roskotlin
• KotlinのGithub
• https://github.com/JetBrains/kotlin-examples/blob/master/
gradle/hello-world/build.gradle

Mais conteúdo relacionado

Mais procurados

120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejsTakayoshi Tanaka
 
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsNaruhiko Ogasawara
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwellsinsoku listy
 
LibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみたLibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみたTomofumi Yagi
 
LibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドするLibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドするTomofumi Yagi
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くTetsuyuki Kobayashi
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」Taisuke Inoue
 
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImageNaruhiko Ogasawara
 
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiPHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiTakhisa Hirokawa
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2Hideki Takase
 
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみたレビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみたTakhisa Hirokawa
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーションakio19937
 
Web socket and gRPC
Web socket and gRPCWeb socket and gRPC
Web socket and gRPCTIS Inc
 
GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回NaohiroHamada
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料slankdev
 
LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guideslankdev
 

Mais procurados (20)

120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs120418 tokyo node5_lin_qonnodejs
120418 tokyo node5_lin_qonnodejs
 
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
Frank-afcproxy
Frank-afcproxyFrank-afcproxy
Frank-afcproxy
 
Spekではじめるユニットテスト
SpekではじめるユニットテストSpekではじめるユニットテスト
Spekではじめるユニットテスト
 
LibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみたLibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみた
 
LibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドするLibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドする
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
 
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiPHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2
 
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみたレビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
 
Web socket and gRPC
Web socket and gRPCWeb socket and gRPC
Web socket and gRPC
 
GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
 
LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guide
 

Destaque

生活支援ロボットMini@ROS勉強会
生活支援ロボットMini@ROS勉強会生活支援ロボットMini@ROS勉強会
生活支援ロボットMini@ROS勉強会Kensei Demura
 
EusLispでロボットプログラミング
EusLispでロボットプログラミングEusLispでロボットプログラミング
EusLispでロボットプログラミングHiroaki Yaguchi
 
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数Ryota Murohoshi
 
SIerアーキテクト視点でみたKotlinの紹介
SIerアーキテクト視点でみたKotlinの紹介SIerアーキテクト視点でみたKotlinの紹介
SIerアーキテクト視点でみたKotlinの紹介Shinichi Kozake
 
Dronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応についてDronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応について博宣 今村
 
Hacking Robotics(English Version)
Hacking Robotics(English Version)Hacking Robotics(English Version)
Hacking Robotics(English Version)Kensei Demura
 
Kotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8ltKotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8ltJunpei Matsuda
 
もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4Yukiya Nakagawa
 
Kotlinあるある言いたい
Kotlinあるある言いたいKotlinあるある言いたい
Kotlinあるある言いたいyy yank
 
Kotlinでマッチョする話
Kotlinでマッチョする話Kotlinでマッチョする話
Kotlinでマッチョする話Shinobu Okano
 
UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!Ryota Murohoshi
 
Kotlin: Why Do You Care?
Kotlin: Why Do You Care?Kotlin: Why Do You Care?
Kotlin: Why Do You Care?intelliyole
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlinRyota Murohoshi
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪yy yank
 
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Shinobu Okano
 

Destaque (18)

生活支援ロボットMini@ROS勉強会
生活支援ロボットMini@ROS勉強会生活支援ロボットMini@ROS勉強会
生活支援ロボットMini@ROS勉強会
 
Pepper meets ROS
Pepper meets ROSPepper meets ROS
Pepper meets ROS
 
EusLispでロボットプログラミング
EusLispでロボットプログラミングEusLispでロボットプログラミング
EusLispでロボットプログラミング
 
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
 
SIerアーキテクト視点でみたKotlinの紹介
SIerアーキテクト視点でみたKotlinの紹介SIerアーキテクト視点でみたKotlinの紹介
SIerアーキテクト視点でみたKotlinの紹介
 
Dronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応についてDronecodeの概要とROSの対応について
Dronecodeの概要とROSの対応について
 
Hacking Robotics(English Version)
Hacking Robotics(English Version)Hacking Robotics(English Version)
Hacking Robotics(English Version)
 
kotlinについて
kotlinについてkotlinについて
kotlinについて
 
Kotlin
KotlinKotlin
Kotlin
 
Kotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8ltKotlinで快適Android開発 #W8lt
Kotlinで快適Android開発 #W8lt
 
もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4もう一度Kotlinの話をしよう #ndsmeetup4
もう一度Kotlinの話をしよう #ndsmeetup4
 
Kotlinあるある言いたい
Kotlinあるある言いたいKotlinあるある言いたい
Kotlinあるある言いたい
 
Kotlinでマッチョする話
Kotlinでマッチョする話Kotlinでマッチョする話
Kotlinでマッチョする話
 
UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!
 
Kotlin: Why Do You Care?
Kotlin: Why Do You Care?Kotlin: Why Do You Care?
Kotlin: Why Do You Care?
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
 
Kotlinソースコード探訪
Kotlinソースコード探訪Kotlinソースコード探訪
Kotlinソースコード探訪
 
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
 

Semelhante a KotlinでROSノードを書いてみた

Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪豊明 尾古
 
IntelliJ IDEAとKotlinで作るSpring 5アプリケーション
IntelliJ IDEAとKotlinで作るSpring 5アプリケーションIntelliJ IDEAとKotlinで作るSpring 5アプリケーション
IntelliJ IDEAとKotlinで作るSpring 5アプリケーションCASAREAL, Inc.
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradleNobuhiro Sue
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsYoshio Terada
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようMidori Oge
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発Kota Mizushima
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLINE Corporation
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Microsoft Corporation
 
Kotlinことはじめ -まずは触って動かしてみよう-
Kotlinことはじめ  -まずは触って動かしてみよう-Kotlinことはじめ  -まずは触って動かしてみよう-
Kotlinことはじめ -まずは触って動かしてみよう-CASAREAL, Inc.
 
All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...Kazuhiro Sera
 
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudクラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudKazuki Aranami
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~Kazuya Wada
 

Semelhante a KotlinでROSノードを書いてみた (20)

Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪Kotlinのwebフレームワーク探訪
Kotlinのwebフレームワーク探訪
 
IntelliJ IDEAとKotlinで作るSpring 5アプリケーション
IntelliJ IDEAとKotlinで作るSpring 5アプリケーションIntelliJ IDEAとKotlinで作るSpring 5アプリケーション
IntelliJ IDEAとKotlinで作るSpring 5アプリケーション
 
Gws 20120521 gradle
Gws 20120521 gradleGws 20120521 gradle
Gws 20120521 gradle
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
Introduction of Rhodes
Introduction of RhodesIntroduction of Rhodes
Introduction of Rhodes
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみようNTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Line Creators Studio Android With Kotlin
Line Creators Studio Android With KotlinLine Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
 
Kotlinことはじめ -まずは触って動かしてみよう-
Kotlinことはじめ  -まずは触って動かしてみよう-Kotlinことはじめ  -まずは触って動かしてみよう-
Kotlinことはじめ -まずは触って動かしてみよう-
 
All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...All I learned while working on a Scala OSS project for over six years #ScalaM...
All I learned while working on a Scala OSS project for over six years #ScalaM...
 
Driverについて
DriverについてDriverについて
Driverについて
 
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloudクラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloud
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 

KotlinでROSノードを書いてみた