Development of applications related to closed-loop control requires either testing on the field or on a realistic simulator, with the latter being more convenient, inexpensive, safe, and leading to shorter development cycles. To address that need, the present work introduces MVSim, a simulator for multiple vehicles or robots capable of running dozens of agents in simple scenarios, or a handful of them in complex scenarios. MVSim employs realistic physics-grounded friction models for tire-ground interaction, and aims at accurate and GPU-accelerated simulation of most common modern sensors employed in mobile robotics and autonomous vehicle research, such as depth and RGB cameras, or 2D and 3D LiDAR scanners. All depth-related sensors are able to accurately measure distances to 3D models provided by the user to define custom world elements. Efficient simulation is achieved by means of focusing on ground vehicles, which allows the use of a simplified 2D physics engine for body collisions while solving wheel-ground interaction forces separately. The core parts of the system are written in C++ for maximum efficiency, while Python, ROS 1, and ROS 2 wrappers are also offered for easy integration into user systems. A custom publish/subscribe protocol based on ZeroMQ (ZMQ) is defined to allow for multiprocess applications to access or modify a running simulation. This simulator enables and makes easier to do research and development on vehicular dynamics, autonomous navigation algorithms, and simultaneous localization and mapping (SLAM) methods.
翻译:闭环控制相关应用的开发需要在实地或逼真的仿真器上进行测试,后者更为便捷、廉价、安全且能缩短开发周期。为满足这一需求,本文提出MVSim——一种支持多车辆或机器人仿真的仿真器,可在简单场景中运行数十个智能体,或在复杂场景中运行少量智能体。MVSim采用基于物理的轮胎-地面相互作用的真实摩擦模型,并针对移动机器人和自动驾驶车辆研究中最常用的现代传感器(如深度相机、RGB相机、二维/三维激光雷达扫描仪)实现精确且GPU加速的仿真。所有深度相关传感器可精确测量用户定义的三维模型(用于构建自定义世界元素)的距离。通过聚焦地面车辆实现高效仿真,允许使用简化的二维物理引擎处理车身碰撞,同时分别求解车轮-地面相互作用力。系统核心部分采用C++编写以最大化效率,同时提供Python、ROS 1和ROS 2封装接口以便用户系统集成。基于ZeroMQ(ZMQ)定义了自定义发布/订阅协议,支持多进程应用访问或修改正在运行的仿真。该仿真器促进并简化了车辆动力学、自主导航算法及同步定位与地图构建(SLAM)方法的研究与开发。