RoboMaster
标题: 【RM2020-东北大学秦皇岛分校SI战队-gazebo仿真开源】 [打印本页]
作者: NEUQ-SI战队 时间: 2020-6-21 11:59
标题: 【RM2020-东北大学秦皇岛分校SI战队-gazebo仿真开源】
写在前面: 一个新冠疫情,打乱了所有队伍的备赛计划,转战云备赛是不得已的选择。今年二月份,我们就开始陆续进行云备赛了。过程中,仿真环境的选择和搭建是必须要过的第一关。我们开发出了一个基于gazebo的rm仿真环境,现在开源给各位,供各位参考。
本文分为两部分,第一部分总结了各类常用的机器人仿真环境,第二部分才是正文。正文包括模型介绍、典型用法和配置步骤。对机器人仿真环境比较熟悉的同学可直接跳至分割线后阅读正文。
第一部分:机器人仿真环境
RM论坛上的仿真主要分为三类,算法仿真、机械仿真、基于游戏引擎的仿真。算法的仿真通常是基于matlab的。Matlab编程简单,能够快速地实现一些简单地想法,但是不如一些有gui的仿真环境直观,而且matlab受限于其解释性的编程语言,运行速度慢,对于大型的程序无能为力。如果搭配一些现有的机器人工具箱,会使仿真直观得多。
[attach]27098[/attach]
最近在论坛上有一款机械仿真环境很火,那就是admas。通过admas可以检验所设计的机械结构的合理性以及一些动力学特性。
甚至还有大佬用游戏引擎unity开发了一款RM仿真环境。
[attach]27099[/attach]
此仿真环境非常适合操作手练习,甚至还支持局域网对战。这里放出链接:
[attach]27100[/attach]
正文:基于gazebo的RM仿真环境
我们基于gazebo开发了一个RM仿真环境,它具有友好的接口(ROS),有完整的机器人模型和地图模型,而且方便各位二次开发,现在开源给大家。下面我分模型介绍、典型用法和配置步骤三个方面叙述。
模型介绍 内含的机器人模型有步兵和哨兵。步兵的底盘类型为四轮全向,底盘上方是一个二自由度的云台,云台上安装有发射机构。
[attach]27101[/attach]
步兵urdf模型
[attach]27102[/attach]
步兵坐标系示意图
步兵上配置有单目摄像头传感器。哨兵模型相对简单,目前仅能在轨道上正常运动。
[attach]27107[/attach]
哨兵urdf模型
场地模型包括2V2和步兵竞速射击,都是严格按照手册1:1构建的。
[attach]27106[/attach]
步兵竞速射击场地俯视图
[attach]27105[/attach]
步兵竞速射击场地
[attach]27104[/attach]
2v2场地图
步兵竞速射击的场地中,小陀螺和大风车都可以根据给定的规律旋转。
典型用法 这个仿真环境的典型用法分两类,一是代码架构测试,二是算法测试。
代码架构测试是指将不同队员编写的代码嵌入仿真环境中,以检验数据流或接口的正确性。对于第一年参加比赛的新队伍来说,完成第一版代码并不是一件容易的事情,特别是上位机的一些算法。很多时候代码是由多个同学合作完成的,这就需要代码块之间有良好的接口。如果代码是基于ros的,将会大大提升团队合作的效率。在将代码块合并之前,需要对每个代码块分别单独进行测试。每个模块测试无误后,再将其连接到一起,看有没有bug。这个过程可以在此仿真环境中完成。
此仿真环境还可以做一些算法测试。例如,要验证视觉伺服算法的正确性,只需要将对应代码嵌入此仿真环境:仿真摄像头可以生成视频流,以视频流作为视觉伺服的输入。通过观察云台动作,就可以直观地看到是否有bug。更进一步,可以将计算结果与仿真环境的真实数据做比较,以分析算法的各方面性能。此外,还可以用于哨兵定位算法的测试。
配置步骤 首先下载本工程:
如果没有安装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
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文件。
贡献
包晓雨:gazebo仿真总负责人,仿真开源总负责人,开源文章。
万瀚阳:步兵云台关节控制、步兵云台urdf文件。
李斐菲:单目相机、步兵云台urdf文件。
汤伊静:小陀螺和能量机关上色、仿真开源测试。
罗俊宇:步兵云台urdf文件。
张舒羽:步兵竞速与场地射击场地urdf文件、2v2比赛场地urdf文件、模型汇总。
王嘉浩:哨兵底盘urdf、哨兵底盘与云台urdf的整合。
杨克楠:哨兵云台urdf。
杨子悦:哨兵云台设计。
张雨辰:哨兵轨道urdf、哨兵底盘运动控制、汇总哨兵文件,哨兵readme。
杜泽文:步兵底盘urdf文件、汇总步兵文件,步兵底盘控制、rviz仿真、小陀螺和能机关关节控制、步兵readme。
照片墙
[attach]27103[/attach]
作者: 雾之湖的小球 时间: 2020-6-21 12:55
tqdl
作者: xwj 时间: 2020-6-21 14:42
着实厉害
作者: 不翻车 时间: 2020-6-21 18:32
牛了啊,强
作者: 雾之湖的小球 时间: 2020-6-21 18:44
机械人不是很懂这方面的工作,不过还是说一个小点
现在2V2地图更新了,省赛时候的基地已经换成了前哨站
作者: 1335823722 时间: 2020-6-21 19:04
tql tql tql
作者: dzw 时间: 2020-6-21 21:19
支持支持
作者: 万万!小雏鹰 时间: 2020-6-21 21:35
哥nb!!!!!!!!!!!!!
欢迎光临 RoboMaster (https://bbs.robomaster.com/) |
Powered by Discuz! X3.2 |