gazebo模型_SLAM组合拳之六 — 创建自定义Gazebo功能包(一)

55b03d8f70c01f1cce724b2c629a10ef.png

SLAM组合拳之六 — 创建自定义Gazebo功能包(一)

Hello 小伙伴们,转眼一月未见,温故知新的我们又来更新组合拳套路了,大家继续学习吧。

温故知新

黄达 86 180-3110-3700

前面几节我们讲了如何在ROS中实现一个简单的SLAM系统,在整个过程中我们使用的是基于LEO机器人的自制Gazebo仿真包来作为仿真环境用以实现功能,大家在开发过程中如果没有实体机器,那么在开发前期使用仿真也是一个不错的选择,但从开发机器人软件的角度来说,最好还是以实机运行的效果为准,毕竟仿真与真实环境还是有很大区别的。

需要注意的是 Gazebo 并不是ROS独有的软件,只是它的ROS接口比较完善,同时它本身就是开源软件因此它与ROS的兼容性也优于其他仿真软件,下面几节我就带大家制作一个简易的 Gazebo 仿真包。

01

Gazebo与RViz的区别

我们知道ROS中的 Gazebo 和 RViz 都可以显示机器人的模型以及运动状态等数据,很多刚接触ROS的小伙伴经常分不清两者的本质区别,只知道看话题数据就用 RViz,仿真就用 Gazebo,所以我先来说说两者的一个区别。

其实 RViz 比较简单,它就是一个用来可视化各类数据的软件,这些数据包括话题,消息,动静态参数甚至自定义的数据等等,同时它支持插件机制,用于做一些简单的交互(包括发布消息,调用 service 和 action 等),大家熟知的 MoveIt 其实就是一个 RViz 的插件。当我们使用RViz可视化slam过程时看到的机器人在地图上的移动其实只是 RViz 监控的 TF tree 中 /map 与机器人的 /base_link 之间相对位置发生了变化,而 RViz 只是将这种变化数据可视化了出来。所以 RViz 中看到的运动都是一种动态数据的可视化。

Gazebo 本质是一个3D物理引擎,类似于一个沙盒世界,遵循着现实世界中的物理定律(包括力的相互作用,惯性等物理元素),它以模拟机器人运动的整个物理环境为目标,因此如果我们有实体机器人用于调试,那么就不需要使用Gazebo,只有在我们没有实机的时候我们可以使用 Gazebo 仿真来模拟实体机器人以观察其在物理环境中的运动情况,而RViz则不受其限制,不管是否仿真都可以可视化数据。最为重要的一点是,对于轮式移动机器人来说,一定要准确设置转动关节,摩擦系数和碰撞模型,如果错误设置碰撞模型,那么机器人可能都无法静止在地面上,它会直接在重力作用下一直往下掉,如果摩擦系数为0,那么你会看到轮子一直转而机器人不会运动,因为轮子没有摩擦力就无法驱动机器人运动,如果转动关节设置错误,那机器人就不会按照对应的控制指令运动。

02

编写简单URDF文件

下面我们以LEO机器人为例,我们知道LEO机器人是一款差速驱动的机器人,其中前面两个为驱动轮,后面两个为从动轮(使用麦轮,无动力驱动,作用类似于万向滚轮),为了方便起见按照下图中所示的规则定义LEO机器人的各个坐标系。

ace8040193a034be7e5635c09c5c84a1.png

根据图中的坐标轴定义,按照基本URDF的编写规则可以得到如下URDF文件:

<link name="base_link"/>

<link name="left_front_link"/>

<link name="right_front_link"/>

<link name="left_rear_link"/>

<link name="right_rear_link"/>

<link name="laser_link"/>
<joint name="left_front_joint" type="continues">

<origin xyz="0 0.145 0" rpy="0 0 0" />

<parent link="base_link"/>

<child link="left_front_link"/>

<axis xyz="0 1 0"/></joint>

<joint name="right_front_joint" type="continues">

<origin xyz=&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值