Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
780
家庭用自律移動ロボット「カチャカ」の開発者API公開と ROS 2インターフェイス実装
youtalk
2
1.2k
ros2_control for ROBOTIS Dynamixel: dynamixel_control
youtalk
1
570
ROBOTIS Dynamixelのためのros2_control実装 dynamixel_controlのその後
youtalk
2
690
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
750
Other Decks in Programming
See All in Programming
AHC070解法紹介
eijirou
0
120
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
スマート反転とウェブアクセシビリティ
camiha
0
210
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
110
速習iPhone Duo対応
yuukiw00w
1
520
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
330
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
140
SREの越境 / SRE Collaboration
y0hgi
2
210
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
330
WebAssembly in Android Apps 〜 WASMはJNIの夢を見るか
keiji
1
110
Java 27新機能 / Java 27 new features
kishida
2
150
Intent as Code
shoppingjaws
6
1k
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
How STYLIGHT went responsive
nonsquared
100
6.3k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Cult of Friendly URLs
andyhume
79
7k
エンジニアに許された特別な時間の終わり
watany
109
250k
BBQ
matthewcrist
89
10k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Are puppies a ranking factor?
jonoalderson
2
3.9k
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( ษڧձ