多机器人系统小组是布拉格捷克技术大学的一个机器人实验室。我们专注于多旋翼直升机,并专门为它们开发了这种控制、估计和仿真系统。我们认为现实世界和可复制的实验应该支持机器人技术的出色研究和科学研究。因此,我们的平台旨在允许对规划、控制、估计、计算机视觉、跟踪等方法进行安全的现实实验验证。
⚠️ 请注意:此自述文件需要修改。MRS无人机系统1.5正在发布,此页面需要更新。请记住,此页面上的信息可能无效。查看此WIP Google 文档以了解最新消息和更改。
注意: MRS UAV 系统 v1.5 仍处于开发中,文档正在进行维护(Issue#169)。您可以在此处WIP Google 文档中找到更改和新说明。欢迎任何反馈(您可以使用此存储库中的问题或对 Google 文档发表评论)!
该系统是
- 建立在机器人操作系统Noetic之上,
- 意味着完全在配套计算机上执行,
- 可以控制欠驱动多旋翼直升机,
- 包含控制、状态估计、绘图和规划管道。
主要文档来源位于: https: //ctu-mrs.github.io/。然而,该网站只触及了其应包含内容的表面(我们知道这一点)。我们的系统是一个以研究为导向的平台,并且发展迅速。我们的大多数用户要么是研究人员(已经了解该平台),要么是新生(可能不了解 ROS)。为这样的受众维护最新的文档是一项艰巨的工作,因为我们主要是在将系统用于我们的研究时开发该系统。因此,我们的目标是教育学生查看软件包(每个软件包都包含自己的自述文件),探索启动文件,并能够阅读我们努力保持可读性的代码。
控制和估计系统在文章doi.org/10.1007/s10846-021-01383-5,pdf中描述:
Baca, T., Petrlik, M., Vrba, M., Spurny, V., Penicka, R., Hert, D., and Saska, M.,
"The MRS UAV System: Pushing the Frontiers of Reproducible Research, Real-world Deployment, and
Education with Autonomous Unmanned Aerial Vehicles", J Intell Robot Syst 102, 26 (2021).
- 安装机器人操作系统(Noetic):
curl https://ctu-mrs.github.io/ppa-unstable/add_ros_ppa.sh | bash
sudo apt install ros-noetic-desktop-full
-
根据http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment配置你的ROS环境
-
选择您要安装的 MRS 无人机系统版本。
对于稳定版本,添加稳定的 PPA:
curl https://ctu-mrs.github.io/ppa-stable/add_ppa.sh | bash
对于不稳定(每夜构建)的系统,添加不稳定的 PPA:
curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash
- 安装MRS无人机系统:
sudo apt install ros-noetic-mrs-uav-system-full
- 启动示例 Gazebo 模拟会话:
roscd mrs_uav_gazebo_simulation/tmux/one_drone ./start.sh
请点击此链接了解如何使用 Singularity 运行我们的系统。
本教程假设您已使用上述命令安装了 MRS 无人机系统。
- 设置catkin工作区:
source /opt/ros/noetic/setup.bash # source the general ROS workspace so that the local one will extend it and see all the packages
mkdir -p ~/workspace/src && cd ~/workspace # create the workspace folder in home and cd to it
catkin init -w ~/workspace # initialize the new workspace
# setup basic compilation profiles
catkin config --profile debug --cmake-args -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17 -Og' -DCMAKE_C_FLAGS='-Og'
catkin config --profile release --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17'
catkin config --profile reldeb --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17'
catkin profile set reldeb # set the reldeb profile as active
- 您可以重新利用我们的示例之一作为起点(可选):
# it is good practice to not clone ROS packages directly into a workspace, so let's use a separate directory for this
git clone [email protected]:ctu-mrs/mrs_core_examples.git ~/git/mrs_core_examples # clone this repository (recommended, requires private key on Github)
# git clone https://github.com/ctu-mrs/mrs_core_examples.git ~/git/mrs_core_examples # if you do not have a private key set up on Github, you can use https instead of ssh
export NEW_PACKAGE=replaceme # fill the NEW_NAME variable with your desired name of the new package (no spaces)
cp -r ~/git/mrs_core_examples/cpp/waypoint_flier ~/git/$NEW_PACKAGE # copy an example package (e.g. the waypoint_flier)
cp ~/git/mrs_core_examples/repurpose_package.sh ~/git/$NEW_PACKAGE # copy the repurpose_package.sh script to the new package
cd ~/git/$NEW_PACKAGE && ./repurpose_package.sh example_waypoint_flier $NEW_PACKAGE --camel-case # use the script to replace all occurences of the old name
- 将您的包链接到工作区并构建它(下面的代码假设您设置了变量
NEW_PACKAGE
):
ln -s ~/git/$NEW_PACKAGE ~/workspace/src # create a symbolic link of the package to the workspace
cd ~/workspace/src && catkin build $NEW_PACKAGE # build the package within the workspace
- 现在,您可以使用新包:
source ~/workspace/devel/setup.bash # source the workspace to see the packages within (if you don't use bash, source the appropriate script instead)
roscd $NEW_PACKAGE # now ROS knows about your new package and you can roscd to it
注意:建议将source ~/workspace/devel/setup.bash
命令添加到您的命令中~/.bashrc
,以便在每个新工作区中自动执行。
- 为您的新包创建一个远程包(取决于您的 git 服务器)并推送到它:
cd ~/workspace/src/$NEW_PACKAGE && git add . && git commit -m "initial commit" # create the first commit in the new repository
git remote add origin <your-new-remote> # replace <your-new-remote>
git push --set-upstream origin master # push your initial commit
注意:在开发过程中不要忘记git commit
git push
定期!
主要元包 | 内容 | 存储库 | 包裹 |
---|---|---|---|
MRS无人机系统 | 无人机核心及无人机模块 | mrs_uav_system | ros-noetic-mrs-uav-system |
MRS 无人机系统 - 完整版 | 全部如下 | mrs_uav_system | ros-noetic-mrs-uav-system-full |
元包 | 存储库 | 包裹 |
---|---|---|
无人机核心 | mrs_uav_core | ros-noetic-mrs-uav-core |
无人机模块 | mrs_uav_模块 | ros-noetic-mrs-uav-modules |
Octomap 测绘+规划 | mrs_octomap_mapping_planning | ros-noetic-mrs-octomap-mapping-planning |
ALOAM核心 | mrs_aloam_core | ros-noetic-mrs-aloam-core |
LIO-SAM核心 | mrs_liosam_core | ros-noetic-mrs-liosam-core |
赫克托·科尔 | mrs_hector_core | ros-noetic-mrs-hector-core |
OpenVINS 核心 | mrs_open_vins_core | ros-noetic-mrs-open-vins-core |
模拟器 | 存储库 | 包裹 |
---|---|---|
凉亭模拟 | mrs_uav_gazebo_simulation | ros-noetic-mrs-uav-gazebo-simulation |
MRS模拟 | mrs_多旋翼_模拟器 | ros-noetic-mrs-multirotor-simulator |
葛蓓亚模拟 | mrs_uav_coppelia_simulation | ros-noetic-mrs-uav-coppelia-simulation |
虚幻模拟 | mrs_uav_unreal_simulation | ros-noetic-mrs-uav-unreal-simulation |
硬件API插件 | 存储库 | 包裹 |
---|---|---|
PX4 API | mrs_uav_px4_api | ros-noetic-mrs-uav-px4-api |
大疆特洛API | mrs_uav_dji_tello_api | ros-noetic-mrs-uav-dji-tello-api |
例子 | 存储库 | 构建状态 |
---|---|---|
核心示例 | mrs_core_examples | |
计算机视觉示例 | mrs_computer_vision_examples | |
Gazebo 定制无人机示例 | mrs_gazebo_custom_drone_example |
构建状态(Buildfarm)
我们利用验收测试来确定系统的可发布性并自动发布系统。无论下面的测试和危险信号的状态如何,我们系统的稳定版本都应该可以安装并始终工作。
稳定的 | 测试 | 不稳定 |
---|---|---|
相对。候选人 | 不稳定 | 测试覆盖率 | |
---|---|---|---|
稳定的 | 发布候选 | 不稳定 | |
---|---|---|---|
MRS ROS 套餐 | |||
第三方 ROS 包 | |||
非 ROS 包 |
稳定的 | 不稳定 | |
---|---|---|
MRS ROS 套餐 | ||
第三方 ROS 包 | ||
非 ROS 包 |
MRS 无人机系统已针对 MRS 运营的以下无人机平台进行了预先配置。无人机平台可以从我们的合作伙伴公司Fly4Future购买。
模型 | 模拟 | 真正的无人机 |
---|---|---|
大疆 f330 | ![]() |
![]() |
大疆 f450 | ![]() |
![]() |
霍利布罗 x500 | ![]() |
![]() |
大疆f550 | ![]() |
![]() |
塔罗牌t650 | ![]() |
![]() |
遥控无人机 m690 | ![]() |
![]() |
纳基二号 | ![]() |
![]() |
我们不保证随时向后兼容。该平台正在根据 MRS 集团的需求不断发展。可以进行与用户的本地配置、模拟世界、tmux 会话等不兼容的更新。但是,当我们更改需要用户操作来保持兼容性的内容时,我们将在此存储库中创建一个标记为users-read-的问题我。单击此页面右上角的“观看”按钮订阅此存储库更新和问题。需要用户操作的最新更改:
- 现在:正在进行中的 MRS 无人机系统 1.5: 许多变化
- 2023 年 1 月 17 日:px4 固件 v1.13.2 更新
- 2022 年 3 月 8 日:mrs_lib::Transformer 接口更新
- 2021 年 12 月 9 日:不再使用 --march=native 进行构建
- 2020 年 12 月 25 日:更新了控制器界面,更新了推力曲线参数化
- 2020年12月15日:模拟无人机产卵机制重做,Noetic更新
- 2020 年 11 月 12 日:Gazebo 世界中的 GPS 坐标需要更改
- 2020 年 11 月 12 日:需要在模拟会话中启用测距仪融合
本软件由版权所有者和贡献者“按原样”提供,不承担任何明示或默示的保证,包括但不限于适销性和特定用途适用性的默示保证。在任何情况下,版权持有者或贡献者均不对任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于采购替代商品或服务;使用、数据或利润损失;或其他损失)承担责任。或业务中断),无论是何种原因造成的,并且基于任何责任理论,无论是合同责任、严格责任还是侵权行为(包括疏忽或其他),均因使用本软件而产生,即使已被告知可能发生此类损害。