gazebo学习时遇到的问题(一)

最近在学习ros进行仿真模拟,必不可少的要使用到gazebo。在跟随YouTube上一个博主的视频学习从头开始使用gazebo时遇到一系列问题,准备记录下来

(1)尝试使用gazebo_ros生成一个urdf model时卡在Waiting for service /gazebo/spawn_urdf_model命令

在.launch文件中的<launch>标签中添加如下代码行,重新运行即可解决问题

<!-- these are the arguments you can pass this launch file, for example paused:=true -->
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="gui" default="true"/>
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>

<!-- We resume the logic in empty_world.launch -->
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="debug" value="$(arg debug)" />
<arg name="gui" value="$(arg gui)" />
<arg name="paused" value="$(arg paused)"/>
<arg name="use_sim_time" value="$(arg use_sim_time)"/>
<arg name="headless" value="$(arg headless)"/>
<!-- arg name="world_name" value="$(find task_1)/world/tutorial_testing.world"/ -->
</include>

解决问题原贴:https://answers.gazebosim.org//question/3468/problems-to-spawn-an-urdf-model-with-gazebo_ros/

(2)gazebo无法加载.world文件中的模型,表现为加载失败、黑屏、空白世界等现象

可在运行gazebo时加入--verbose参数,查询运行log,如提示[Err] [Visual.cc:3043] No mesh specified,即表明模型加载失败,问题原因表现为在gazebo官网下载model失败,为网络问题。具体解决办法是直接将官网的model下载至本地直接加载,具体方法见https://blog.csdn.net/crp997576280/article/details/102783082,建议直接网盘下载并将模型解压至~/.gazebo/models中。

(3)如何向正在运行的gazebo中实时加入模型

事先写好模型的spawn.launch文件,代码形如下方所示:

<?xml version="1.0" encoding="UTF-8"?>
<launch>
    <param name="robot_description" command="$(find xacro)/xacro.py --inorder '$(find m2wr_description)/urdf/m2wr.xacro'"/>

    <arg name="x" default="0"/>
    <arg name="y" default="0"/>
    <arg name="z" default="0.5"/>

    <node name="m2wr_spawn" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen" args="-urdf -param robot_description -model m2wr -x $(arg x) -y $(arg y) -z $(arg z)"/>
</launch>

若直接roslaunch该文件会出现(1)中的问题,问题的关键就是此文件中的node未启动,而该node会在gazebo运行时自动启动,但是如果直接在命令行中键入 gazebo 来启动gazebo的话,/gazebo/spawn_urdf_model这个service仍然不会启动。

解决办法就是使用 rosrun gazebo_ros gazebo 来代替 gazebo 命令(要提前启动roscore才能使用rosrun),gazebo相关超参仍然有效。

解决问题原贴:https://answers.ros.org/question/276753/urdf-spawn-into-gazebo-world-error/

(4)关于所写python脚本运行时出现import-im6.q16: not authorized `rospy' @ error/constitute.c/WriteImage/1037.           from: can't read /var/mail/sensor_msgs.msg   等等类似的信息

记得在python脚本最前面加上#! /usr/bin/env python 空格一定要记得加!意思是告诉操作系统该由哪个解释器来解释脚本。

解决原贴:https://answers.ros.org/question/306065/error-on-import-ros-packages/

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值