Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ROS 2はじめました
Search
Yutaka Kondo
May 20, 2017
Programming
10k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ROS 2はじめました
ROS Japan UG #10
https://rosjp.connpass.com/event/55125/
の発表資料です。ROS 2とDockerを絡めた話をしました。
Yutaka Kondo
May 20, 2017
More Decks by Yutaka Kondo
See All by Yutaka Kondo
研究開発と製品開発、両利きのロボティクス
youtalk
2
770
家庭用自律移動ロボット「カチャカ」の開発者API公開と ROS 2インターフェイス実装
youtalk
2
1.1k
ros2_control for ROBOTIS Dynamixel: dynamixel_control
youtalk
1
560
ROBOTIS Dynamixelのためのros2_control実装 dynamixel_controlのその後
youtalk
2
680
Build Your Own #ROS2 Robot from Scratch ver. 2
youtalk
1
1.8k
ROBOTIS DynamixelのためのROS 2 Control実装 dynamixel_control
youtalk
1
4.5k
DynamixelサーボのためのROS 2 Control実装とOpenMANIPULATOR-Xへの参照実装
youtalk
0
4.6k
[ROS World 2020参加報告会] Navigation2: The Next Generation Navigation System
youtalk
0
2k
ROSCon JP 2019講習会 ROS2の移動ロボットへの応用
youtalk
0
740
Other Decks in Programming
See All in Programming
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
250
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
230
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
170
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
190
プロポーザルを書いてもらう
pvcresin
0
210
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
480
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
140
5分で問診!Composer セキュリティ健康診断
codmoninc
0
870
What's New in Android 2026
veronikapj
0
250
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
470
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
300
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.5k
Featured
See All Featured
Side Projects
sachag
455
43k
Designing for Timeless Needs
cassininazir
1
430
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Code Review Best Practice
trishagee
74
20k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Leo the Paperboy
mayatellez
8
2.1k
So, you think you're a good person
axbom
PRO
2
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Transcript
304͡Ί·ͨ͠ ۙ౻๛ IUUQSPTZPVUBMLKQ !ZPVUBML 304+BQBO6( ษڧձ
"CPVU.F ZVUBLBLPOEP!ZPVUBMLKQ ຊ໊ ΞΧϯτ໊ ࠃ੶ ϗʔϜϖʔδΞυϨε ϝʔϧΞυϨε
304$PO4&06-
IUUQSPTDPOSPTPSHQSFTFOUBUJPOT 304$PO3046QEBUFQEG
IUUQSPTDPOSPTPSH QSFTFOUBUJPOTTUBUFPGSPTQEG
None
IUUQSPTDPOSPTPSHQSFTFOUBUJPOT SPT@PO@TNBMM@FNCFEEFE@TZTUFNTQEG
UBMLFSDQQ int main(int argc, char * argv[]) { rclcpp::init(argc,
argv); auto node = rclcpp::node::Node::make_shared("talker"); rmw_qos_profile_t custom_qos_profile = rmw_qos_profile_default; custom_qos_profile.depth = 7; auto topic = std::string("chatter"); auto chatter_pub = node->create_publisher<std_msgs::msg::String>( topic, custom_qos_profile); rclcpp::WallRate loop_rate(2); auto msg = std::make_shared<std_msgs::msg::String>(); auto i = 1; while (rclcpp::ok()) { msg->data = "Hello World: " + std::to_string(i++); std::cout << "Publishing: '" << msg->data << "'" << std::endl; chatter_pub->publish(msg); rclcpp::spin_some(node); loop_rate.sleep(); } return 0; } IUUQTHJUIVCDPNSPTEFNPTCMPCNBTUFS EFNP@OPEFT@DQQTSDUPQJDTUBMLFSDQQ
MJTUFOFSDQQ void chatterCallback(const std_msgs::msg::String::SharedPtr msg) { std::cout << "I heard:
[" << msg->data << "]" << std::endl; } int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = rclcpp::Node::make_shared("listener"); auto topic = std::string("chatter"); auto sub = node->create_subscription<std_msgs::msg::String>( topic, chatterCallback, rmw_qos_profile_default); rclcpp::spin(node); return 0; } IUUQTHJUIVCDPNSPTEFNPTCMPCNBTUFS EFNP@OPEFT@DQQTSDUPQJDTMJTUFOFSDQQ
304Λࢼ͢ • -JOVY%FWFMPQNFOU4FUVQʹै͏ – IUUQTHJUIVCDPNSPTSPTXJLJ-JOVY%FWFMPQNFOU4FUVQ • -JOVY*OTUBMM#JOBSZΛ͏ – IUUQTHJUIVCDPNSPTSPTXJLJ-JOVY*OTUBMM#JOBSZ –
ґଘύοέʔδͷΠϯετʔϧผ్ඞཁ – όΠφϦ͕ݹ͍ • %PDLFSΠϝʔδΛ͏ – EPDLFSQVMMPTSGSPTˡϲ݄લ͔ΒϏϧυࣦഊ – EPDLFSQVMMZPVUBMLSPTKBˡ࠷৽ίϛοτΛϏϧυࡁΈ • IUUQTHJUIVCDPNZPVUBMLEPDLFSJNBHFTKB • IUUQTIVCEPDLFSDPNSZPVUBMLSPTKB
%PDLFSΠϯετʔϧ • 6CVOUV sudo apt-get install docker-ce • 8JOEPXT –
%PDLFSGPS8JOEPXT https://docs.docker.com/docker-for-windows/install/ • NBD04 – %PDLFSGPS.BD https://docs.docker.com/docker-for-mac/install/
EPDLFSQVMMZPVUBMLSPTKB • ϕʔε6CVOUV • ຊͷ'51αΠτ Λࢀর • #VJMEJOH304PO -JOVYʹै࣮ͬͯ
ʹΠϯετʔϧ FROM youtalk/ubuntu-ja:xenial MAINTAINER Yutaka Kondo <
[email protected]
> RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > \ /etc/apt/sources.list.d/ros-latest.list' RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA11 RUN sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu xenial main" > \ /etc/apt/sources.list.d/gazebo-latest.list' RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 RUN apt-get update && apt-get -q -y install \ git wget build-essential cppcheck cmake \ libopencv-dev libpoco-dev libpocofoundation9v5 libpocofoundation9v5-dbg \ python-empy python3-dev python3-empy python3-nose python3-pip python3-setuptools python3-vcstool \ libtinyxml-dev libeigen3-dev clang-format \ pydocstyle pyflakes python3-coverage python3-mock python3-pep8 \ uncrustify libasio-dev libtinyxml2-dev \ libboost-chrono-dev libboost-date-time-dev libboost-program-options-dev \ libboost-regex-dev libboost-system-dev libboost-thread-dev \ && rm -rf /var/lib/apt/lists/* RUN pip3 install flake8 flake8-import-order RUN mkdir -p /root/ros2_ws/src WORKDIR /root/ros2_ws RUN wget https://raw.githubusercontent.com/ros2/ros2/release-latest/ros2.repos RUN vcs import src < ros2.repos RUN src/ament/ament_tools/scripts/ament.py build --build-tests --symlink-install --isolated COPY ./ros2_entrypoint.sh / ENTRYPOINT ["/ros2_entrypoint.sh"] CMD ["bash"] %PDLFSpMF
EPDLFSSVO–JUZPVUBMLSPTKB
%PDLFS$PNQPTF • ෳίϯςφΛ͏ %PDLFSΞϓϦΛఆٛɺ ࣮ߦ͢Δπʔϧ • SPTMBVODIͷΘΓʹ EPDLFSDPNQPTFΛ ͬͯΈΔ •
.JDSPTFSWJDFT – 304/PEF$POUBJOFS version: '2' services: talker: image: youtalk/ros2-ja:xenial command: talker networks: - ros2 listener: image: youtalk/ros2-ja:xenial command: listener networks: - ros2 networks: ros2: driver: bridge EPDLFSDPNQPTFZNM
EPDLFSDPNQPTFVQ
·ͱΊ • %PDLFSͱ304ͷ૬ੑൈ܈ – ϗετ04%PDLFS&OHJOFಈ͚ԿͰ0, – ୯ҰোʢSPTDPSFʣ͕ͳ͍ – ࠓͷͱ͜ΖSPTMBVODIͳ͍͚ͲɺEPDLFSDPNQPTFͰ ༻Մೳ
• 304ݱࡏЌ – ·ͩ·ͩपลཁૉ͕උ͞Ε͍ͯͳ͍ – ΰʔϧυʢϓϧϦΫʣϥογϡ౸དྷͷ༧ײ
304+BQBO6TFST(SPVQ • ϗʔϜϖʔδSPTVTFSTKQˡͩΕ͔վम࡞ۀखͬͯ • ษڧձϖʔδSPTKQDPOOQBTTDPN • ϝʔϦϯάϦετ SPTKBQBOVTFST!HPPHMFHSPVQTDPN
• (JU)VCSPTKBQBOVTFST • 4MBDLSPTKQTMBDLDPN – টϑΥʔϜIUUQTHPPHMGPSNTC5"1P2PM[5M9 • 5XJUUFSSPTKQ
6QEBUF:PVS04 304+BQBO6( ษڧձ