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
770
ros2_control for ROBOTIS Dynamixel: dynamixel_control
youtalk
0
460
ROBOTIS Dynamixelのためのros2_control実装 dynamixel_controlのその後
youtalk
1
580
Build Your Own #ROS2 Robot from Scratch ver. 2
youtalk
0
1.5k
ROBOTIS DynamixelのためのROS 2 Control実装 dynamixel_control
youtalk
0
3.7k
DynamixelサーボのためのROS 2 Control実装とOpenMANIPULATOR-Xへの参照実装
youtalk
0
4k
[ROS World 2020参加報告会] Navigation2: The Next Generation Navigation System
youtalk
0
1.8k
ROSCon JP 2019講習会 ROS2の移動ロボットへの応用
youtalk
0
690
youfork: Fully ROS 2 Homemade Mobile Manipulator
youtalk
0
2.2k
Other Decks in Programming
See All in Programming
パスキーのすべて / 20250324 iddance Lesson.5
kuralab
0
140
Kamal 2 – Get Out of the Cloud
aleksandrov
1
150
コンテナでLambdaをデプロイするときに知っておきたかったこと
_takahash
0
170
AWSで雰囲気でつくる! VRChatの写真変換ピタゴラスイッチ
anatofuz
0
110
custom_lintで始めるチームルール管理
akaboshinit
0
190
List とは何か? / PHPerKaigi 2025
meihei3
0
590
私の愛したLaravel 〜レールを超えたその先へ〜
kentaroutakeda
12
3.7k
いまさら聞けない生成AI入門: 「生成AIを高速キャッチアップ」
soh9834
14
4.2k
The Weight of Data: Rethinking Cloud-Native Systems for the Age of AI
hollycummins
0
230
PHPでお金を扱う時、終わりのない 謎の1円調査の旅にでなくて済む方法
nakka
4
1.4k
PsySHから紐解くREPLの仕組み
muno92
PRO
1
540
Being an ethical software engineer
xgouchet
PRO
0
150
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
A Modern Web Designer's Workflow
chriscoyier
693
190k
How to Ace a Technical Interview
jacobian
276
23k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Code Reviewing Like a Champion
maltzj
522
39k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
It's Worth the Effort
3n
184
28k
Music & Morning Musume
bryan
46
6.4k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
Visualization
eitanlees
146
16k
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( ษڧձ