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
    评论
gazebo orbslam3 是指在使用gazebo仿真环境时,结合使用ORBSLAM3 SLAM算法进行定位和地图建立的技术。通过将gazebo仿真环境与ORBSLAM3算法相结合,可以实现机器人在仿真环境中的定位和地图构建。具体操作步骤如下: 1.首先,使用catkin_create_pkg命令创建一个gazebo_test、urdf、xacro、gazebo_ros、gazebo_ros_control和gazebo_plugins等所需功能。 2.按照ubuntu18安装ORB_SLAM3的步骤进行安装,可以参考博客文章《ubuntu18安装ORB_SLAM3_ssssXishu的博客-CSDN博客_orb-slam3安装》。 3.修改orbslam源码,可以参考GitHub上的相关代码《GitHub - electech6/ORB_SLAM3_detailed_comments: Detailed comments for ORB-SLAM3》[3]。 4.在工作空间下编译ORBSLAM3,确保正确安装了所有依赖项,并按照相关指南进行编译。 通过以上步骤,你可以在gazebo仿真环境中使用ORBSLAM3进行定位和地图建立。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM+Gazebo仿真运行ORB-SLAM2+各种相关库...](https://blog.csdn.net/zardforever123/article/details/125044004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [prometheus 无人机平台 gazeboORBSLAM3调试实现rgbd模式](https://blog.csdn.net/Sherry__C/article/details/125071345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值