【NEUQ RM SI战队项目开源】gazebo仿真开源

  • 写在前面
  • 演示视频
  • 第一部分:机器人仿真环境
  • 正文:基于gazebo的RM仿真环境
  • 贡献
  • 照片墙

写在前面

一个新冠疫情,打乱了所有队伍的备赛计划,转战云备赛是不得已的选择。今年二月份,我们就开始陆续进行云备赛了。过程中,仿真环境的选择和搭建是必须要过的第一关。我们开发出了一个基于gazebo的rm仿真环境,现在开源给各位,供各位参考。
本文分为两部分,第一部分总结了各类常用的机器人仿真环境,第二部分才是正文。正文包括模型介绍、典型用法和配置步骤。对机器人仿真环境比较熟悉的同学可直接跳至分割线后阅读正文。

演示视频

点击链接:https://v.qq.com/x/page/e31016be5tc.html

第一部分:机器人仿真环境

RM论坛上的仿真主要分为三类,算法仿真、机械仿真、基于游戏引擎的仿真。算法的仿真通常是基于matlab的。Matlab编程简单,能够快速地实现一些简单地想法,但是不如一些有gui的仿真环境直观,而且matlab受限于其解释性的编程语言,运行速度慢,对于大型的程序无能为力。如果搭配一些现有的机器人工具箱,会使仿真直观得多。

matlab中的机器人工具箱:


这里给出机器人工具箱的网址:机器人工具箱
Github项目地址:Github项目
最近在论坛上有一款机械仿真环境很火,那就是admas。通过admas可以检验所设计的机械结构的合理性以及一些动力学特性。
甚至还有大佬用游戏引擎unity开发了一款RM仿真环境。

基于unity的rm仿真环境:

此仿真环境非常适合操作手练习,甚至还支持局域网对战。这里放出链接:https://bbs.robomaster.com/forum.php?mod=viewthread&tid=6101
https://bbs.robomaster.com/forum.php?mod=viewthread&tid=10288
https://bbs.robomaster.com/forum.php?mod=viewthread&tid=9288

除了论坛大佬开源的仿真以外,我们还可以使用一些成熟的机器人仿真软件,如gazebo、webots和V-REP(coppeliasim)。我们最熟悉的可能是gazebo(http://gazebosim.org/),gazebo支持动力学仿真,内置了许多传感器,诸如激光雷达,各种单目、双目以及深度摄像头,还有接触传感器等。在gazebo中,我们可以构建机器人模型,也可以使用内建的模型搭建机器人。不仅如此。Gazebo还支持TCP/IP通信。有人还基于gazebo开发了一个无人机仿真环境Rotors(https://github.com/ethz-asl/rotors_simulator)。
但是,总体来看,我个人认为webots(https://www.cyberbotics.com/)比gazebo更强大一些,维护得也更好,在gazebo已有功能的基础上,webots还支持更多的平台(win, mac, Linux)以及更多的语言(c, c++, python, java, ros, matlab)。V-REP(现更名为coppeliasim)我没有使用过,但就官网(https://www.coppeliarobotics.com/features)提供的信息来看,这个仿真环境似乎也很强大。

coppeliasim介绍:

正文:基于gazebo的RM仿真环境

我们基于gazebo开发了一个RM仿真环境,它具有友好的接口(ROS),有完整的机器人模型和地图模型,而且方便各位二次开发,现在开源给大家。下面我分模型介绍、典型用法和配置步骤三个方面叙述。

模型介绍
内含的机器人模型有步兵和哨兵。步兵的底盘类型为四轮全向,底盘上方是一个二自由度的云台,云台上安装有发射机构。

步兵urdf模型:


步兵坐标系示意图:


步兵上配置有单目摄像头传感器。
哨兵模型相对简单,目前仅能在轨道上正常运动。

哨兵urdf模型:


场地模型包括2V2和步兵竞速射击,都是严格按照手册1:1构建的。

步兵竞速射击场地俯视图:


步兵竞速射击场地:


2v2场地:


步兵竞速射击的场地中,小陀螺和大风车都可以根据给定的规律旋转。

典型用法
这个仿真环境的典型用法分两类,一是代码架构测试,二是算法测试。
代码架构测试是指将不同队员编写的代码嵌入仿真环境中,以检验数据流或接口的正确性。对于第一年参加比赛的新队伍来说,完成第一版代码并不是一件容易的事情,特别是上位机的一些算法。很多时候代码是由多个同学合作完成的,这就需要代码块之间有良好的接口。如果代码是基于ros的,将会大大提升团队合作的效率。在将代码块合并之前,需要对每个代码块分别单独进行测试。每个模块测试无误后,再将其连接到一起,看有没有bug。这个过程可以在此仿真环境中完成。
此仿真环境还可以做一些算法测试。例如,要验证视觉伺服算法的正确性,只需要将对应代码嵌入此仿真环境:仿真摄像头可以生成视频流,以视频流作为视觉伺服的输入。通过观察云台动作,就可以直观地看到是否有bug。更进一步,可以将计算结果与仿真环境的真实数据做比较,以分析算法的各方面性能。此外,还可以用于哨兵定位算法的测试。

配置步骤

首先下载本工程:
git clone https://github.com/bkxcyu/neuq_gazebo_rm.git如果没有安装gazebo,需要安装
sudo apt-get install ros-kinetic-gazebo-ros-pkgs
sudo apt-get install ros-kinetic-gazebo-ros-control接下来安装一些依赖
sudo apt-get update
rospack profile
sudo apt-get install ros-kinetic-position-controllers
sudo apt-get install ros-kinetic-effort-controllers
sudo apt_get install ros-kinetic-joint-state-controller下面进行编译
cd neuq_gazebo_rm
catkin_make
cd neuq_gazebo_rm/src/rm_description/src
chmod u+x move.py
chmod u+x rviz.py如果编译无误了,可运行demo
(若编译遇到问题,可联系杜泽文(duzewen@neuqrm.cn)。加载场地模型和步兵模型demo
roslaunch rm_description test.launch键盘控制demo
roslaunch rm_description gazebo_node.launch另外,还提供了rviz版
roslaunch single_2101t display.launch
roslaunch rm_description rviz_node.launch

更多详细内容参见此git项目的readme文件。
(https://github.com/bkxcyu/neuq_gazebo_rm/tree/master/neuq_gazebo_rm)

贡献

包晓雨:此项目总负责人
万瀚阳:步兵云台关节控制、步兵云台urdf文件。
李斐菲:单目相机、步兵云台urdf文件。
汤伊静:小陀螺和能量机关上色、仿真开源测试。
罗俊宇:步兵云台urdf文件。
张舒羽:步兵竞速与场地射击场地urdf文件、2v2比赛场地urdf文件、模型汇总。
王嘉浩:哨兵底盘urdf、哨兵底盘与云台urdf的整合。
杨克楠:哨兵云台urdf。
杨子悦:哨兵云台设计。
张雨辰:哨兵轨道urdf、哨兵底盘运动控制、汇总哨兵文件,哨兵readme。
杜泽文:步兵底盘urdf文件、汇总步兵文件,步兵底盘控制、rviz仿真、小陀螺和能量 机关关节控制、步兵readme文件。

照片墙

文案汇总:包晓雨 审阅:刘苏程 排版:王涵 NEUQRoboMaster-SI战队 扫描二维码 关注我们

【NEUQ RM SI战队项目开源】gazebo仿真开源相关推荐

  1. 【开源项目分享】用于机器人崎岖地形导航的高程图创建及Gazebo仿真

    简介 该项目是由苏黎世联邦理工学院(自治系统实验室和机器人系统实验室)开发,用于创建以机器人为中心的高程图,以实现崎岖地形的自主导航任务. 项目演示 https://www.bilibili.com/ ...

  2. SI战队人物专访-杜泽文

    SI战队人物专访-杜泽文 本期做客嘉宾 本期采访 写在最后 本期战队成员专访来啦!本期小I采访到的是一位帅气的小哥哥哦,一起来看看吧! 本期做客嘉宾 杜泽文:东北大学秦皇岛分校 控制工程学院自动化专业 ...

  3. 【环境配置】Turtlebot2 激光雷达+深度相机 GAZEBO仿真

    前言 最近老师接了一个项目,做一个机器人仿真环境,我是负责移动机器人这部分的.老师的要求是以Turtlebot2为参考,后面可能涉及实机演示.在仿真的过程中我发现Turtlebot2仿真环境是以Kin ...

  4. 基于ROS搭建简易软件框架实现ROV水下目标跟踪(补1)--gazebo仿真

    项目地址:https://github.com/cabinx/cabin_auv_simulation 鉴于水下机器人调试的复杂性,在仿真环境中对水下机器人进行先期调试能降低调试难度,节约大量的时间成 ...

  5. 教程 | 阿克曼结构移动机器人的gazebo仿真(九)

    第九章.模型替换以及TEB调参技巧 1.前言 上节内容让小车在gazebo仿真环境中实现导航,本节内容重点介绍一下gazebo仿真中的模型替换方法以及TEB调参的技巧. 2.模型替换 阿克曼小车项目从 ...

  6. SI战队人物专访-罗俊宇

    SI战队人物专访-罗俊宇 题外话 本期做客嘉宾 本期采访 写在最后 题外话 为向外界积极展现我校RoBo Master-SI战队,小I从今天起,开始正式营业啦!!! 本版块负责介绍SI战队的团队成员, ...

  7. SI战队人物专访-李斐菲

    SI战队人物专访-李斐菲 本期做客嘉宾 本期采访 写在最后 第三期战队成员专访coming!本期小I邀请到了一位漂亮姐姐哦~ 本期做客嘉宾 李斐菲:东北大学秦皇岛分校 控制工程学院自动化专业 战队职责 ...

  8. 阿克曼结构移动机器人的gazebo仿真(八)

    阿克曼结构移动机器人的gazebo仿真(八) 第八章.实现小车自主导航 0.前言 上一节通过配置小车的里程计,用gmapping算法建了房间的二维栅格地图:这一节通过配置AMCL定位以及move_ba ...

  9. 阿克曼结构移动机器人的gazebo仿真(九)

    阿克曼结构移动机器人的gazebo仿真(九) 第九章.模型替换以及TEB调参技巧 0.前言 上节内容让小车在gazebo仿真环境中实现导航,本节内容重点介绍一下gazebo仿真中的模型替换方法以及TE ...

最新文章

  1. sql int 转string_SQL智能代码补全引擎【sql-code-intelligence】介绍
  2. pp模块中关于物料反冲的探讨
  3. hibernate的懒加载(延迟加载)问题
  4. C语言两个字符串查找最长的公共子串的算法(附完整源码)
  5. [转]25个增强iOS应用程序性能的提示和技巧
  6. 洛谷P1130 红牌
  7. 分布式系统的那些事儿(六) - SOA架构体系
  8. java timezone_Java TimeZone setDefault()方法与示例
  9. jquery获取checkbox是否选中
  10. Traditional industries like notebook computers seem
  11. 25. (附加)二叉树的所有路径(C++版本)
  12. SqlServer三种常用窗口函数
  13. 深入理解Servlet原理
  14. [转帖]变速齿轮的一种实现方法(内有中断门的创建与调用)
  15. 【色彩管理】HSI色彩模式详解
  16. 计算机网络编程(转载)
  17. 深圳保诚后端Java社招面试
  18. 云计算概念:什么是云计算
  19. 智能名片小程序创建名片页的表单校验使用正则表达式整理
  20. Java-Aspose实现Word文字替换(本地储存或浏览器下载)

热门文章

  1. openstack neutron网络模块分析(六)--- 利用neutron-metering-agent 监控l3层流量
  2. 记忆力衰退怎么办吃什么水果能补脑
  3. Github Desktop出现Authentication failed错误的解决方法
  4. 如何才能进阶高级Java程序员?
  5. Mathematics
  6. 数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐?
  7. 【Kubernetes 系列】详解 ConfigMap 九种创建方式
  8. YOTA 3:凭何领衔移动阅读?
  9. android:layout_marginleft的作用,LinearLayout中margin属性小结
  10. VSCode 设置代码格式化