报错:

问题:gazebo能打开,但是没有无人机显示,终端报错以上内容!!!。

Traceback (most recent call last):
  File "/home/nvidia/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model", line 34, in <module>
    from tf.transformations import quaternion_from_euler
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf/__init__.py", line 30, in <module>
    from tf2_ros import TransformException as Exception, ConnectivityException, LookupException, ExtrapolationException
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/__init__.py", line 38, in <module>
    from tf2_py import *
  File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_py/__init__.py", line 38, in <module>
    from ._tf2 import *
ImportError: dynamic module does not define module export function (PyInit__tf2)
[ INFO] [1740638451.589601028]: Plugin rallypoint initialized
[ INFO] [1740638451.589757793]: Plugin rangefinder blacklisted
[ INFO] [1740638451.590259056]: Plugin rc_io loaded
[ INFO] [1740638451.630958579]: Plugin rc_io initialized
[ INFO] [1740638451.631205659]: Plugin safety_area blacklisted
[ INFO] [1740638451.631802708]: Plugin setpoint_accel loaded
[ INFO] [1740638451.690330164]: Plugin setpoint_accel initialized
[ INFO] [1740638451.690968867]: Plugin setpoint_attitude loaded
[ INFO] [1740638451.714946416]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1740638451.742623767]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
[ INFO] [1740638451.881944999]: Plugin setpoint_attitude initialized
[ INFO] [1740638451.882557404]: Plugin setpoint_position loaded
[ INFO] [1740638451.918702375]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1740638451.941745383]: waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting...
[vehicle_spawn_Xavier_NX_20125_5258758821782986749-5] process has died [pid 20224, exit code 1, cmd /home/nvidia/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model -sdf -file /home/nvidia/PX4_Firmware/Tools/sitl_gazebo/models/iris/iris.sdf -model iris -x 0 -y 0 -z 0 -R 0 -P 0 -Y 0 __name:=vehicle_spawn_Xavier_NX_20125_5258758821782986749 __log:=/home/nvidia/.ros/log/c57dafc4-f4d5-11ef-8c2a-48b02d3d6e4a/vehicle_spawn_Xavier_NX_20125_5258758821782986749-5.log].
log file: /home/nvidia/.ros/log/c57dafc4-f4d5-11ef-8c2a-48b02d3d6e4a/vehicle_spawn_Xavier_NX_20125_5258758821782986749-5*.log

解决: 

确保你使用的是正确的 Python 版本。tf2_ros 通常与 Python 2.7 一起使用。你可以通过以下命令检查当前使用的 Python 版本:

python --version

如果使用的是 Python 3,可以尝试切换到 Python 2.7:

sudo apt-get install python2.7

然后修改 spawn_model 脚本的 shebang 行,确保使用 Python 2.7:

sed -i '1s|^.*|#!/usr/bin/env python2.7|' /home/nvidia/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model
  1. 可以尝试重新安装 tf2_ros

    sudo apt-get install --reinstall ros-melodic-tf2-ros
  2. 检查 gazebo_ros_pkgs: 确保 gazebo_ros_pkgs 已正确安装。尝试重新安装:

  3. sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control

 然后重新roslaunch

roslaunch px4 mavros_posix_sitl.launch

结果 :

【需要注意】:在安装PX4这个固件,并且运行这个launch文件的时候,之前的系统是用的Xavier NX并且系统是Ubuntu18.04,然后进行了多次的下载删除安装无效(困在mavros通信不上),再下载删除安装还是无效的问题,怀疑是因为多次下载的问题,导致一些依赖很难再联系在一块了,因此换了一块Orin NX,系统是Ubuntu20.04进行安装,发现没有什么问题,所以如果出现了很多次问题,在一个系统里,不如换一个系统更加合适。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐