CERLAB无人机自主框架: 1-环境搭建

本文介绍了CERLAB无人机自主框架,包括其包含的模块如模拟器、感知、映射等,提供详细的安装步骤和各种自主飞行任务的示例,如起飞、跟踪、导航和探索。
摘要由CSDN通过智能技术生成

前言:更多更新文章详见我的个人博客主页【MGodmonkeyの世界
如果原项目仓库有问题的可以克隆我修改完之后的仓库(入场券一个star🫡):https://github.com/MGod-monkey/CERLAB-UAV-Autonomy

描述:欢迎来到CERLAB无人机自主框架,这是一个用于自主无人飞行器 (UAV) 的多功能模块化框架。该框架包括不同的组件 (模拟器,感知,映射,规划和控制),以实现自主导航,未知探索和目标检查。

视频演示: YouTube, BiliBili

【CMU】CERLAB-UAV-Autonomy: 空中机器人研发框架

1.模块介绍

autonomous_flight: 集成了用于各种任务的所有其他模块的自主飞行包。详细信息
global_planner: 自主机器人的全球航点规划器库。详细信息
map_manager: 自主机器人的3D映射库。详细信息
onboard_detector: 自主机器人的动态障碍物检测和跟踪算法。详细信息
remote_control: Rviz配置和启动文件,便于可视化。详细信息
time_optimizer: 自主机器人的最优轨迹时间分配库。详细信息
tracking_controller: 自主机器人的轨迹跟踪控制器。详细信息
trajectory_planner: 自主机器人的轨迹规划库。详细信息
uav_simulator: 基于轻型Gazebo/ROS的无人机模拟器。详细信息

2.安装指引

该工程已经在带有ROS MelodicUbuntu 18.04和带有ROS NoeticUbuntu 20.04上进行了测试,它取决于ROS包: octomapmavrosvision_msgs。使用以下命令安装软件包:

# step1: 安装依赖
sudo apt install ros-${ROS_DISTRO}-octomap* && sudo apt install ros-${ROS_DISTRO}-mavros* && sudo apt install ros-${ROS_DISTRO}-vision-msgs
cd /opt/ros/noetic/lib/mavros
sudo ./install_geographiclib_datasets.sh

# step 2: 克隆工程到工作空间
cd ~/catkin_ws/src
git clone --recursive https://github.com/Zhefan-Xu/CERLAB-UAV-Autonomy.git

# 可选: 切换到autonomous_flight的模拟分支
# 默认分支用于实际飞行和PX4模拟
cd ~/catkin_ws/src/CERLAB-UAV-Autonomy/autonomous_flight
git checkout simulation

# step 3: 编译
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
# 一定一定一定要source下面这条啊!!!血的教训,控制不了就是因为没有source这个
source ~/catkin_ws/src/CERLAB-UAV-Autonomy/uav_simulator/gazeboSetup.bash

3.PX4仿真&实飞

该CERLAB无人机框架自带两个仿真模拟器,autonomous_flightPX4仿真,如果需要切换autonomous_flight仿真,则需要通过上面的方式切换分支

自主起飞选项

  • Takeoff/Hovering: 起飞和悬停在指定高度。
  • Takeoff/Tracking Circle: 起飞和跟踪具有给定半径和速度的圆形轨迹。
  • Navigation: 静态环境中的自主导航。
  • Dynamic Navigation: 动态环境中的自主导航。
  • Inspection (Octomap): 使用Octomap的自主表面检查。
  • Inspection (Dynamic Map): 使用动态地图进行自主表面检查。
  • Dynamic Exploration: 未知和动态环境中的自主探索。

3.1安装PX4仿真环境

环境安装参考从0入门自主空中机器人-4-【PX4与Gazebo入门】 | MGodmonkeyの世界

如果通过修改.bashrc来更新环境变量,请确保PX4环境路径在source ~/catkin_ws/devel/setup.bash下面,否则将会报错

3.2运行Demo

首先启动无人机模拟器,您应该能够在预定义的gazebo中看到四轴飞行器。

该项目中有两种仿真器,一个是PX4仿真,即控制通过PX4固件控制,一个是自定义控制仿真,默认克隆下来代码的是PX4仿真分支

# 启动PX4仿真
roslaunch uav_simulator px4_start.launch

若首次启动gazebo仿真黑屏很久,则是加载模型过久,可以提前下载模型到本地

cd ~/.gazebo/
mkdir -p ~/.gazebo/models # 如果models目录存在,则不需要创建
cd ~/.gazebo/models/

# 下载模型并解压
wget http://file.ncnynl.com/ros/gazebo_models.txt
wget -i gazebo_models.txt
ls model.tar.g* | xargs -n1 tar xzvf

a. 简单起飞和悬停 Takeoff/Hovering:

rosrun autonomous_flight takeoff_and_hover_node  # takeoff at 1.0 meter height

b. 起飞和跟踪一圈 Takeoff/Tracking Circle:

roslaunch autonomous_flight takeoff_and_track_circle.launch  # takeoff and tracking a circular trajectory

c. 静态环境导航 Navigation:

roslaunch remote_control navigation_rviz.launch 
roslaunch autonomous_flight navigation.launch # 新建一个窗口来运行这个

d. 动态环境导航 Dynamic Navigation:

roslaunch remote_control dynamic_navigation_rviz.launch   
roslaunch autonomous_flight dynamic_navigation.launch # 新建一个窗口来运行这个

e. 使用octomap进行静态环境检查 Inspection (Octomap):

roslaunch octomap_server octomap_mapping.launch # 请牢记为 ros 主题/转换修改参数
roslaunch autonomous_flight inspection.launch

f. 使用动态地图进行动态环境检查 Inspection (Dynamic Map):

roslaunch autonomous_flight dynamic_inspection.launch    # autonomous surface inspection

g. 未知和动态环境探索 Dynamic Exploration:

roslaunch remote_control exploration_rviz.launch  
roslaunch autonomous_flight dynamic_exploration.launch # 新建一个窗口来运行这个

注:

PX4仿真下无法控制的情况下

  • 启动仿真,打开QGC地面站,在参数中搜索COM_RCL_EXCEPT

  • COM_RCL_EXCEPT参数改为4并保存

在这里插入图片描述

3.3参数调整

所有参数都在autonomous_flight/cfg文件夹中。例如,动态导航的参数可以在autonomous_flight/cfg/dynamic_navgation/*.yaml中找到

  • 32
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MGodmonkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值