Open LChen-99 opened 1 year ago
文档说是加这个libWindPlugin.so,但是我根本没找到这个动态库
你好,正如教程里面提及的,"libWindPlugin.so"为Gazebo9自带动态共享库,而不是PX4生成的,一般该文件就在环境变量GAZEBO_PLUGIN_PATH的路径中。
如果你想要找寻该文件,可以在根目录下搜索该文件名进行查找。以我的环境为例子,这个动态库处于/usr/lib/x86_64-linux-gnu/gazebo-11/plugins下。(注:我使用的是gazebo11,但是gazebo9是类似的,这并不影响)
你好,正如教程里面提及的,"libWindPlugin.so"为Gazebo9自带动态共享库,而不是PX4生成的,一般该文件就在环境变量GAZEBO_PLUGIN_PATH的路径中。
如果你想要找寻该文件,可以在根目录下搜索该文件名进行查找。以我的环境为例子,这个动态库处于/usr/lib/x86_64-linux-gnu/gazebo-11/plugins下。(注:我使用的是gazebo11,但是gazebo9是类似的,这并不影响)
你好,我成功加入了风插件,但是好像没用产生作用。无人机飞行没有受到影响
你好,正如教程里面提及的,"libWindPlugin.so"为Gazebo9自带动态共享库,而不是PX4生成的,一般该文件就在环境变量GAZEBO_PLUGIN_PATH的路径中。 如果你想要找寻该文件,可以在根目录下搜索该文件名进行查找。以我的环境为例子,这个动态库处于/usr/lib/x86_64-linux-gnu/gazebo-11/plugins下。(注:我使用的是gazebo11,但是gazebo9是类似的,这并不影响)
你好,我成功加入了风插件,但是好像没用产生作用。无人机飞行没有受到影响
也没有找到和风相关的话题
你可以尝试在launch文件中将gazebo config下的verbose标签打开以查看更多信息。可能会有一条关于风插件的err信息提示你是否需要设置一些参数
注意,当您修改之后,建议可以采用QGC令飞机旋停的方式来检测场景中是否有风,检测无人机旋停的姿态即可
你可以尝试在launch文件中将gazebo config下的verbose标签打开以查看更多信息。可能会有一条关于风插件的err信息提示你是否需要设置一些参数
您好,我打开了verbose这是终端的信息,我并没有看到和风插件相关的
[Msg] Loading world file [/home/luochen/PX4_Firmware/Tools/sitl_gazebo/worlds/indoor1_wind.world]
[INFO] [1681738541.824912, 0.000000]: Calling service /gazebo/spawn_sdf_model
[ INFO] [1681738541.834935381]: waitForService: Service [/gazebo/set_physics_properties] is now available.
[INFO] [1681738541.895163, 1814.801000]: Spawn status: SpawnModel: Entity pushed to spawn queue, but spawn service timed out waiting for entity to appear in simulation under the name iris_0
[ERROR] [1681738541.896206, 1814.801000]: Spawn service failed. Exiting.
[ INFO] [1681738541.901278483, 1814.805000000]: Physics dynamic reconfigure ready.
Warning [parser.cc:950] XML Element[parent], child of element[sensor] not defined in SDF. Ignoring[parent]. You may have an incorrect SDF file, or an sdformat version that doesn't support this element.
[ INFO] [1681738542.262027808, 1814.889000000]: Camera Plugin: The 'robotNamespace' param was empty
[ INFO] [1681738542.262528579, 1814.889000000]: Camera Plugin: The 'robotNamespace' param was empty
[ INFO] [1681738542.264648502, 1814.889000000]: Camera Plugin (ns = iris_0)
你可能弄混了一点:风速信息是以gazebo内部的topic类型发布的,而非ROS的消息发布,用rostopic是无法找到的。
首先,你可以通过(比如)在QGC中令无人机起飞并旋停,通过观察无人机的旋停姿态来确认当前场景内部有没有风;
其次,你可以通过在命令行中输入gz topic --list
来查看发布的风速信息话题。
你可能弄混了一点:风速信息是以gazebo内部的topic类型发布的,而非ROS的消息发布,用rostopic是无法找到的。
首先,你可以通过(比如)在QGC中令无人机起飞并旋停,通过观察无人机的旋停姿态来确认当前场景内部有没有风; 其次,你可以通过在命令行中输入
gz topic --list
来查看发布的风速信息话题。
您好,这是悬停时候的姿态,应该是没有风的。 orientation: x: -3.9238795157346366e-05 y: -5.5042287043711194e-05 z: 0.7072721693686018 w: 0.7069413510803392 下面是gz topic --list: /gazebo/default/wind只有这个跟风有关,但是这个话题是没有信息的
/gazebo/default/atmosphere /gazebo/default/cinder_block_wide/link/wrench /gazebo/default/coke_can/link/wrench /gazebo/default/diagnostics /gazebo/default/factory /gazebo/default/factory/light /gazebo/default/grey_tote/link/wrench /gazebo/default/gui /gazebo/default/gzclient_camera/cmd /gazebo/default/iris_0/baro /gazebo/default/iris_0/base_link/wrench /gazebo/default/iris_0/camera/link/irlock /gazebo/default/iris_0/gazebo/command/motor_speed /gazebo/default/iris_0/gps /gazebo/default/iris_0/groundtruth /gazebo/default/iris_0/imu /gazebo/default/iris_0/imu_gazebo/link/imu_sensor/imu /gazebo/default/iris_0/imu_gazebo/link/wrench /gazebo/default/iris_0/imu_link/wrench /gazebo/default/iris_0/joint_cmd /gazebo/default/iris_0/mag /gazebo/default/iris_0/px4flow/link/opticalFlow /gazebo/default/iris_0/rotor_0/wrench /gazebo/default/iris_0/rotor_1/wrench /gazebo/default/iris_0/rotor_2/wrench /gazebo/default/iris_0/rotor_3/wrench /gazebo/default/iris_0/stereo_camera/link/camera/images /gazebo/default/iris_0/stereo_camera/link/wrench /gazebo/default/iris_0/stereo_camera_down/link/camera/images /gazebo/default/iris_0/stereo_camera_down/link/wrench /gazebo/default/iris_0/vision_odom /gazebo/default/iris_0::imu_gazebo::link /gazebo/default/joint /gazebo/default/left/cmd /gazebo/default/light/modify /gazebo/default/log/control /gazebo/default/log/status /gazebo/default/model/info /gazebo/default/model/modify /gazebo/default/physics /gazebo/default/physics/contacts /gazebo/default/playback_control /gazebo/default/pose/info /gazebo/default/pose/local/info /gazebo/default/pose/modify /gazebo/default/request /gazebo/default/response /gazebo/default/right/cmd /gazebo/default/roads /gazebo/default/scene /gazebo/default/selection /gazebo/default/sensor /gazebo/default/skeleton_pose/info /gazebo/default/sky /gazebo/default/undo_redo /gazebo/default/user_camera/joy_pose /gazebo/default/user_camera/joy_twist /gazebo/default/user_camera/pose /gazebo/default/user_cmd /gazebo/default/user_cmd_stats /gazebo/default/visual /gazebo/default/wind /gazebo/default/world_control /gazebo/default/world_stats /gazebo/motor_failure_num /gazebo/performance_metrics /gazebo/server/control /gazebo/world/modify
然后这是我的world文件的前面部分,·我还是没找到哪里出了问题: <?xml version="1.0" ?>
请问你的PX4用的是什么版本?
您好,是1.11版本的 746b3124ab (HEAD -> xtdrone/dev, tag: v1.11.0-beta1) HEAD@{0}: checkout: moving from master to xtdrone/dev
直接使用windy.world也是没有风的状态吗
直接使用windy.world也是没有风的状态吗
我的电脑上没有找到windy.world这个文件 不知道是怎么回事,这个文件是在哪里
默认环境下,世界文件都应该处于路径 ~/PX4_Firmware/Tools/sitl_gazebo/worlds
下。你在进行launch文件的配置时,应该修改其中的world参数为你所需要的世界
你可能弄混了一点:风速信息是以gazebo内部的topic类型发布的,而非ROS的消息发布,用rostopic是无法找到的。
首先,你可以通过(比如)在QGC中令无人机起飞并旋停,通过观察无人机的旋停姿态来确认当前场景内部有没有风; 其次,你可以通过在命令行中输入
gz topic --list
来查看发布的风速信息话题。
你好,我的环境是PX4v1.13.2 ,gazebo9。我是在indoor1.launch中将原来的word换成了windy.world,libgazebo_wind_plugin.so也在。但是rostopic list没有出现教程中的描述的/wind_xtdrone话题,运行gz topic --list有/gazebo/default/wind和/gazebo/default/world_wind这两个话题,但是gz topic好像没有发消息的功能。
你可能弄混了一点:风速信息是以gazebo内部的topic类型发布的,而非ROS的消息发布,用rostopic是无法找到的。 首先,你可以通过(比如)在QGC中令无人机起飞并旋停,通过观察无人机的旋停姿态来确认当前场景内部有没有风; 其次,你可以通过在命令行中输入
gz topic --list
来查看发布的风速信息话题。你好,我的环境是PX4v1.13.2 ,gazebo9。我是在indoor1.launch中将原来的word换成了windy.world,libgazebo_wind_plugin.so也在。但是rostopic list没有出现教程中的描述的/wind_xtdrone话题,运行gz topic --list有/gazebo/default/wind和/gazebo/default/world_wind这两个话题,但是gz topic好像没有发消息的功能。
我更改了windy.world里的参数发现风的插件是在起作用,没有/wind_xtdrone的原因可能是:[Err] [Plugin.hh:212] Failed to load plugin libgazebo_ros_wind_plugin_xtdrone.so: libgazebo_ros_wind_plugin_xtdrone.so: cannot open shared object file: No such file or directory 我发现我的整个目录里没有libgazebo_ros_wind_plugin_xtdrone.so这个文件,但是libgazebo_wind_plugin.so是有的。
你可能弄混了一点:风速信息是以gazebo内部的topic类型发布的,而非ROS的消息发布,用rostopic是无法找到的。 首先,你可以通过(比如)在QGC中令无人机起飞并旋停,通过观察无人机的旋停姿态来确认当前场景内部有没有风; 其次,你可以通过在命令行中输入
gz topic --list
来查看发布的风速信息话题。你好,我的环境是PX4v1.13.2 ,gazebo9。我是在indoor1.launch中将原来的word换成了windy.world,libgazebo_wind_plugin.so也在。但是rostopic list没有出现教程中的描述的/wind_xtdrone话题,运行gz topic --list有/gazebo/default/wind和/gazebo/default/world_wind这两个话题,但是gz topic好像没有发消息的功能。
我更改了windy.world里的参数发现风的插件是在起作用,没有/wind_xtdrone的原因可能是:[Err] [Plugin.hh:212] Failed to load plugin libgazebo_ros_wind_plugin_xtdrone.so: libgazebo_ros_wind_plugin_xtdrone.so: cannot open shared object file: No such file or directory 我发现我的整个目录里没有libgazebo_ros_wind_plugin_xtdrone.so这个文件,但是libgazebo_wind_plugin.so是有的。
“# If BUILD_ROS_PLUGINS set to ON, build plugins that have ROS dependencies
if (BUILD_ROS_PLUGINS) add_library(gazebo_motor_failure_plugin SHARED src/gazebo_motor_failure_plugin.cpp) target_link_libraries(gazebo_motor_failure_plugin ${GAZEBO_libraries} ${roscpp_LIBRARIES}) list(APPEND plugins gazebo_motor_failure_plugin) message(STATUS "adding gazebo_motor_failure_plugin to build")
include_directories( include ${geometry_msgs_INCLUDE_DIRS} ${sensor_msgs_INCLUDE_DIRS} )
target_link_libraries(gazebo_motor_failure_plugin ${catkin_LIBRARIES} ${roscpp_LIBRARIES} ${GAZEBO_libraries} )
# add_library(gazebo_ros_wind_plugin_xtdrone SHARED src/gazebo_ros_wind_plugin_xtdrone.cpp)
# target_link_libraries(gazebo_ros_wind_plugin_xtdrone ${GAZEBO_libraries} ${roscpp_LIBRARIES})
# list(APPEND plugins gazebo_ros_wind_plugin_xtdrone)
# message(STATUS "adding gazebo_ros_wind_plugin_xtdrone to build")
# include_directories(
endif() ”CmakeList中的这段代码有一点问题,我的BUILD_ROS_PLUGINS标志位一直是开着的“option(BUILD_ROS_PLUGINS "Enable building ROS dependent plugins" ON)”,但是它貌似没有进入这个if,我把它提到外面就生效了,最后插件放到indoor1.launch可以生效。
可以看到rostopic list 有/wind_xtdrone出现,然后就可以用rostopic pub /wind_xtdrone geometry_msgs/Twist "linear: x: 7.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0" 发现是有效的。
我在indoor1.world中加入了下面这个
然后gazebo就报错了 [INFO] [1681302260.387756, 0.000000]: Calling service /gazebo/spawn_sdf_model [ INFO] [1681302260.393789246]: waitForService: Service [/gazebo/set_physics_properties] is now available. gzserver: /usr/include/boost/smart_ptr/shared_ptr.hpp:734: typename boost::detail::sp_member_access::type boost::shared_ptr::operator->() const [with T = gazebo::event::Connection; typename boost::detail::sp_member_access::type = gazebo::event::Connection]: Assertion `px != 0' failed.
Service call failed: transport error completing service call: unable to receive data from sender, check sender's logs for details
[ERROR] [1681302261.614085, 0.000000]: Spawn service failed. Exiting.
Aborted (core dumped)
[gazebo-1] process has died [pid 102629, exit code 134, cmd /home/luochen/catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/gzserver -e ode /home/luochen/PX4_Firmware/Tools/sitl_gazebo/worlds/indoor1.world name:=gazebo log:=/home/luochen/.ros/log/45318b32-d92b-11ed-bcdd-d5d4b190bca3/gazebo-1.log].
log file: /home/luochen/.ros/log/45318b32-d92b-11ed-bcdd-d5d4b190bca3/gazebo-1.log
[iris_0/iris_0_spawn-4] process has died [pid 102657, exit code 1, cmd /home/luochen/catkin_ws/devel/lib/gazebo_ros/spawn_model -sdf -param model_description -model iris_0 -x 0 -y -4.5 -z 1 -R 0 -P 0 -Y 1.570796 name:=iris_0_spawn log:=/home/luochen/.ros/log/45318b32-d92b-11ed-bcdd-d5d4b190bca3/iris_0-iris_0_spawn-4.log].
log file: /home/luochen/.ros/log/45318b32-d92b-11ed-bcdd-d5d4b190bca3/iris_0-iris_0_spawn-4*.log