Skip to content

This the the repo containing all stages of the drone competition, including circle crossing, auto flight and FPV racing.

License

Notifications You must be signed in to change notification settings

RoboMaster/IntelligentUAVChampionshipSimulator

Repository files navigation

release note

20241209

  • 修复中央枢纽空气墙问题
  • 修复雷达时间戳不稳定的问题

20241211

  • 修复中央枢纽出入口动力丢失问题
  • 性能优化,改善引擎卡顿导致的imu时钟错乱问题;

自主无人机竞速模拟器使用说明

简介

RMUA2025赛季模拟器

官方测试环境

ros-noetic
ubuntu20.04
NVIDIA RTX3060TI gpu
INTEL I7 12th cpu

注意:若使用神经网络,建议使用双显卡以保证模拟器性能

使用说明

1. 安装Nvidia-Docker

确保已安装 Nvidia 驱动


安装docker

  • sudo apt-get install ca-certificates gnupg lsb-release
  • sudo mkdir -p /etc/apt/keyrings
  • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • sudo apt-get update
  • sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装nvidia-container-toolkit

  • distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
  • curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
  • curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  • sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
  • sudo systemctl restart docker

设置用户组,消除 sudo 限制

  • sudo groupadd docker
  • sudo gpasswd -a $USER docker
  • 注销账户并重新登录使新的用户组生效
  • sudo service docker restart

2. 安装ROS-Noetic

  • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  • sudo apt install curl
  • curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
  • sudo apt update
  • sudo apt install ros-noetic-desktop-full
  • sudo apt install python3-catkin-tools

3. 使用模拟器

本机启动

  • cd /path/to/IntelligentUAVChampionshipSimulator
  • wget https://stg-robomasters-hz-q0o2.oss-cn-hangzhou.aliyuncs.com/RMUA2024121102.zip
  • unzip RMUA2024121102.zip
  • mkdir ~/Documents/AirSim
  • cp settings.json ~/Documents/AirSim
  • 渲染模式 ./run_simulator.sh 123
  • 后台模式 ./run_simulator_offscreen.sh 123
    注意:123 为随机种子参数,不同的种子对应不同的配置
    pic
  • 使用ros查看主题
  • source /opt/ros/noetic/setup.bash
  • rostopic list

Docker启动

  • cd /path/to/IntelligentUAVChampionshipSimulator
  • docker build -t simulator01 .
  • ./run_docker_simulator.sh 123
    注意:Docker仅支持后台模式运行,启动脚本后第一个参数 123 是模拟器的随机种子,可根据需要修改
  • 使用ros查看主题
  • source /opt/ros/noetic/setup.bash
  • rostopic list

ros数据交互

用于获取数据的可订阅的主题

  • 前视相机
    /airsim_node/drone_1/front_left/Scene
    /airsim_node/drone_1/front_right/Scene
  • 后视相机
    /airsim_node/drone_1/back_left/Scene
    /airsim_node/drone_1/back_right/Scene
  • imu数据
    /airsim_node/drone_1/imu/imu
  • 雷达数据
    /airsim_node/drone_1/lidar
  • 无人机状态真值
    /airsim_node/drone_1/debug/pose_gt
  • gps数据(含带误差姿态)
    /airsim_node/drone_1/gps
  • 电机输入PWM信号(0:右前, 1:左后, 2:左前, 3:右后)
    /airsim_node/drone_1/debug/rotor_pwm
  • 起始位姿
    /airsim_node/initial_pose
  • 终点位置
    /airsim_node/end_goal

用于发送指令的主题

  • 速度控制
    /airsim_node/drone_1/vel_cmd_body_frame
  • PWM控制(0:右前, 1:左后, 2:左前, 3:右后)
    /airsim_node/drone_1/rotor_pwm_cmd

可用服务

  • 起飞
    /airsim_node/drone_1/takeoff
  • 降落
    /airsim_node/drone_1/land
  • 重置
    /airsim_node/reset

系统相关参数

无人机系统参数

  • 质量 0.9kg
  • 轴距(电机至机体中心)0.18米
  • 转动惯量 Ixx 0.0046890742, Iyy 0.0069312, Izz 0.010421166
  • 电机升力系数 0.000367717
  • 电机反扭力系数 4.888486266072161e-06
  • 最大转速 11079.03 转每分钟

标定板参数

  • 行数(内点)8
  • 列数(内点)11
  • 方块边长 0.06 米

Q&A

找不到数据类型

使用rqt_topic时发现一些数据类型缺失,需要source官方开发案例教程中basic_dev中的airsim_ros包。具体请参考: https://github.com/RoboMaster/IntelligentUAVChampionshipBase

帧率波动

当帧率波动严重时,可以更换更高性能的显卡。使用3090显卡进行测试,连续运行1个小时,模拟器帧率波动维持在0.5%以下。
也可以关闭不需要的相机降低模拟器性能需求,提升帧率稳定性。 对于本机启动,仅需要把 ~/Documents/AirSim/settings.json 中相应相机配置删除即可关闭该相机。
对于docker启动,需要把 /path/to/IntelligentUAVChampionshipSimulator 中的 settings.json 中相应相机配置删除后重新构建镜像即可。
pic

时钟同步

模拟器时钟与本地时钟存在一定差异,建议使用 IMU 主题传出的时间戳作为全局时钟进行程序设计。

About

This the the repo containing all stages of the drone competition, including circle crossing, auto flight and FPV racing.

Resources

License

Stars

Watchers

Forks

Packages

No packages published