I'm trying to work with sjtu drone simulator (https://github.com/NovoG93/sjtu_drone).

I'm using ROS2 humble, Gazebo 11.

When I launch the program, using:

ros2 launch sjtu_drone_bringup sjtu_drone_bringup.launch.py

everything is initiating and I manage to move the drone using its teleope window.

The problem is, the simulation doesn't have any reference frame, and the "higher" frame is the one located in the urdf.xacro file which is "base_link"enter image description .here

In previous simulations I used, both in ROS and ROS2, the Gazebo simulator used to have some reference frame to describe the robot's positioning according to it. Creating a new "world" frame in the URDF and using a static_tf_broadcaster is not an option here, since I want the drone to move.

How can I solve this problem?


1 Answer 1


As I do not know details, here are very general things:

  1. Make sure gazebo gets the world (you can look at examples at my robotics.snowcron.com)
  2. Make sure there is odometry frame. Odometry is a "connection" between steady "world" and moving robot. For example, in a wheeled robot, some kind of a publisher node publishes it.
  3. Make sure world and odom are connected using static transformation - on my site, see any example for multiple bots, for example, but generally, it is just few lines.
  • $\begingroup$ Thank you. Which details are missing for answering the question? $\endgroup$
    – oferb
    Aug 22, 2023 at 8:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.