1

Gazebo使用心得

 1 year ago
source link: https://charon-cheung.github.io/2023/05/04/ROS/ROS%E6%9C%BA%E5%99%A8%E4%BA%BA/Gazebo%E4%BD%BF%E7%94%A8%E5%BF%83%E5%BE%97/#xacro
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Gazebo使用心得 | 沉默杀手

Gazebo使用心得
2023-05-04|ROSROS机器人|
Word count: 598|Reading time: 2 min

Gazebo不好上手,费了一番功夫终于熟悉了,内容太多,只记录注意事项。

Gazebo里用的是 前x 左y 上z的右手坐标系 ,gazebo的栅格范围是20mX20m

启动simple_world.launch,然后在Gazebo里添加一个圆柱体,保存覆盖simple.world文件。再次启动时,报错 SpawnModel: Failure - model name sunny already exist. [Spawn service failed. Exiting. 和 [spawn_urdf-6] process has died

网上说的方法没能解决,也不能重命名model,修改simple.world无效。 最后删除了<node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf" args="-urdf -model sunny -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" /> 解决问题。

urdf 和 xacro

urdf.xacro文件里,<link name="base_link">代表机器人的主体。<geometry> <box size="0.4 0.39 0.5" />是尺寸。

gazebo插件,可以简单理解为就是连接gazebo和ros的一个桥梁,一边插件通过gazebo的api来控制仿真环境的机器人关节等数据,一边通过关节数据通过运动学模型生成里程计、雷达的scan、image等类似的信息

solidworks生成urdf

solidworks to urdf安装后,如果在solidworks里找不到,就安装最新版的,不用管版本是否对应。

solidworks只生成的URDF文件,没有xacro文件. URDF文件做一些简单修改可保存为xacro,注意:

  1. jointtype="fixed",应当为continuous
  2. joint的某些参数值错误,导致车加载差速模型后,运动错误

xacro

xacro里面的模型仍然是urdf模型,有如下变化:

  1. 创建宏定义
  2. 提供可编程接口:常量, 变量, 数学计算, 条件语句

启动Gazebo时,机器人模型的tf关系不完整,即使xacro文件正确。还需要添加joint_state_publisherrobot_state_publisher

设置雷达时,看情况决定是否需要可视化

<sensor type="ray" name="lds_lfcd_sensor">
<pose>0 0 0 0 0 0</pose>
<visualize>false</visualize>

Gazebo默认的障碍物质量轻,车撞上之后会把障碍物推开。改变density选项为铁,则不会推动障碍物。

在Gazebo world中用以下方式加载模型时:

<include>
<uri>model://one_building</uri>
</include>


要让Gazebo能够找到uri中的自建model,需要将自己的model路径加入环境变量, export GAZEBO_MODEL_PATH=~/<path>/my_package/models:${GAZEBO_MODEL_PATH}


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK