{"id":972,"date":"2025-03-04T10:45:47","date_gmt":"2025-03-04T01:45:47","guid":{"rendered":"https:\/\/txn.myds.me\/blog\/?p=972"},"modified":"2025-03-04T10:45:47","modified_gmt":"2025-03-04T01:45:47","slug":"gazebo-%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%e3%82%92%e3%81%8b%e3%81%98%e3%81%a3%e3%81%9f","status":"publish","type":"post","link":"https:\/\/blog.txn.red\/?p=972","title":{"rendered":"Gazebo \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u304b\u3058\u3063\u305f"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u4ed5\u4e8b\u3067\u30ed\u30dc\u30c3\u30c8\u7cfb\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u304c\u5fc5\u8981\u306b\u306a\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u3063\u3066\u3053\u3068\u3067 Gazebo \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u3061\u3087\u3063\u3068\u3060\u3051\u3084\u3063\u3066\u307f\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u308a\u3042\u3048\u305a Moving the Robot \u307e\u3067\u9032\u3081\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%25e7%2592%25b0%25e5%25a2%2583\">\u74b0\u5883<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linux Mint 22.1 (ubuntu 22.04)<\/li>\n\n\n\n<li>gazeob ionic<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gazebo \u81ea\u8eab\u306f\u3001\u516c\u5f0f\u306e\u624b\u9806\u3067  apt install gz-ionic \u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gazebo \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092 Moving the Robot \u307e\u3067\u9032\u3081\u308b\u3068 building_robot.sdf \u306f\u3053\u3046\u306a\u3063\u305f\u3002<br>\u5404\u7ae0\u306e\u5192\u982d\u306b\u5b8c\u6210\u5f62\u304c\u3042\u308b\u306e\u3067\u305d\u308c\u3092\u307f\u308c\u3070\u3044\u3044\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-xml\" data-file=\"building_robot.sdf\" data-lang=\"XML\"><code>&lt;?xml version=&quot;1.0&quot; ?&gt;\n&lt;sdf version=&quot;1.10&quot;&gt;\n    &lt;world name=&quot;Moving_robot&quot;&gt;\n        &lt;physics name=&quot;1ms&quot; type=&quot;ignored&quot;&gt;\n            &lt;max_step_size&gt;0.001&lt;\/max_step_size&gt;\n            &lt;real_time_factor&gt;1.0&lt;\/real_time_factor&gt;\n        &lt;\/physics&gt;\n        &lt;plugin\n            filename=&quot;gz-sim-physics-system&quot;\n            name=&quot;gz::sim::systems::Physics&quot;&gt;\n        &lt;\/plugin&gt;\n        &lt;plugin\n            filename=&quot;gz-sim-user-commands-system&quot;\n            name=&quot;gz::sim::systems:aze:UserCommands&quot;&gt;\n        &lt;\/plugin&gt;\n        &lt;plugin\n            filename=&quot;gz-sim-scene-broadcaster-system&quot;\n            name=&quot;gz::sim::systems::SceneBroadcaster&quot;&gt;\n        &lt;\/plugin&gt;\n\n        &lt;light type=&quot;directional&quot; name=&quot;sun&quot;&gt;\n            &lt;cast_shadows&gt;true&lt;\/cast_shadows&gt;\n            &lt;pose&gt;0 0 10 0 0 0&lt;\/pose&gt;\n            &lt;diffuse&gt;0.8 0.8 0.8 1&lt;\/diffuse&gt;\n            &lt;specular&gt;0.2 0.2 0.2 1&lt;\/specular&gt;\n            &lt;attenuation&gt;\n                &lt;range&gt;1000&lt;\/range&gt;\n                &lt;constant&gt;0.9&lt;\/constant&gt;\n                &lt;linear&gt;0.01&lt;\/linear&gt;\n                &lt;quadratic&gt;0.001&lt;\/quadratic&gt;\n            &lt;\/attenuation&gt;\n            &lt;direction&gt;-0.5 0.1 -0.9&lt;\/direction&gt;\n        &lt;\/light&gt;\n\n        &lt;model name=&quot;ground_plane&quot;&gt;\n            &lt;static&gt;true&lt;\/static&gt;\n            &lt;link name=&quot;link&quot;&gt;\n                &lt;collision name=&quot;collision&quot;&gt;\n                &lt;geometry&gt;\n                    &lt;plane&gt;\n                    &lt;normal&gt;0 0 1&lt;\/normal&gt;\n                    &lt;\/plane&gt;\n                &lt;\/geometry&gt;\n                &lt;\/collision&gt;\n                &lt;visual name=&quot;visual&quot;&gt;\n                &lt;geometry&gt;\n                    &lt;plane&gt;\n                    &lt;normal&gt;0 0 1&lt;\/normal&gt;\n                    &lt;size&gt;100 100&lt;\/size&gt;\n                    &lt;\/plane&gt;\n                &lt;\/geometry&gt;\n                &lt;material&gt;\n                    &lt;ambient&gt;0.8 0.8 0.8 1&lt;\/ambient&gt;\n                    &lt;diffuse&gt;0.8 0.8 0.8 1&lt;\/diffuse&gt;\n                    &lt;specular&gt;0.8 0.8 0.8 1&lt;\/specular&gt;\n                &lt;\/material&gt;\n                &lt;\/visual&gt;\n            &lt;\/link&gt;\n        &lt;\/model&gt;\n\n        &lt;model name=&#39;vehicle_blue&#39; canonical_link=&#39;chassis&#39;&gt;\n            &lt;pose relative_to=&#39;world&#39;&gt;0 0 0 0 0 0&lt;\/pose&gt;   &lt;!--the pose is relative to the world by default--&gt;\n\n            &lt;link name=&#39;chassis&#39;&gt;\n                &lt;pose relative_to=&#39;__model__&#39;&gt;0.5 0 0.4 0 0 0&lt;\/pose&gt;\n                &lt;inertial&gt; &lt;!--inertial properties of the link mass, inertia matix--&gt;\n                    &lt;mass&gt;1.14395&lt;\/mass&gt;\n                    &lt;inertia&gt;\n                        &lt;ixx&gt;0.126164&lt;\/ixx&gt;\n                        &lt;ixy&gt;0&lt;\/ixy&gt;\n                        &lt;ixz&gt;0&lt;\/ixz&gt;\n                        &lt;iyy&gt;0.416519&lt;\/iyy&gt;\n                        &lt;iyz&gt;0&lt;\/iyz&gt;\n                        &lt;izz&gt;0.481014&lt;\/izz&gt;\n                    &lt;\/inertia&gt;\n                &lt;\/inertial&gt;\n                &lt;visual name=&#39;visual&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;box&gt;\n                            &lt;size&gt;2.0 1.0 0.5&lt;\/size&gt; &lt;!--question: this size is in meter--&gt;\n                        &lt;\/box&gt;\n                    &lt;\/geometry&gt;\n                    &lt;!--let&#39;s add color to our link--&gt;\n                    &lt;material&gt;\n                        &lt;ambient&gt;0.0 0.0 1.0 1&lt;\/ambient&gt;\n                        &lt;diffuse&gt;0.0 0.0 1.0 1&lt;\/diffuse&gt;\n                        &lt;specular&gt;0.0 0.0 1.0 1&lt;\/specular&gt;\n                    &lt;\/material&gt;\n                &lt;\/visual&gt;\n                &lt;collision name=&#39;collision&#39;&gt; &lt;!--todo: describe why we need the collision--&gt;\n                    &lt;geometry&gt;\n                        &lt;box&gt;\n                            &lt;size&gt;2.0 1.0 0.5&lt;\/size&gt;\n                        &lt;\/box&gt;\n                    &lt;\/geometry&gt;\n                &lt;\/collision&gt;\n            &lt;\/link&gt;\n\n            &lt;!--let&#39;s build the left wheel--&gt;\n            &lt;link name=&#39;left_wheel&#39;&gt;\n                &lt;pose relative_to=&quot;chassis&quot;&gt;-0.5 0.6 0 -1.5707 0 0&lt;\/pose&gt; &lt;!--angles are in radian--&gt;\n                &lt;inertial&gt;\n                    &lt;mass&gt;2&lt;\/mass&gt;\n                    &lt;inertia&gt;\n                        &lt;ixx&gt;0.043333&lt;\/ixx&gt;\n                        &lt;ixy&gt;0&lt;\/ixy&gt;\n                        &lt;ixz&gt;0&lt;\/ixz&gt;\n                        &lt;iyy&gt;0.043333&lt;\/iyy&gt;\n                        &lt;iyz&gt;0&lt;\/iyz&gt;\n                        &lt;izz&gt;0.08&lt;\/izz&gt;\n                    &lt;\/inertia&gt;\n                &lt;\/inertial&gt;\n                &lt;visual name=&#39;visual&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;cylinder&gt;\n                            &lt;radius&gt;0.4&lt;\/radius&gt;\n                            &lt;length&gt;0.2&lt;\/length&gt;\n                        &lt;\/cylinder&gt;\n                    &lt;\/geometry&gt;\n                    &lt;material&gt;\n                        &lt;ambient&gt;1.0 0.0 0.0 1&lt;\/ambient&gt;\n                        &lt;diffuse&gt;1.0 0.0 0.0 1&lt;\/diffuse&gt;\n                        &lt;specular&gt;1.0 0.0 0.0 1&lt;\/specular&gt;\n                    &lt;\/material&gt;\n                &lt;\/visual&gt;\n                &lt;collision name=&#39;collision&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;cylinder&gt;\n                            &lt;radius&gt;0.4&lt;\/radius&gt;\n                            &lt;length&gt;0.2&lt;\/length&gt;\n                        &lt;\/cylinder&gt;\n                    &lt;\/geometry&gt;\n                &lt;\/collision&gt;\n            &lt;\/link&gt;\n\n            &lt;!--copy and paste for right wheel but change position--&gt;\n            &lt;link name=&#39;right_wheel&#39;&gt;\n                &lt;pose relative_to=&quot;chassis&quot;&gt;-0.5 -0.6 0 -1.5707 0 0&lt;\/pose&gt; &lt;!--angles are in radian--&gt;\n                &lt;inertial&gt;\n                    &lt;mass&gt;1&lt;\/mass&gt;\n                    &lt;inertia&gt;\n                        &lt;ixx&gt;0.043333&lt;\/ixx&gt;\n                        &lt;ixy&gt;0&lt;\/ixy&gt;\n                        &lt;ixz&gt;0&lt;\/ixz&gt;\n                        &lt;iyy&gt;0.043333&lt;\/iyy&gt;\n                        &lt;iyz&gt;0&lt;\/iyz&gt;\n                        &lt;izz&gt;0.08&lt;\/izz&gt;\n                    &lt;\/inertia&gt;\n                &lt;\/inertial&gt;\n                &lt;visual name=&#39;visual&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;cylinder&gt;\n                            &lt;radius&gt;0.4&lt;\/radius&gt;\n                            &lt;length&gt;0.2&lt;\/length&gt;\n                        &lt;\/cylinder&gt;\n                    &lt;\/geometry&gt;\n                    &lt;material&gt;\n                        &lt;ambient&gt;1.0 0.0 0.0 1&lt;\/ambient&gt;\n                        &lt;diffuse&gt;1.0 0.0 0.0 1&lt;\/diffuse&gt;\n                        &lt;specular&gt;1.0 0.0 0.0 1&lt;\/specular&gt;\n                    &lt;\/material&gt;\n                &lt;\/visual&gt;\n                &lt;collision name=&#39;collision&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;cylinder&gt;\n                            &lt;radius&gt;0.4&lt;\/radius&gt;\n                            &lt;length&gt;0.2&lt;\/length&gt;\n                        &lt;\/cylinder&gt;\n                    &lt;\/geometry&gt;\n                &lt;\/collision&gt;\n            &lt;\/link&gt;\n\n            &lt;frame name=&quot;caster_frame&quot; attached_to=&#39;chassis&#39;&gt;\n                &lt;pose&gt;0.8 0 -0.2 0 0 0&lt;\/pose&gt;\n            &lt;\/frame&gt;\n\n            &lt;!--caster wheel--&gt;\n            &lt;link name=&#39;caster&#39;&gt;\n                &lt;pose relative_to=&#39;caster_frame&#39;\/&gt;\n                &lt;inertial&gt;\n                    &lt;mass&gt;1&lt;\/mass&gt;\n                    &lt;inertia&gt;\n                        &lt;ixx&gt;0.016&lt;\/ixx&gt;\n                        &lt;ixy&gt;0&lt;\/ixy&gt;\n                        &lt;ixz&gt;0&lt;\/ixz&gt;\n                        &lt;iyy&gt;0.016&lt;\/iyy&gt;\n                        &lt;iyz&gt;0&lt;\/iyz&gt;\n                        &lt;izz&gt;0.016&lt;\/izz&gt;\n                    &lt;\/inertia&gt;\n                &lt;\/inertial&gt;\n                &lt;visual name=&#39;visual&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;sphere&gt;\n                            &lt;radius&gt;0.2&lt;\/radius&gt;\n                        &lt;\/sphere&gt;\n                    &lt;\/geometry&gt;\n                    &lt;material&gt;\n                        &lt;ambient&gt;0.0 1 0.0 1&lt;\/ambient&gt;\n                        &lt;diffuse&gt;0.0 1 0.0 1&lt;\/diffuse&gt;\n                        &lt;specular&gt;0.0 1 0.0 1&lt;\/specular&gt;\n                    &lt;\/material&gt;\n                &lt;\/visual&gt;\n                &lt;collision name=&#39;collision&#39;&gt;\n                    &lt;geometry&gt;\n                        &lt;sphere&gt;\n                            &lt;radius&gt;0.2&lt;\/radius&gt;\n                        &lt;\/sphere&gt;\n                    &lt;\/geometry&gt;\n                &lt;\/collision&gt;\n            &lt;\/link&gt;\n\n\n            &lt;!--connecting these links together using joints--&gt;\n            &lt;joint name=&#39;left_wheel_joint&#39; type=&#39;revolute&#39;&gt; &lt;!--continous joint is not supported yet--&gt;\n                &lt;pose relative_to=&#39;left_wheel&#39;\/&gt;\n                &lt;parent&gt;chassis&lt;\/parent&gt;\n                &lt;child&gt;left_wheel&lt;\/child&gt;\n                &lt;axis&gt;\n                    &lt;xyz expressed_in=&#39;__model__&#39;&gt;0 1 0&lt;\/xyz&gt; &lt;!--can be defined as any frame or even arbitrary frames--&gt;\n                    &lt;limit&gt;\n                        &lt;lower&gt;-1.79769e+308&lt;\/lower&gt;    &lt;!--negative infinity--&gt;\n                        &lt;upper&gt;1.79769e+308&lt;\/upper&gt;     &lt;!--positive infinity--&gt;\n                    &lt;\/limit&gt;\n                &lt;\/axis&gt;\n            &lt;\/joint&gt;\n\n            &lt;joint name=&#39;right_wheel_joint&#39; type=&#39;revolute&#39;&gt;\n                &lt;pose relative_to=&#39;right_wheel&#39;\/&gt;\n                &lt;parent&gt;chassis&lt;\/parent&gt;\n                &lt;child&gt;right_wheel&lt;\/child&gt;\n                &lt;axis&gt;\n                    &lt;xyz expressed_in=&#39;__model__&#39;&gt;0 1 0&lt;\/xyz&gt;\n                    &lt;limit&gt;\n                        &lt;lower&gt;-1.79769e+308&lt;\/lower&gt;    &lt;!--negative infinity--&gt;\n                        &lt;upper&gt;1.79769e+308&lt;\/upper&gt;     &lt;!--positive infinity--&gt;\n                    &lt;\/limit&gt;\n                &lt;\/axis&gt;\n            &lt;\/joint&gt;\n\n            &lt;!--different type of joints ball joint--&gt; &lt;!--defult value is the child--&gt;\n            &lt;joint name=&#39;caster_wheel&#39; type=&#39;ball&#39;&gt;\n                &lt;parent&gt;chassis&lt;\/parent&gt;\n                &lt;child&gt;caster&lt;\/child&gt;\n            &lt;\/joint&gt;\n\n            &lt;!--diff drive plugin--&gt;\n            &lt;plugin\n                filename=&quot;gz-sim-diff-drive-system&quot;\n                name=&quot;gz::sim::systems::DiffDrive&quot;&gt;\n                &lt;left_joint&gt;left_wheel_joint&lt;\/left_joint&gt;\n                &lt;right_joint&gt;right_wheel_joint&lt;\/right_joint&gt;\n                &lt;wheel_separation&gt;1.2&lt;\/wheel_separation&gt;\n                &lt;wheel_radius&gt;0.4&lt;\/wheel_radius&gt;\n                &lt;odom_publish_frequency&gt;1&lt;\/odom_publish_frequency&gt;\n                &lt;topic&gt;cmd_vel&lt;\/topic&gt;\n            &lt;\/plugin&gt;\n        &lt;\/model&gt;\n\n        &lt;!-- Moving Left--&gt;\n        &lt;plugin filename=&quot;gz-sim-triggered-publisher-system&quot;\n                name=&quot;gz::sim::systems::TriggeredPublisher&quot;&gt;\n            &lt;input type=&quot;gz.msgs.Int32&quot; topic=&quot;\/keyboard\/keypress&quot;&gt;\n                &lt;match field=&quot;data&quot;&gt;16777234&lt;\/match&gt;\n            &lt;\/input&gt;\n            &lt;output type=&quot;gz.msgs.Twist&quot; topic=&quot;\/cmd_vel&quot;&gt;\n                linear: {x: 0.0}, angular: {z: 0.5}\n            &lt;\/output&gt;\n        &lt;\/plugin&gt;\n        &lt;!-- Moving Forward--&gt;\n        &lt;plugin filename=&quot;gz-sim-triggered-publisher-system&quot;\n                name=&quot;gz::sim::systems::TriggeredPublisher&quot;&gt;\n            &lt;input type=&quot;gz.msgs.Int32&quot; topic=&quot;\/keyboard\/keypress&quot;&gt;\n                &lt;match field=&quot;data&quot;&gt;16777235&lt;\/match&gt;\n            &lt;\/input&gt;\n            &lt;output type=&quot;gz.msgs.Twist&quot; topic=&quot;\/cmd_vel&quot;&gt;\n                linear: {x: 0.5}, angular: {z: 0.0}\n            &lt;\/output&gt;\n        &lt;\/plugin&gt;\n        &lt;!-- Moving Right--&gt;\n        &lt;plugin filename=&quot;gz-sim-triggered-publisher-system&quot;\n                name=&quot;gz::sim::systems::TriggeredPublisher&quot;&gt;\n            &lt;input type=&quot;gz.msgs.Int32&quot; topic=&quot;\/keyboard\/keypress&quot;&gt;\n                &lt;match field=&quot;data&quot;&gt;16777236&lt;\/match&gt;\n            &lt;\/input&gt;\n            &lt;output type=&quot;gz.msgs.Twist&quot; topic=&quot;\/cmd_vel&quot;&gt;\n                linear: {x: 0.0}, angular: {z: -0.5}\n            &lt;\/output&gt;\n        &lt;\/plugin&gt;\n        &lt;!-- Moving Backward--&gt;\n        &lt;plugin filename=&quot;gz-sim-triggered-publisher-system&quot;\n                name=&quot;gz::sim::systems::TriggeredPublisher&quot;&gt;\n            &lt;input type=&quot;gz.msgs.Int32&quot; topic=&quot;\/keyboard\/keypress&quot;&gt;\n                &lt;match field=&quot;data&quot;&gt;16777237&lt;\/match&gt;\n            &lt;\/input&gt;\n            &lt;output type=&quot;gz.msgs.Twist&quot; topic=&quot;\/cmd_vel&quot;&gt;\n                linear: {x: -0.5}, angular: {z: 0.0}\n            &lt;\/output&gt;\n        &lt;\/plugin&gt;\n    &lt;\/world&gt;\n&lt;\/sdf&gt;\n<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u8d77\u52d5\u3059\u308b\u306b\u306f\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u3092\uff12\u3064\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uff11\u3064\u3081\u306f\u3001sdf \u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3093\u3067\u753b\u9762\u3092\u8868\u793a\u3059\u308b<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>$ gz sim building_robot.sdf<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3082\u3046\u4e00\u3064\u306f\u3001\u5165\u529b\u3055\u308c\u305f\u30ad\u30fc\u3092\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u30c0\u30f3\u30d7\u3059\u308b\u3082\u306e\u306a\u306e\u3067\u672c\u5f53\u306f\u52d5\u304b\u3055\u306a\u304f\u3066\u3082\u3044\u3044\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>$ gz topic -e -t \/keyboard\/keypress<\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u3066 GUI \u3067 Keyboard Publisher \u3092\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<br>GUI \u3067\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u8d77\u52d5\u3059\u308b\u306b\u306f\u3001\u53f3\u4e0a\u306e\u30e1\u30cb\u30e5\u30fc\u30a2\u30a4\u30b3\u30f3\u3067 \u300eKey Publisher\u300f \u3092\u9078\u629e\u3059\u308b\u3002<br>\u3053\u308c\u3092\u8aad\u307f\u98db\u3070\u3057\u3066\u3057\u3070\u3089\u304f\u8003\u3048\u8fbc\u3093\u3067\u3057\u307e\u3063\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u3057\u3066\u5de6\u4e0b\u306e \u518d\u751f\u30dc\u30bf\u30f3\uff1f \u958b\u59cb\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/blog.txn.red\/wp-content\/uploads\/2025\/03\/gazabo00-1024x881.png\" alt=\"\" class=\"wp-image-973\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u3059\u308b\u3068\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u64cd\u4f5c\u3067\u8eca\uff1f\u304c\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u306a\u308b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%25e5%258f%2582%25e8%2580%2583\">\u53c2\u8003<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/gazebosim.org\/docs\/ionic\/moving_robot\/\">Moving the robot \u2014 Gazebo ionic documentation<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/qiita.com\/N622\/items\/9d89f77d85d9da0af29e\">gazebo\u3068ROS2\u3092\u9023\u643a\u3057\u3066\u30ed\u30dc\u30c3\u30c8\u3092\u64cd\u4f5c\u3059\u308b #Gazebo &#8211; Qiita<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ed5\u4e8b\u3067\u30ed\u30dc\u30c3\u30c8\u7cfb\u306e\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u304c\u5fc5\u8981\u306b\u306a\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u3063\u3066\u3053\u3068\u3067 Gazebo \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u3061\u3087\u3063\u3068\u3060\u3051\u3084\u3063\u3066\u307f\u305f\u3002 \u3068\u308a\u3042\u3048\u305a Moving the Robot \u307e\u3067\u9032\u3081\u305f\u3002 \u74b0\u5883 Gazebo \u81ea\u8eab\u306f\u3001\u516c\u5f0f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[5],"tags":[20],"class_list":["post-972","post","type-post","status-publish","format-standard","hentry","category-it","tag-robot"],"_links":{"self":[{"href":"https:\/\/blog.txn.red\/index.php?rest_route=\/wp\/v2\/posts\/972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.txn.red\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.txn.red\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.txn.red\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.txn.red\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=972"}],"version-history":[{"count":0,"href":"https:\/\/blog.txn.red\/index.php?rest_route=\/wp\/v2\/posts\/972\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.txn.red\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.txn.red\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.txn.red\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}