Skip to content

robomaster-oss/rmua19_gazebo_simulator

Repository files navigation

rmua19_gazebo_simulator

1. 简介

rmua19_gazebo_simulator是基于Gazebo (Ignition 字母版本)的仿真环境,为RoboMaster University AI Challenge 2019中的机器人算法开发提供仿真环境,方便测试AI算法,加快开发效率。

目前rmua19_gazebo_simulator还不完善,仅提供以下功能:

在rmua19标准机器人(rmua19_standard_robot)上增加相关传感器,构建不同机器人模型:

  • rmua19_standard_robot_a:搭载云台相机industrial_camera和搭载激光雷达rplidar_a2,其中相机放置有在yaw轴。
  • rmua19_standard_robot_b:搭载云台相机industrial_camera和搭载激光雷达rplidar_a2,其中相机放置有在pitch轴。

构建RoboMaster University AI Challenge 2019简易场地(models/rmua19_battlefield):

  • 只有围墙

RoboMaster University AI Challenge 2019标准机器人机器人模型(rmua19_standard_robot)位于rmoss_gz_resources

注意:Gazebo (Ignition 字母版本)目前依然处于快速开发期,仿真功能不完善,且可能存在Bug。

2. 基本使用

环境配置

  • ROS2版本要求: Humble (目前处于开发期,基于ROS2最新版本)
  • Gazebo仿真器版本要求: Fortress (目前新版本Gazebo处于开发期)
# install gazebo dependencies
sudo apt-get install ignition-fortress libignition-cmake2-dev ros-humble-ros-gz
# install xmacro (xml macro tool for sdf)
pip install xmacro
# cd src directory of ros2 workspace 
git clone https://github.com/robomaster-oss/rmoss_interfaces -b humble
git clone https://github.com/robomaster-oss/rmoss_core -b humble
git clone https://github.com/robomaster-oss/rmoss_gazebo -b humble
git clone https://github.com/robomaster-oss/rmoss_gz_resources -b humble --depth=1
git clone https://github.com/robomaster-oss/rmua19_gazebo_simulator -b humble
# cd ros2 workspaces
cd ..
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro humble
# cd ros2 workspace
colcon build

启动仿真环境

# ros2 launch rmua19_gazebo_simulator standard_robot_a_test.launch.py 
ros2 launch rmua19_gazebo_simulator standard_robot_b_test.launch.py 
  • 注意:需要点击Gazebo界面上的橙红色的启动按钮

控制机器人移动

ros2 run rmoss_gz_base test_chassis_cmd.py --ros-args -r __ns:=/red_standard_robot1/robot_base -p v:=0.3 -p w:=0.3
#根据提示进行输入,支持平移与自旋
  • 底盘采用mecanum插件控制

控制机器人云台

ros2 run rmoss_gz_base test_gimbal_cmd.py --ros-args -r __ns:=/red_standard_robot1/robot_base
#根据提示进行输入,支持绝对角度控制
  • 云台采用位置PID控制

机器人射击

ros2 run rmoss_gz_base test_shoot_cmd.py --ros-args -r __ns:=/red_standard_robot1/robot_base
#根据提示进行输入
  • 射击功能基于rmoss_gz中的插件ProjectileShooter
  • 注意:目前存在未解决BUG (某些情况下会使得物理引擎错误,造成Gazebo崩溃)

3. 简易竞赛模式1v1

  • 目前测试中,射击功能存在已知BUG,以及可能存在其他未知BUG,请谨慎使用。

运行Gazebo仿真器

ros2 launch rmua19_gazebo_simulator simple_competition_1v1.launch.py 

运行裁判系统

ros2 run rmua19_gazebo_simulator simple_competition_1v1_referee.py 
  • 弹丸伤害为10,每个机器人HP为500,直到HP为0时,裁判系统输出胜利者,程序退出。(可重新运行开始)
  • 通过解析并处理攻击信息/referee_system/attack_info (包括射击者信息以及击中目标信息)实现裁判功能。

控制机器人-ROS2接口

例如,对于red_standard_robot1,有如下ROS2 topic接口使用,可用于机器人控制和感知。(对于standard_robot_blue1同理)

/red_standard_robot1/robot_base/chassis_cmd
/red_standard_robot1/robot_base/gimbal_state
/red_standard_robot1/robot_base/odom
/red_standard_robot1/robot_base/shoot_cmd
/red_standard_robot1/front_camera/image
/red_standard_robot1/rplidar_a2/scan

4. 维护者及开源许可证

Maintainer: Zhenpeng Ge, zhenpeng.ge@qq.com

rmua19_gazebo_simulator is provided under Apache License 2.0.

About

Gazebo Simulator for RoboMaster University AI Challenge 2019

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published