# Simulating Drones with ROS 2 and Gazebo: A Bebop 2 Tutorial

**URL:** <https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797>\
**Category:** Projects\
**Tags:** ros2, gazebo, ignition, ionic\
**Created:** [May 3, 2025, 3:05am UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797 "2025-05-03T03:05:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![juliordzcer](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/juliordzcer/32/27080_2.png) [@juliordzcer](https://discourse.openrobotics.org/u/juliordzcer)\
**Post date:** [May 3, 2025, 3:05am UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797/1 "2025-05-03T03:05:00Z")

</div>

Hello Gazebo community!

I’m excited to share my **ROS 2 drone simulation project** for the **Parrot Bebop 2** in Gazebo. The repository includes the simulation setup, and I’ve also created a **tutorial video** (in Spanish with English subtitles) to help beginners.

### **📌 Resources:**

- **GitHub Repo:** ([GitHub - juliordzcer/bebop\_ros](https://github.com/juliordzcer/bebop_ros))
- **Video Tutorial:** ([https://www.youtube.com/watch?v=W2oF97yWGyg](https://www.youtube.com/watch?v=W2oF97yWGyg))

---

<div class="post-metadata">

**Author:** ![kongo](https://avatars.discourse-cdn.com/v4/letter/k/d26b3c/32.png) [@kongo](https://discourse.openrobotics.org/u/kongo)\
**Post date:** [May 4, 2025, 12:53pm UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797/2 "2025-05-04T12:53:51Z")

</div>

Cool job! This helps a lot.

---

<div class="post-metadata">

**Author:** ![juliordzcer](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/juliordzcer/32/27080_2.png) [@juliordzcer](https://discourse.openrobotics.org/u/juliordzcer)\
**Post date:** [May 5, 2025, 12:32am UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797/3 "2025-05-05T00:32:56Z")

</div>

**Just one important detail:** When you install the repository, you need to modify the plugin paths in the SDF file. I accidentally included the full Linux path with my username (`jr`), so you’ll need to change it to match your system.

Here’s the relevant part of the file:  
[https://github.com/juliordzcer/bebop\_ros/blob/main/bebop\_gz/worlds/bebop1.sdf](https://bebop1.sdf)

Specifically, update these lines:

xml

```auto
 <!-- Plugin to update position -->
 <plugin name="gz::sim::systems::SetPosePlugin" filename="/home/YOUR_USERNAME/ws_bebop/src/bebop_ros/bebop_gz/plugins/build/libSetPosePlugin.so">
<robotNamespace>bebop1</robotNamespace> 
<topic>bebop1/set_pose</topic>
 </plugin>

 <plugin name="gz::sim::systems::RobotPosePublisher" filename="/home/YOUR_USERNAME/ws_bebop/src/bebop_ros/bebop_gz/plugins/build/libRobotPosePublisher.so">
 <robotNamespace>bebop1</robotNamespace>
 <topic>bebop1/pose</topic> 
</plugin>

```

I forgot to mention this at the beginning of the video, but I explain it when I reach this part of the code.

---

<div class="post-metadata">

**Author:** ![jrivero](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/jrivero/32/239_2.png) [@jrivero](https://discourse.openrobotics.org/u/jrivero)\
**Post date:** [May 5, 2025, 3:49pm UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797/4 "2025-05-05T15:49:28Z")

</div>

> [@juliordzcer](#):
>
> **Just one important detail:** When you install the repository, you need to modify the plugin paths in the SDF file. I accidentally included the full Linux path with my username (`jr`), so you’ll need to change it to match your system.

Note that you can get rid of this by adding some hooks to the ROS package. See [ros\_gz\_project\_template/ros\_gz\_example\_gazebo/hooks/README.md at main · gazebosim/ros\_gz\_project\_template · GitHub](https://github.com/gazebosim/ros_gz_project_template/blob/main/ros_gz_example_gazebo/hooks/README.md) about how to do so.

The [GitHub - gazebosim/ros\_gz\_project\_template: A template project integrating ROS and Gazebo simulator](https://github.com/gazebosim/ros_gz_project_template/) also offers good help to start organizing your Gazebo + ROS package.

---

<div class="post-metadata">

**Author:** ![juliordzcer](https://sea2.discourse-cdn.com/flex022/user_avatar/discourse.openrobotics.org/juliordzcer/32/27080_2.png) [@juliordzcer](https://discourse.openrobotics.org/u/juliordzcer)\
**Post date:** [May 7, 2025, 9:05pm UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797/5 "2025-05-07T21:05:42Z")

</div>

> [@jrivero](#):
>
> Note that you can get rid of this by adding some hooks to the ROS package. See [ros\_gz\_project\_template/ros\_gz\_example\_gazebo/hooks/README.md at main · gazebosim/ros\_gz\_project\_template · GitHub](https://github.com/gazebosim/ros_gz_project_template/blob/main/ros_gz_example_gazebo/hooks/README.md) about how to do so.
> 
> The [GitHub - gazebosim/ros\_gz\_project\_template: A template project integrating ROS and Gazebo simulator](https://github.com/gazebosim/ros_gz_project_template/) also offers good help to start organizing your Gazebo + ROS package.

Thank you for your support! The issue has been resolved now.

---

<div class="post-metadata">

**Author:** ![anisayadi](https://avatars.discourse-cdn.com/v4/letter/a/ce73a5/32.png) [@anisayadi](https://discourse.openrobotics.org/u/anisayadi)\
**Post date:** [December 11, 2025, 7:07pm UTC](https://discourse.openrobotics.org/t/simulating-drones-with-ros-2-and-gazebo-a-bebop-2-tutorial/48797/6 "2025-12-11T19:07:24Z")

</div>

thanks, it is very helpfull
