Slide 1

Slide 1 text

ςΩετ ROS+GazeboͰ͸͡ΊΔϩϘοτγϛϡϨʔγϣϯ akio

Slide 2

Slide 2 text

DISCLAIMER ͜ͷൃදͷ಺༰͸શͯެ։͞Ε͍ͯΔ৘ใ͓Αͼൃ දऀ(akio)ͷݸਓతͳҙݟʹجͮ͘΋ͷͰ͢ɻൃදऀ ͷޏ༻ऀʹҰ੾ͷؔ܎͸͋Γ·ͤΜɻ ൃද಺༰ʹ͸ࡉ৺ͷ஫ҙΛ෷͍ͬͯ·͕͢ɺهࡌ৘ ใͷ͝ར༻ʹΑΓສҰଛ֐͕ੜͯ͡΋ɺൃදऀ͸Ұ ੾ͷ੹೚Λෛ͍·ͤΜɻ

Slide 3

Slide 3 text

ࣗݾ঺հ akio @akio(GitHub) ϩϘοτͷιϑτ΢ΣΞΛ։ൃ͢Δ࢓ࣄΛͯ͠·͢ ֶੜ࣌୅͔Β෺ཧγϛϡϨʔλͰ༡Ϳͷ͕޷͖Ͱ͢

Slide 4

Slide 4 text

಺༰ Gazeboʹ͍ͭͯ ROSͱͷ࿈ܞ ͙͢ࢼͤΔύοέʔδ ࣗ෼ͷϞσϧΛͭͬͯ͘ΈΑ͏ ·ͱΊ

Slide 5

Slide 5 text

Gazeboʹ͍ͭͯ

Slide 6

Slide 6 text

Gazeboͱ͸ ! ެࣜαΠτ͸http://gazebosim.org ΦʔϓϯιʔεʢApacheϥΠηϯεʣͷ̏DϩϘοτγϛϡϨʔλ ϦΞϧλΠϜੑΛॏࢹ OGREΛར༻ͨ͠ߴ඼࣭ͳάϥϑΟοΫ ෳ਺ͷ෺ཧΤϯδϯΛ੾Γସ͑ΒΕΔʢODE, Bullet, Simbody, DARTʣ ΧϝϥɺϨʔβʔϨϯδϑΝΠϯμͳͲͷηϯαʔγϛϡϨʔγϣϯ ಠࣗͷAPIΛ͕࣋ͭɺROSͱͷ࿈ܞ΋ॆ࣮

Slide 7

Slide 7 text

ಠஅͱภݟʹΑΔGazeboͷྺ࢙ Player࣌୅ ROS࣌୅ Standalone࣌୅ɹࠓ͜͜

Slide 8

Slide 8 text

Player࣌୅ 2DϩϘοτγϛϡϨʔλPlayer/Stageͷ༻్Λิ׬͢ Δ໨తͰ࢝ಈ ઃఆϑΝΠϧ͸XMLϕʔεͰهड़ ϥΠηϯε͸GPL ൃදऀ΋͋·ΓΑ͘஌Βͳ͍

Slide 9

Slide 9 text

ROS࣌୅(2009 - 2011) Willow Garage͕։ൃࢧԉ ROSͱͷ࿈ܞΛ༰қʹ͢Δ౒ྗ͕ͳ͞ΕΔ PR2ͷγϛϡϨʔλͱͯ͠ར༻͞ΕΔ C++αϙʔτͷڧԽ ίʔυϕʔε͸Player࣌୅ͱಉ͡ʢGPLʣ ROS Wikiʹ͸·ͩ͜ͷ࣌୅ͷهड़͕࢒͓ͬͯΓɺࠞཚ͠΍͍͢

Slide 10

Slide 10 text

Standalone࣌୅(2012 - ݱࡏ) WillowGarage͔ΒεϐϯΞ΢τͨ͠OSRF(Open Source Robotics Foundation) ͕ओʹ։ൃ શ໘తͳॻ͖௚͕͠ߦΘΕɺόʔδϣϯ΋Ϧηοτ ϥΠηϯε΋Apache Software License 2.0ʹ ઃఆϑΝΠϧ΋SDFʢSimulation Description Formatʣ΁ ProtobufΛར༻ͨ͠ಠࣗͷϝοηʔδ௨৴ػߏΛ࣋ͭ DARPA Robotics Challengeͷ༧બͷҰͭVRC(Virtual Robotics Challenge)༻γ ϛϡϨʔλʹ࠾༻͞ΕΔ

Slide 11

Slide 11 text

GazeboͷΞʔΩςΫνϟ SDF gzserver gzclient (GUI) ϓϥάΠϯ Ϟσϧ Load Ϟσϧ ϓϥάΠϯ ϓϥάΠϯ Simulation World ϝοηʔδ௨৴ ੍ޚॲཧͳͲ

Slide 12

Slide 12 text

޲͖ෆ޲͖ ݩʑͷ։ൃܦҢ͔ΒɺηϯαʔʴγϯϓϧͳػߏͷϩϘοτͱ͸ൺֱత૬ੑ ͕ྑ͍Ͱ͢ ͔͠͠ɺ෺ཧγϛϡϨʔγϣϯΤϯδϯͷΞϧΰϦζϜͷӨڹ΋͋Γଟؔઅ ϩϘοτ΍าߦϩϘοτͳͲͰ͸͍ۤ͠৔໘͕… ϦΞϧλΠϜੑॏࢹͳͷͰɺݫີͳਫ਼౓Λظ଴͠ͳ͍Ͱ࢖͏ͷ͕ྑ͍ v1.9Λ࢖͍ͬͯͯ΋ಈ࡞͕ෆ҆ఆͳ͕࣌͋ΔɻకΊ੾Γʹ௥ΘΕ͍ͯΔ࣌ʹ ͸޲͔ͳ͍͔΋͠Εͳ͍ ࠓޙ(v2.2ʙʣɺ෺ཧγϛϡϨʔγϣϯΤϯδϯͷબ୒ࢶ͕޿͕ΔͷͰɺվળ ͷر๬͸͋Γ·͢

Slide 13

Slide 13 text

·ͱΊ ࠓޙ͸Standalone൛͕ओྲྀͰ͢ ޲͖ෆ޲͖͕͋ΔͷͰɺ༻్ͱੑೳΛߟྀͯ͠࢖͏ ͷ͕٢Ͱ͢ ࠓޙͷվળ࣍ୈͰରԠ༻్͸޿͕Δ͔΋ʁ

Slide 14

Slide 14 text

ROSͱͷ࿈ܞ

Slide 15

Slide 15 text

GazeboͱROSͱͷ࿈ܞػߏͷ࠶੔උ Standalone൛Ͱ͸௕Β͘ެࣜͳROSͱͷ࿈ܞػߏ͕ ͳ͔ͬͨ Standalone൛1.3ʙ͔ΒରԠ࢝͠Ί1.9Ͱ΄΅҆ఆ ROS͸Hydro͔Βͪ͜Βͷ࢓૊Έʹ४ڌ GroovyͰ͸͋ͪͪ͜ෆ੔߹͕ग़·͢

Slide 16

Slide 16 text

SDF gzserver gzclient (GUI) ϓϥάΠϯ Ϟσϧ Load ϓϥάΠϯ Simulation World ϝοηʔδ௨৴ ੍ޚॲཧͳͲ ࿈ܞγεςϜͷΞʔΩςΫνϟ URDF ม׵ ROS controller manager roscpp ROSϊʔυ ROSϊʔυ Controller ϓϥάΠϯ Ϟσϧ Controller ϓϥάΠϯ roscpp roscpp ROS ϝοηʔδ౳

Slide 17

Slide 17 text

ϞσϧΛ੍ޚ͍ͨ͠৔߹ gazebo_pluginsʹ͋Δط੒ϓϥάΠϯΛ࢖͏ GazeboϓϥάΠϯͱͯ͠։ൃ͢Δ Ϟσϧʹඥ͍ͮͯɺGazebo APIΛར༻ roscppΛ࢖ͬͯଞͷROSϊʔυͱ௨৴ ros-controlsͷControllerManagerʹରԠͨ͠ControllerϓϥάΠϯͱͯ͠։ൃ͢Δ ros-controls͸PR2ͷϦΞϧλΠϜ੍ޚϨΠϠʔͷҰൠԽ൛ ࣮ػ༻੍ޚϓϩάϥϜͱɺControllerΛڞ༗Ͱ͖Δ

Slide 18

Slide 18 text

gazebo_pluginsͷϓϥάΠϯ Camera Multicamera Depth Camera Openni Kinect GPU Laser Laser Block Laser F3D (Force Feedback Ground Truth) Force IMU Joint Pose Trajectory P3D (3D Position Interface for Ground Truth) Projector Prosilica Camera Bumper Differential Drive Skid Steering Drive Video Plugin Planar Move Plugin

Slide 19

Slide 19 text

·ͱΊ ͠͹Β͘͸Gazebo1.9 + ROS Hydroͷ૊Έ߹Θ͕ͤ҆ఆͩͱࢥ ΘΕ·͢ ҟͳΔόʔδϣϯΛ૊Έ߹ΘͤΔͱɺ௥੻͕೉͍͠Τϥʔ͕ग़ ͨΓ͠·͢ ϞσϧΛ੍ޚ͢ΔͳΒকདྷతʹ͸ros-controlsܦ༝͔ʁ ros-controlsࣗମ͸·ͩ੒ख़͖͍ͬͯ͠ͳ͍ ࠓ͸࢖͍෼͚͕ඞཁ

Slide 20

Slide 20 text

͙͢ࢼͤΔύοέʔδ

Slide 21

Slide 21 text

ROS HydroͰϦϦʔε͞Ε͍ͯΔ GazeboγϛϡϨʔγϣϯPKG ൃදऀௐ΂ͳͷͰɺൈ͚ʗ࿙ΕͳͲଟ਺͋ΔͱࢥΘΕ·͢ Turtlebot2/Kobuki Husky Grizzly youBot Segbot UR5/10 Hector Quadcoptor

Slide 22

Slide 22 text

ςΩετ Turtlebot2/Kobuki Πϯετʔϧ $ apt-get install ros-hydro-turtlebot-simulator ࣮ߦ $ roslaunch turtlebot_gazebo turtlebot_empty_world.launch !

Slide 23

Slide 23 text

ςΩετ Husky Πϯετʔϧ $ apt-get install ros-hydro-husky-simulator ࣮ߦ $ roslaunch husky_gazebo husky_empty_world.launch

Slide 24

Slide 24 text

ςΩετ Grizzly Πϯετʔϧ $ apt-get install ros-hydro-grizzly-simulator ࣮ߦ $ roslaunch grizzly_gazebo grizzly_empty_world.launch

Slide 25

Slide 25 text

ςΩετ youBot Πϯετʔϧ $ apt-get install ros-hydro-youbot-simulation ࣮ߦ $ roslaunch youbot_gazebo_robot youbot_dual_arm.launch

Slide 26

Slide 26 text

ςΩετ Segbot Πϯετʔϧ $ apt-get install ros-hydro-segbot-simulator ࣮ߦ $ roslaunch segbot_gazebo segbot_test_world.launch (ผͷ୺຤)$ roslaunch segbot_gazebo segbot_mobile_base.launch

Slide 27

Slide 27 text

ςΩετ UR5/10ʢUniversal Robotsʣ Πϯετʔϧ $ apt-get install ros-hydro-ur-gazebo ࣮ߦ (UR5)$ roslaunch ur_gazebo ur5.launch (UR10)$ roslaunch ur_gazebo ur10.launch ΞʔϜ͚ͩͳͷͰɺ޷͖ͳ୆ंʹ͚ͬͭ͘Α͏

Slide 28

Slide 28 text

ςΩετ Hector Quadrotor Πϯετʔϧ $ apt-get install ros-hydro-hector-quadrotor-gazebo ࣮ߦ $ roslaunch hector_quadrotor_gazebo quadrotor_empty_world.launch

Slide 29

Slide 29 text

·ͱΊ ROS HydroͳΒ͙͢ࢼͤΔγϛϡϨʔλϞσϧଟ਺ جຊతʹඪ४తͳΠϯλʔϑΣʔεʹ४ڌ͍ͯ͠Δͷ ͰɺଞͷROSϑϨʔϜϫʔΫ(MoveIt!ͳͲʣͱ΋ൺֱ త༰қͷ͸ͣ

Slide 30

Slide 30 text

ࣗ෼ͷϞσϧΛ࡞ͬͯΈΑ͏ ʢαϯϓϧίʔυͰֶͿฤʣ

Slide 31

Slide 31 text

ࢀߟʹͳΔࢿྉ ެࣜͷROS࿈ܞνϡʔτϦΞϧ http://gazebosim.org/wiki/Tutorials#ROS_Integration ্هνϡʔτϦΞϧͷαϯϓϧίʔυ https://github.com/ros-simulation/gazebo_ros_demos

Slide 32

Slide 32 text

ࠓճͷྫ୊ ެࣜνϡʔτϦΞϧྫ ୊ΛࢀߟʹΑΓ؆ུԽ ̍࣠ճసؔઅΛ࣋ͭ ΞʔϜઌ୺ʹ͸Χϝϥ Xacroແ͠Ͱॻ͘

Slide 33

Slide 33 text

ඞཁͳύοέʔδ ros-hydro-gazebo-ros-pkgs ros-hydro-gazebo-ros-control ros-hydro-ros-controllers ֬ೝ༻ ros-hydro-image-view2

Slide 34

Slide 34 text

αϯϓϧίʔυ sudo apt-get install git CatkinͷϫʔΫεϖʔεΛ࡞ͬͯɺsrcσΟϨΫτϦʹ clone ͍ͯͩ͘͠͞ɻ git clone https://github.com/akio/myrobot_demo.git

Slide 35

Slide 35 text

ϑΝΠϧͷઆ໌ myrobot_demo myrobot_gazebo package.xmlɹɹɹී௨ CMakeLists.txtɹɹී௨ myrobot.launchɹɹશ෦ೖΓLaunch myrobot.urdf ɹɹϞσϧͷఆٛ

Slide 36

Slide 36 text

ղઆ෇͖ίʔυͰઆ໌

Slide 37

Slide 37 text

ϞσϧΛॻ࣌͘ͷ஫ҙ఺ URDF͔ΒSDF΁ͷม׵ϓϩάϥϜ΍ɺGazeboαʔόʔͷΤ ϥʔ΍ܯࠂ͕ൃల్্ɻ ݁ՌɺΤϥʔ͕ى͖ͯ΋ݪҼෆ໌ͱ͍͏͜ͱ͕Α͋͘Γ·͢ ৔߹ʹΑͬͯ͸ҙਤ͠ͳ͍݁Ռ͕ग़͍ͯͯ΋ΤϥʔʹͳΒͳ ͍͜ͱ΋͋Γ·͢ ͦΜͳͱ͖͸ม׵εςοϓΛҰͭҰͭ෼ղͯ֬͠ೝ͢Δͱྑ ͍Ͱ͢ʢମݧஊʣ

Slide 38

Slide 38 text

·ͱΊ جຊ͸URDFͳͷͰɺJointͱϦϯΫͷ܁Γฦ͠ͰϩϘοτΛ૊ ΈཱͯΔ ඞཁͳ෦෼ʹɺGazebo༻ͷઃఆΛ௥Ճ͢ΔΠϝʔδ GazeboϓϥάΠϯɺROS ControllersϓϥάΠϯͱ΋ʹ๛෋ʹ४ උ͞Ε͍ͯΔͷͰɺࣗ෼ͷ࢖͍͍ͨػೳΛΑ͘୳͠·͠ΐ͏ ෳࡶͳϩϘοτ͸ͱͯ΋هड़͕௕͘ͳΔͷͰɺXacroΛ࢖ͬͯ هड़ΛݮΒͨ͠ΓɺϑΝΠϧ෼ׂ͢ΔςΫχοΫ͕ඞཁ

Slide 39

Slide 39 text

શମͷ·ͱΊ

Slide 40

Slide 40 text

શମͷ·ͱΊ ಉ͡GazeboͰ΋৭ʑ͋ΔͷͰɺཁ஫ҙ ͠͹Β͘͸Gazebo1.9 + Hydro͕҆ఆ ͙͢ʹ࢖͑ΔϩϘοτϞσϧͷ഑෍͕࢝·͍ͬͯΔ ཁྖ͕Θ͔Ε͹ɺࣗ෼ͰϩϘοτϞσϧ΍৽͍͠ϓ ϥάΠϯΛ։ൃͰ͖Δ