{"id":5180,"date":"2022-09-06T07:29:52","date_gmt":"2022-09-05T22:29:52","guid":{"rendered":"https:\/\/now0930.pe.kr\/wordpress\/?p=5180"},"modified":"2022-10-10T21:50:54","modified_gmt":"2022-10-10T12:50:54","slug":"gazebo%ec%97%90%ec%84%9c-spawn-model","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/gazebo%ec%97%90%ec%84%9c-spawn-model\/","title":{"rendered":"gazebo\uc5d0\uc11c spawn model"},"content":{"rendered":"\n<p>\ubb3c\ub9ac \uc5d4\uc9c4\uc744 \uac00\uc9c0\uace0 \uc788\ub294 gazebo\ub85c \ub85c\ubd07\uc744 \ub9cc\ub4e4\uc9c0 \uc54a\uace0\ub3c4 \uc27d\uac8c \ud14c\uc2a4\ud2b8 \ud574 \ubcfc \uc218 \uc788\ub2e4. \uae30\ubcf8 \uc124\uc815 \ud30c\uc77c\uc774 \uc788\ub294\ub370, \uc0ac\uc6a9\uc790\uac00 \ucde8\ud5a5\uc5d0 \ub9de\ucdb0 \uc790\uc720\ub86d\uac8c \ud658\uacbd \uc124\uc815\uc744 \ud560 \uc218\ub3c4 \uc788\ub2e4. \ube48 \uacf5\uac04\uc5d0 \uac01\uc885 \ubaa8\ub4c8\uc744 \ubd88\ub7ec \ub0b4 \uacf5\uac04\uc5d0 \ub123\uace0, gazebo tutorial\uc744 \ub530\ub974\uba74 \ub85c\ubd07\ub3c4 spawn \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<p>Programming Robots With Ros \ucc45 144p\uc5d0 \ubcf4\uba74 \uac04\ub2e8\ud55c python \ud30c\uc77c\uc744 \ub9cc\ub4e4\uace0 gazebo\uc5d0 \ub85c\ub529\ud558\ub294 \ub0b4\uc6a9\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<p>http:\/\/wiki.ros.org\/simulator_gazebo\/Tutorials\/SpawningObjectInSimulation<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"[ROS Q&amp;A] 212 - How to Use Gazebo&#039;s spawn_model\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/ZfVODpwVbS4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/ros-simulation\/gazebo_ros_pkgs\/issues\/864\n<\/div><\/figure>\n\n\n\n<p>\uc0ac\uc6a9\uc790\uac00 \ub9cc\ub4e0 urdf \ud30c\uc77c\uc744 gazebo \uac00\uc0c1 \ud658\uacbd\uc5d0 spawn \ud560 \uc218 \uc788\ub2e4. \ub2e4\ub9cc inetia\ub97c \ubaa8\ub450 \uc785\ub825\ud574\uc57c(\ud2c0\ub9b0 \uac12\uc774\ub77c\ub3c4 \uc785\ub825\ud574\uc57c) gazebo\uac00 \uc778\uc2dd\ud55c\ub2e4. spawn_model\uac00 gazebo_ros \ud328\ud0a4\uc9c0\uc5d0 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4. inetia \uac12\uc744 \uc785\ub825\ud558\uc9c0 \uc54a\uc73c\uba74 \ub85c\ub529\uc774 \uc548\ub41c\ub2e4. \uc911\uac04\uc5d0 \ub098\uc624\ub294 spawn service failed\ub294 \ubb34\uc2dc\ud574\ub3c4 \uad1c\ucc2e\uc740 \ub4ef \ud558\ub2e4. \uc5b4\uca0b\ub4e0 \uad74\ub7ec \uac00\ub2c8\uae4c.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[INFO] [1662392890.824294, 55.975000]: Spawn status: SpawnModel: Entity pushed to spawn queue, but spawn service timed out waiting for entity to appear in simulation under the name agv_number1\n[ERROR] [1662392890.827400, 55.975000]: Spawn service failed. Exiting.<\/pre>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/ros-simulation\/gazebo_ros_pkgs\/issues\/864\n<\/div><\/figure>\n\n\n\n<p>launch \ud30c\uc77c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n&lt;launch>\n\t&lt;!-- Robot pose -->\n\t&lt;arg name=\"x\" default=\"0\"\/>\n\t&lt;arg name=\"y\" default=\"0\"\/>\n\t&lt;arg name=\"z\" default=\"1\"\/>\n\t&lt;arg name=\"roll\" default=\"3.14\"\/>\n\t&lt;arg name=\"pitch\" default=\"2\"\/>\n\t&lt;arg name=\"yaw\" default=\"0\"\/>\n\t&lt;arg name=\"model_name\"   default=\"agv_number1\"\/>\n\n\t\t&lt;!--&lt;param name=\"robot_description\" command = \"cat $(find wander_bot)\/urdf\/robot.urdf\"\/>-->\n\n\t\t\t&lt;!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched -->\n\t\t&lt;include file=\"$(find gazebo_ros)\/launch\/empty_world.launch\">\n\t\t\t&lt;arg name=\"world_name\" value=\"$(find wander_bot)\/worlds\/my_world\"\/>\n\t\t\t&lt;arg name=\"use_sim_time\" value=\"true\"\/>\n\t\t\t\t&lt;!-- more default parameters can be changed here -->\n\t\t&lt;\/include>\n\n\t\t&lt;param name=\"robot_description\" textfile = \"$(find wander_bot)\/urdf\/robot.urdf\" \/> \n\t\t\t&lt;!-- Spawn My Robot -->\n\t\t\t&lt;!--\n\t\t\t\t&lt;node name=\"urdf_spawner\" pkg=\"gazebo_ros\" type=\"spawn_model\" respawn=\"false\" output=\"screen\" \n\t\t\t\targs=\"-urdf -param robot_description -model $(arg model_name) \n\t\t\t\t-x $(arg x) -y $(arg y) -z $(arg z)\n\t\t\t\t-R $(arg roll) -P $(arg pitch) -Y $(arg yaw)\"\/>\n\t\t\t-->\n\t\t\t\t&lt;node name=\"urdf_spawner\" pkg=\"gazebo_ros\" type=\"spawn_model\" respawn=\"false\" output=\"screen\" \n\t\t\t\t\targs=\"-urdf -param robot_description -model $(arg model_name) \n\t\t\t\t\t-x $(arg x) -y $(arg y) -z $(arg z)\n\t\t\t\t\t-R $(arg roll) -P $(arg pitch) -Y $(arg yaw)\"\/>\n\n\n\t\t\t\t&lt;node name=\"test_node\" pkg=\"wander_bot\" type=\"red_green_light.py\"\n\t\t\t\t\targs=\"\/cmd_vel\">\n\t\t\t&lt;\/node>\n\t\t&lt;\/launch><\/pre>\n\n\n\n<p>urdf \ud30c\uc77c\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\" ?>\n&lt;robot name=\"mobile_robot\" xmlns:xacro=\"http:\/\/www.ros.org\/wiki\/xacro\">\n\t&lt;material name=\"blue\">\n\t\t&lt;color rgba = \"0 0 0.8 1\"\/>\n\t&lt;\/material>\n\n\t&lt;material name=\"gray\">\n\t\t&lt;color rgba = \"1 1 1 1\"\/>\n\t&lt;\/material>\n\n\t&lt;material name=\"blueviolet\">\n\t\t&lt;color rgba = \"0.54 0.16 0.88 1\"\/>\n\t&lt;\/material>\n\n\n\n\t&lt;link name = \"base_footprint\"\/>\n\n\t&lt;link name=\"base_link\">\n\t\t&lt;visual>\n\t\t\t&lt;origin xyz=\"0 0 0\" rpy = \"0 0 0\"\/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;box size = \"0.3 0.24 0.1\" rpy = \"0 0 0\" \/>\n\t\t\t&lt;\/geometry>\n\t\t\t&lt;material name = \"gray\"\/>\n\n\t\t&lt;\/visual>\n\t\t&lt;collision>\n\t\t\t&lt;origin xyz=\"0 0 0.03\" rpy = \"0 0 0\"\/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;box size = \"0.3 0.25 0.1\" \/>\n\t\t\t&lt;\/geometry>\n\n\t\t&lt;\/collision>\n\t\t&lt;inertial>\n\t\t\t&lt;mass value = \"1.0\" \/>\n\t\t\t&lt;inertia  ixx=\"1.0\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"100.0\"  iyz=\"0.0\"  izz=\"1.0\" \/>\n\t\t&lt;\/inertial>\n\n\t&lt;\/link>\n\n\n\t&lt;joint name = \"base_footprint_fixed\" type = \"fixed\">\n\t\t&lt;origin xyz = \"0 0 0.03\" rpy = \"0 0 0\"\/>\n\t\t&lt;parent link = \"base_footprint\"\/>\n\t\t&lt;child link = \"base_link\"\/>\n\t&lt;\/joint>\n\n\n\t&lt;link name = \"left_wheel\">\n\t\t&lt;visual>\n\t\t\t&lt;origin xyz = \"0 0 0\" rpy = \"1.570796 0 0\" \/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;cylinder length = \"0.05\" radius = \"0.08\" \/>\n\t\t\t&lt;\/geometry>\n\t\t\t&lt;material name =\"blue\"\/>\n\n\t\t&lt;\/visual>\n\t\t&lt;collision>\n\t\t\t&lt;origin xyz = \"0 0 0\" rpy = \"1.570796 0 0\" \/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;cylinder length = \"0.05\" radius = \"0.08\" \/>\n\t\t\t&lt;\/geometry>\n\n\t\t&lt;\/collision>\n\t\t&lt;inertial>\n\t\t\t&lt;mass value = \"1.0\" \/>\n\t\t\t&lt;inertia  ixx=\"1.0\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"100.0\"  iyz=\"0.0\"  izz=\"1.0\" \/>\n\t\t&lt;\/inertial>\n\n\n\n\t&lt;\/link>\n\n\t&lt;link name = \"right_wheel\">\n\t\t&lt;visual>\n\t\t\t&lt;origin xyz = \"0 0 0\" rpy = \"1.570796 0 0\" \/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;cylinder length = \"0.05\" radius = \"0.08\" \/>\n\t\t\t&lt;\/geometry>\n\t\t\t&lt;material name =\"blue\"\/>\n\n\t\t&lt;\/visual>\n\t\t&lt;collision>\n\t\t\t&lt;origin xyz = \"0 0 0\" rpy = \"1.570796 0 0\" \/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;cylinder length = \"0.05\" radius = \"0.08\" \/>\n\t\t\t&lt;\/geometry>\n\n\t\t&lt;\/collision>\n\n\t\t&lt;inertial>\n\t\t\t&lt;mass value = \"1.0\" \/>\n\t\t\t&lt;inertia  ixx=\"1.0\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"100.0\"  iyz=\"0.0\"  izz=\"1.0\" \/>\n\t\t&lt;\/inertial>\n\n\t&lt;\/link>\n\n\n\t&lt;joint name = \"left_wheel_joint\" type = \"continuous\">\n\t\t&lt;origin xyz = \"0.1 0.15 0\" rpy = \"0 0 0\"\/>\n\t\t&lt;parent link = \"base_link\"\/>\n\t\t&lt;child link = \"left_wheel\"\/>\n\t\t&lt;axis xyz = \"0 1 0\"\/>\n\n\t&lt;\/joint>\n\n\t&lt;joint name = \"right_wheel_joint\" type = \"continuous\">\n\t\t&lt;origin xyz = \"0.1 -0.15 0\" rpy = \"0 0 0\"\/>\n\t\t&lt;parent link = \"base_link\"\/>\n\t\t&lt;child link = \"right_wheel\"\/>\n\t\t&lt;axis xyz = \"0 1 0\" \/>\n\n\t&lt;\/joint>\n\n\t&lt;link name=\"scanner_link\">\n\t\t&lt;visual>\n\t\t\t&lt;origin xyz=\"0 0 0\" rpy = \"0 0 0\"\/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;cylinder length=\"0.05\" radius=\"0.035\"\/>\n\t\t\t&lt;\/geometry>\n\t\t\t&lt;material name = \"blueviolet\"\/>\n\n\t\t&lt;\/visual>\n\t\t&lt;collision>\n\t\t\t&lt;origin xyz=\"0 0 0\" rpy = \"0 0 0\"\/>\n\t\t\t&lt;geometry>\n\t\t\t\t&lt;cylinder length=\"0.05\" radius=\"0.035\"\/>\n\t\t\t&lt;\/geometry>\n\n\t\t&lt;\/collision>\n\t\t&lt;inertial>\n\t\t\t&lt;mass value = \"1.0\" \/>\n\t\t\t&lt;inertia  ixx=\"1.0\" ixy=\"0.0\"  ixz=\"0.0\"  iyy=\"100.0\"  iyz=\"0.0\"  izz=\"1.0\" \/>\n\t\t&lt;\/inertial>\n\n\t&lt;\/link>\n\n\t&lt;joint name = \"head_scanner\" type = \"fixed\">\n\t\t&lt;origin xyz = \"0.15 0 0\" rpy = \"0 1.5708 0\"\/>\n\t\t&lt;parent link = \"base_link\"\/>\n\t\t&lt;child link = \"scanner_link\"\/>\n\t&lt;\/joint>\n\n&lt;\/robot><\/pre>\n\n\n\n<p>\uc9c1\uc811 \ud574\ubcf4\uae30\ub3c4 \uc88b\uc9c0\ub9cc, \ub0a8\uc774 \ud55c \ud504\ub85c\uc81d\ud2b8\ub97c \ubcf4\ub294\uac8c \ub354 \ube60\ub974\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ubb3c\ub9ac \uc5d4\uc9c4\uc744 \uac00\uc9c0\uace0 \uc788\ub294 gazebo\ub85c \ub85c\ubd07\uc744 \ub9cc\ub4e4\uc9c0 \uc54a\uace0\ub3c4 \uc27d\uac8c \ud14c\uc2a4\ud2b8 \ud574 \ubcfc \uc218 \uc788\ub2e4. \uae30\ubcf8 \uc124\uc815 \ud30c\uc77c\uc774 \uc788\ub294\ub370, \uc0ac\uc6a9\uc790\uac00 \ucde8\ud5a5\uc5d0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5188,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1049],"tags":[1076,1044,1077],"class_list":["post-5180","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ros","tag-gazebo","tag-ros","tag-spawn_model"],"jetpack_featured_media_url":"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2022\/09\/-2022-09-06-07-22-44-e1662416919621.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/5180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=5180"}],"version-history":[{"count":8,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/5180\/revisions"}],"predecessor-version":[{"id":5189,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/5180\/revisions\/5189"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media\/5188"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=5180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=5180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=5180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}