Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Naoki Iwata
2,590 views
KotlinでROSノードを書いてみた
2015/10/04 ROS勉強会
Software
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Downloaded 14 times
1
/ 39
2
/ 39
3
/ 39
4
/ 39
5
/ 39
6
/ 39
7
/ 39
8
/ 39
9
/ 39
10
/ 39
11
/ 39
12
/ 39
13
/ 39
14
/ 39
15
/ 39
16
/ 39
17
/ 39
18
/ 39
19
/ 39
20
/ 39
21
/ 39
22
/ 39
23
/ 39
24
/ 39
25
/ 39
26
/ 39
27
/ 39
28
/ 39
29
/ 39
30
/ 39
31
/ 39
32
/ 39
33
/ 39
34
/ 39
35
/ 39
36
/ 39
37
/ 39
38
/ 39
39
/ 39
More Related Content
PPTX
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
by
ROBOTIS Japan
PPTX
関東コンピュータビジョン勉強会
by
nonane
PDF
Cartographer を用いた 3D SLAM
by
Yoshitaka HARA
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
by
SSII
PDF
四脚ロボットによるつくばチャレンジへの取り組み
by
kiyoshiiriemon
PDF
つくばチャレンジ2019技術調査報告
by
Yoshitaka HARA
PDF
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
by
SSII
PDF
SSII2018TS: 3D物体検出とロボットビジョンへの応用
by
SSII
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
by
ROBOTIS Japan
関東コンピュータビジョン勉強会
by
nonane
Cartographer を用いた 3D SLAM
by
Yoshitaka HARA
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
by
SSII
四脚ロボットによるつくばチャレンジへの取り組み
by
kiyoshiiriemon
つくばチャレンジ2019技術調査報告
by
Yoshitaka HARA
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
by
SSII
SSII2018TS: 3D物体検出とロボットビジョンへの応用
by
SSII
What's hot
PDF
Visual slam
by
Takuya Minagawa
PPTX
CEDEC2017 VR180 3D live streaming camera at "SHOWROOM" case
by
Takeyuki Ogura
PDF
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
by
Kitsukawa Yuki
PDF
ORB-SLAMを動かしてみた
by
Takuya Minagawa
PDF
Cartographer と Autoware を用いた自律走行
by
Yoshitaka HARA
PDF
オープンソース SLAM の分類
by
Yoshitaka HARA
PDF
WindowsではじめるROSプログラミング
by
Takayuki Goto
PDF
20190307 visualslam summary
by
Takuya Minagawa
PDF
20190825 vins mono
by
Takuya Minagawa
PDF
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
by
Masaya Kaneko
PPTX
ORB-SLAMの手法解説
by
Masaya Kaneko
PDF
学ロボの制御
by
Kotaro Yoshimoto
PDF
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
by
MobileRoboticsResear
PPTX
Depth Estimation論文紹介
by
Keio Robotics Association
PDF
LiDAR点群とSfM点群との位置合わせ
by
Takuya Minagawa
PDF
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
by
Tier_IV
PDF
ROS を用いた自律移動ロボットのシステム構築
by
Yoshitaka HARA
PPTX
ラドン変換を用いた消失点検出による射影歪み補正の考察
by
hasegawamakoto
PPTX
Structure from Motion
by
Ryutaro Yamauchi
PDF
20090924 姿勢推定と回転行列
by
Toru Tamaki
Visual slam
by
Takuya Minagawa
CEDEC2017 VR180 3D live streaming camera at "SHOWROOM" case
by
Takeyuki Ogura
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
by
Kitsukawa Yuki
ORB-SLAMを動かしてみた
by
Takuya Minagawa
Cartographer と Autoware を用いた自律走行
by
Yoshitaka HARA
オープンソース SLAM の分類
by
Yoshitaka HARA
WindowsではじめるROSプログラミング
by
Takayuki Goto
20190307 visualslam summary
by
Takuya Minagawa
20190825 vins mono
by
Takuya Minagawa
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
by
Masaya Kaneko
ORB-SLAMの手法解説
by
Masaya Kaneko
学ロボの制御
by
Kotaro Yoshimoto
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
by
MobileRoboticsResear
Depth Estimation論文紹介
by
Keio Robotics Association
LiDAR点群とSfM点群との位置合わせ
by
Takuya Minagawa
Unity x 自動運転シミュレーション、自動運転におけるGame Engineの役割
by
Tier_IV
ROS を用いた自律移動ロボットのシステム構築
by
Yoshitaka HARA
ラドン変換を用いた消失点検出による射影歪み補正の考察
by
hasegawamakoto
Structure from Motion
by
Ryutaro Yamauchi
20090924 姿勢推定と回転行列
by
Toru Tamaki
Viewers also liked
PDF
生活支援ロボットMini@ROS勉強会
by
Kensei Demura
PDF
Pepper meets ROS
by
Kenta Yonekura
ODP
EusLispでロボットプログラミング
by
Hiroaki Yaguchi
PDF
ROS2.0時代に備えたc++11/14
by
Takashi Ogura
PDF
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
by
Ryota Murohoshi
PDF
SIerアーキテクト視点でみたKotlinの紹介
by
Shinichi Kozake
PPTX
Dronecodeの概要とROSの対応について
by
博宣 今村
ODP
Hacking Robotics(English Version)
by
Kensei Demura
PDF
kotlinについて
by
隆史 川中
PPTX
Kotlin
by
Shumpei Hozumi
PDF
Kotlinで快適Android開発 #W8lt
by
Junpei Matsuda
PDF
もう一度Kotlinの話をしよう #ndsmeetup4
by
Yukiya Nakagawa
PDF
Kotlinあるある言いたい
by
yy yank
PDF
Kotlinでマッチョする話
by
Shinobu Okano
PDF
UnityでC#6.0が使える未来がそろそろ来そう!
by
Ryota Murohoshi
PDF
Kotlin: Why Do You Care?
by
intelliyole
PDF
普段C#を使っている僕から見たKotlin
by
Ryota Murohoshi
PDF
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
by
akio19937
PDF
Kotlinソースコード探訪
by
yy yank
PDF
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
生活支援ロボットMini@ROS勉強会
by
Kensei Demura
Pepper meets ROS
by
Kenta Yonekura
EusLispでロボットプログラミング
by
Hiroaki Yaguchi
ROS2.0時代に備えたc++11/14
by
Takashi Ogura
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
by
Ryota Murohoshi
SIerアーキテクト視点でみたKotlinの紹介
by
Shinichi Kozake
Dronecodeの概要とROSの対応について
by
博宣 今村
Hacking Robotics(English Version)
by
Kensei Demura
kotlinについて
by
隆史 川中
Kotlin
by
Shumpei Hozumi
Kotlinで快適Android開発 #W8lt
by
Junpei Matsuda
もう一度Kotlinの話をしよう #ndsmeetup4
by
Yukiya Nakagawa
Kotlinあるある言いたい
by
yy yank
Kotlinでマッチョする話
by
Shinobu Okano
UnityでC#6.0が使える未来がそろそろ来そう!
by
Ryota Murohoshi
Kotlin: Why Do You Care?
by
intelliyole
普段C#を使っている僕から見たKotlin
by
Ryota Murohoshi
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
by
akio19937
Kotlinソースコード探訪
by
yy yank
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
Similar to KotlinでROSノードを書いてみた
PDF
Rubyistのためのkotlin紹介
by
豊明 尾古
PDF
Kotlinの紹介
by
豊明 尾古
PPTX
Java で書かれた Android アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
PPTX
Java で書かれたAndroid アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
PDF
Kotlinことはじめ -まずは触って動かしてみよう-
by
CASAREAL, Inc.
PDF
Kotlinの紹介
by
Taro Nagasawa
PDF
20170618 Google I/O報告会in福岡
by
mokelab
PPTX
Kotlin が公式サポートになったので Kotlin の話
by
Kenichi Tatsuhama
PDF
KotlinJSって正直どうなん
by
Hiroshi Kikuchi
PPTX
サーバサイド Kotlin
by
Hiroki Ohtani
PDF
Potato03 KotlinでAndroidアプリ開発(後編)
by
Toshihiro Yagi
PDF
Kotlin handson
by
Ryuto Yasugi
PDF
NDS36 Kotlin Cute
by
Yukiya Nakagawa
PDF
Kotlinのwebフレームワーク探訪
by
豊明 尾古
PDF
KotlinでWebアプリ開発
by
Ryo Nakagawa
PPTX
Server Side Kotlin
by
yy yank
PDF
Kotlinにお触り
by
Shinobu Okano
PPTX
Spring boot劇的ビフォーアフター
by
orekyuu
PDF
KotlinAndroidLibを使ってみた
by
豊明 尾古
PDF
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
by
Fuminobu Takeyama
Rubyistのためのkotlin紹介
by
豊明 尾古
Kotlinの紹介
by
豊明 尾古
Java で書かれた Android アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
Java で書かれたAndroid アプリに Kotlin を適用させていく
by
Kenichi Tatsuhama
Kotlinことはじめ -まずは触って動かしてみよう-
by
CASAREAL, Inc.
Kotlinの紹介
by
Taro Nagasawa
20170618 Google I/O報告会in福岡
by
mokelab
Kotlin が公式サポートになったので Kotlin の話
by
Kenichi Tatsuhama
KotlinJSって正直どうなん
by
Hiroshi Kikuchi
サーバサイド Kotlin
by
Hiroki Ohtani
Potato03 KotlinでAndroidアプリ開発(後編)
by
Toshihiro Yagi
Kotlin handson
by
Ryuto Yasugi
NDS36 Kotlin Cute
by
Yukiya Nakagawa
Kotlinのwebフレームワーク探訪
by
豊明 尾古
KotlinでWebアプリ開発
by
Ryo Nakagawa
Server Side Kotlin
by
yy yank
Kotlinにお触り
by
Shinobu Okano
Spring boot劇的ビフォーアフター
by
orekyuu
KotlinAndroidLibを使ってみた
by
豊明 尾古
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
by
Fuminobu Takeyama
KotlinでROSノードを書いてみた
1.
KotlinでROSノードを 書いてみた 2015/10/04 ROS勉強会 @iwata_n
2.
@iwata_n いわたん ros歴2ヶ月くらい - ROS本を読んだぐらい ロードバイクとボルダリング
3.
Message このノードをKotlinで作った!
4.
今日伝えたい事 ROSノードをKotlinで書く方法
5.
What s Kotlin? Why
Kotlin?
6.
Kotlinを知ってる人!
7.
まぁそうなりますよね
8.
What's Kotlin? Javaと同じ仮想マシン上で動くけど、 Javaより安全 Javaより簡潔 Javaと同等に速い らしい あとAndroidのアプリも書けるらしい
9.
Kotlin言語は、ジェットブレインズ社の研究所のひとつ、ロシア連邦 レニングラード州都のサンクトペテルブルクで生まれた。 ジェットブレインズ社は Java、Ruby、Python などのプログラミン グ言語による開発環境などを開発して販売してきた。Kotlin言語は同 社が経験を活かしてJava言語をもっと簡潔、安全になるように改良し た産業利用向け汎用言語として、2011年7月20日に発表された。 オペーレーティング・システムによらずJava仮想マシン上で動く。 Java言語が書かれたプログラムと同じほど速くコンパイルされ同じほ ど速く動作するとしている。 Java言語に望まれている機能であっても互換性を保つために実現でき ていない機能や、将来のJava言語の仕様で実現が予定されている機能 から、有用と思う機能を採用した。また、Java仮想マシンで動く点で 似ているスクリプト言語
Groovy や関数型プログラミング言語色の強 い Scala から、機能や簡易記法(糖衣構文)を採用した。 2012年2月14日、Kotlin はApacheライセンス バージョン2.0に基づ 詳しくはWebで!
10.
KotlinがJavaと同じ仮想マシン上で動く ↓ それならRosJavaで動くんじゃね? ↓ じゃぁ確かめよう Why Kotlin?
11.
技術的な話
12.
手順 1. RosJavaを入れる 2. RosJavaのプロジェクトを作る 3.
build.gradleにkotlin関係のコードを追記する 4. kotlinでコードを書く 5. ビルド
13.
RosJavaのインストール http://qiita.com/iwata-n@github/items/ 989bed3acc21ffb28521
14.
$ mkdir -p
/ros/myjava/src $ cd /ros/myjava/src $ source /opt/ros/indigo/setup.bash $ catkin_init_workspace $ cd .. $ catkin_make catkinのワークスペース作成 ROS本のP42∼の作業内容と同じです
15.
パッケージの作成 $ cd /ros/myjava/src $
catkin_create_rosjava_pkg <Package> ROS本のP44∼の作業に相当します。 ただ、rosjavaでパッケージを作成するので、 コマンドが違います。 <Package>はお好きな名前で。
16.
パッケージの作成 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を実行結果
17.
プロジェクトを作成 $ 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ファイル等の必要なファイルを生成してくれる
18.
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() + """); } }); } }
19.
ビルド $ 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で直接ビルドした方が速い
20.
実行 $ cd src/<Package>/sample/build/install/sample/bin $
./sample com.github.rosjava.kotlin.sample.Listener
21.
rosjavaは ここまでで手順でOK
22.
Kotlin化
23.
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みたいなもの (他にも色々機能はありますが)
24.
追加その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' } }
25.
追加その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
26.
この2つを追記すれば Kotlinで書ける
27.
kotlinでコードを書く • IntelliJ IDEAを使うとプラグインでJava→Kotlinが 簡単に出来る •
IntelliJはPythonでも便利なIDEなのでオススメ • Javaのファイルを開いて自動変換するだけ • http://kotlinlang.org/docs/tutorials/kotlin-android.html
28.
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
29.
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
30.
ビルド $ 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と全く同じ。
31.
実行 これまたRosJavaと全く同じ。 $ cd src/<Package>/sample/build/install/sample/bin $
./sample com.github.rosjava.kotlin.sample.Listener
32.
手順おさらい 1. RosJavaを入れる 2. プロジェクトを作る 3.
build.gradleにkotlin関係のコードを追記する 4. kotlinでコードを書く 5. ビルド RosJavaと一緒 RosJavaと一緒
33.
Kotlin化 • コードは少し簡潔になった • Null安全で実行中にぬるぽで突然死が無い •
ノードの突然死回避→普通のExceptionでは死ぬ • IntelliJ IDEAとROSの相性がいい事に気がつく
34.
But…
35.
But… • Pythonと比べると実行までに時間がかかる • サンプルのビルドに11秒ほど •
ハッカソンなど時間が無い時にはストレスに
36.
まとめ
37.
まとめ 👀Kotlinでのノード実装の方法を紹介 📗RosJavaでもROS本の知識が生きる 😖短期の開発で静的型言語は大変 😃型チェックとNullセーフは安心
38.
おしまい
39.
リンク • 写真素材ぱくたそ • 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
Download