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
4
9.7k
ROS 2はじめました
ROS Japan UG #10
https://rosjp.connpass.com/event/55125/
の発表資料です。ROS 2とDockerを絡めた話をしました。
Yutaka Kondo
May 20, 2017
Tweet
Share
More Decks by Yutaka Kondo
See All by Yutaka Kondo
家庭用自律移動ロボット「カチャカ」の開発者API公開と ROS 2インターフェイス実装
youtalk
0
700
ros2_control for ROBOTIS Dynamixel: dynamixel_control
youtalk
0
440
ROBOTIS Dynamixelのためのros2_control実装 dynamixel_controlのその後
youtalk
1
550
Build Your Own #ROS2 Robot from Scratch ver. 2
youtalk
0
1.4k
ROBOTIS DynamixelのためのROS 2 Control実装 dynamixel_control
youtalk
0
3.5k
DynamixelサーボのためのROS 2 Control実装とOpenMANIPULATOR-Xへの参照実装
youtalk
0
3.9k
[ROS World 2020参加報告会] Navigation2: The Next Generation Navigation System
youtalk
0
1.8k
ROSCon JP 2019講習会 ROS2の移動ロボットへの応用
youtalk
0
670
youfork: Fully ROS 2 Homemade Mobile Manipulator
youtalk
0
2.1k
Other Decks in Programming
See All in Programming
선언형 UI에서의 상태관리
l2hyunwoo
0
270
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.8k
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.8k
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
170
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
asdf-ecspresso作って 友達が増えた話 / Fujiwara Tech Conference 2025
koluku
0
1.4k
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
590
Featured
See All Featured
Thoughts on Productivity
jonyablonski
68
4.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building Adaptive Systems
keathley
38
2.4k
Writing Fast Ruby
sferik
628
61k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
GitHub's CSS Performance
jonrohan
1030
460k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
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( ษڧձ