Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ROS 2はじめました

ROS 2はじめました

ROS Japan UG #10 https://rosjp.connpass.com/event/55125/ の発表資料です。ROS 2とDockerを絡めた話をしました。

Avatar for Yutaka Kondo

Yutaka Kondo

May 20, 2017
Tweet

More Decks by Yutaka Kondo

Other Decks in Programming

Transcript

  1. 

  2. 

  3. 

  4. 

  5. 

  6. 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
  7. 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
  8. 304Λࢼ͢ •  -JOVY%FWFMPQNFOU4FUVQʹै͏ –  IUUQTHJUIVCDPNSPTSPTXJLJ-JOVY%FWFMPQNFOU4FUVQ •  -JOVY*OTUBMM#JOBSZΛ࢖͏ –  IUUQTHJUIVCDPNSPTSPTXJLJ-JOVY*OTUBMM#JOBSZ – 

    ґଘύοέʔδͷΠϯετʔϧ͸ผ్ඞཁ –  όΠφϦ͕ݹ͍ •  %PDLFSΠϝʔδΛ࢖͏ –  EPDLFSQVMMPTSGSPTˡϲ݄લ͔ΒϏϧυࣦഊ –  EPDLFSQVMMZPVUBMLSPTKBˡ࠷৽ίϛοτΛϏϧυࡁΈ •  IUUQTHJUIVCDPNZPVUBMLEPDLFSJNBHFTKB •  IUUQTIVCEPDLFSDPNSZPVUBMLSPTKB 
  9. %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/ 
  10. 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
  11. %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
  12. 304+BQBO6TFST(SPVQ •  ϗʔϜϖʔδSPTVTFSTKQˡͩΕ͔վम࡞ۀख఻ͬͯ •  ษڧձϖʔδSPTKQDPOOQBTTDPN •  ϝʔϦϯάϦετ   SPTKBQBOVTFST!HPPHMFHSPVQTDPN

    •  (JU)VCSPTKBQBOVTFST •  4MBDLSPTKQTMBDLDPN –  ট଴ϑΥʔϜIUUQTHPPHMGPSNTC5"1P2PM[5M9 •  5XJUUFSSPTKQ