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を絡めた話をしました。

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