从0入门自主空中机器人-3-【环境与常用软件安装】

关于本课程:

本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装机载电脑环境设置代码部署、实机实验等全套详细流程,带你从0开始,组装属于自己的自主无人机,并让它可以在未知的环境中自由避障穿行。

本次课程的重心主要落在自主空中机器人的搭建、代码部署及调试上,关于自主空中机器人的一些理论基础,例如动力学模型路径搜索,轨迹规划,地图构建等内容。

课程视频

B站:【完结】从0入门自主空中机器人 | 开源 | 浙江大学Fast-Lab

深蓝学院:从0入门自主空中机器人

相关源码

GitHub:https://github.com/ZJU-FAST-Lab/Fast-Drone-250

Gitee:https://gitee.com/pn_code/Fast-Drone-250

1. 机载电脑环境安装

机载电脑推荐环境

系统:Ubuntu20.04 LST

ROS1:noetic

ROS2:foxy

说明:ROS1和ROS2可以安装在同一个系统,但需要进行一点配置,见【ROS1和ROS2的共存问题】

目前很多算法,包括本教程都是基于ROS1的版本,但ROS2对比ROS1优势很大,而且ROS1目前已经宣布将会在2023年停止更新,因此ROS2已经是大众所趋,建议学有余力的同学在学完ROS1后可以顺带连ROS2也一起学了

1.1 Ubuntu安装

视频教程如下:

  • 镜像站地址: http://mirrors.aliyun.com/ubuntu-releases/20.04/ 下载 ubuntu-20.04.4 desktop-amd64.iso
  • 烧录软件UltraISO官网:https://cn.ultraiso.net/
  • 分区设置:
    • **EFI系统分区(主分区)**512M
    • **交换空间(逻辑分区)**16000M(内存大小的两倍)
    • **挂载点/(主分区)**剩余所有容量

教程中推荐笔记本上也安装Ubuntu,但实际用下来并不推荐安装Ubuntu在笔记本上,很多软件Windows也有,而且笔记本的作用主要就是编辑并发送代码文件到机载电脑上,用VScode+MobaXterm+ssh+nomachine即可

1.2 ROS安装

推荐使用鱼香ros的一键安装脚本:一行代码搭建机器人开发环境(ROS/ROS2/ROSDEP)

wget http://fishros.com/install -O fishros && . fishros

开源地址:https://github.com/fishros/install
问题汇总:一键安装 | 鱼香ROS (fishros.org.cn)

更多ROS的资源及教程参考:ROS资源汇总 | MGodmonkeyの世界

2. 必备软件安装

2.1 realsense驱动安装(RGB-D相机)

参考:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md

  1. 添加秘钥
sudo apt update
sudo apt-get install apt-transport-https
sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
  1. 添加安装源
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update

以下是README.pdf中的方法

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
  1. 安装包
# 下面两个必装
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
sudo apt-get install ros-noetic-realsense2-camera
# 下面两个可选,主要是开发调试用
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg
  1. 测试
realsense-viewer

通过realsense-viewer的指令来检查深度相机是否正确安装并显示

2.2 MAVROS

  1. 介绍

MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控,飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX4各模块间传递消息使用,也可以反过来从uORB消息一直到ROS话题。

代码示例看MAVROS Offboard control example就好了,讲得很清楚。

  1. 安装
sudo apt-get install ros-noetic-mavros   # 这里的noetic是ros的版本,其他版本自行更换名称
cd /opt/ros/noetic/lib/mavros
sudo ./install_geographiclib_datasets.sh

2.3 git、gcc、g++、python与make

sudo apt install git			# git
sudo apt install build-essential # gcc、g++
sudo apt install make			# make
sudo apt install python3		# python3

检查版本

git --version
gcc --version
g++ --version
make --version
python3 --version

2.4 ceres、glog与ddyanmic-reconfigure

  • 介绍

    • ceres是什么
      Ceres Solver是一个开源**C++**库,用于建模和解决大型复杂的优化问题。它可以用于解决具有边界约束和一般无约束优化问题的非线性最小二乘问题。它是一个成熟,功能丰富且高性能的库。Ceres Solver是谷歌2010就开始用于解决优化问题的C++库,2014年开源。在Google地图,Tango项目,以及著名的SLAM系统OKVIS和Cartographer的优化模块中均使用了Ceres Solver。

    • glog是什么

      gloggoogle出品的c++日志库,提供了很多非常不错的功能,例如日志分等级打印条件打印日志格式化日志文件滚动大小等。

    • ddynamic-reconfigure是什么

      ddynamic-reconfigure是一个ROS软件包,它提供了一个动态重新配置的框架,可以在运行时修改ROS节点的参数。它可以帮助用户在
      不停止节点的情况下,实时地调整节点的参数,从而优化节点的性能。

  • 下载并解压3rd_party.zip

wget https://gitee.com/pn_code/Fast-Drone-250/blob/master/3rd_party.zip
unzip 3rd_party.zip
  • 编译安装
cd ./glog
sudo chmod 777 ./autogen.sh
sudo chmod 777 ./configure 
sudo ./autogen.sh && sudo ./configure && sudo make install
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3 libgflags-dev libgoogle-glog-dev libgtest-dev
cd ../ceres-solver-2.0.0rc1
mkdir build
cd build
cmake ..
sudo make -j4
sudo make install
sudo apt-get install ros-noetic-ddynamic-reconfigure

这里的libcxsparse3如果有错误,参考下面这篇博客【安装Ceres相关依赖时libcxsparse3.1.2报错_安装ceres相关依赖项时显示找不到_振华OPPO的博客-CSDN博客】

2.4 ego-plannner

参考:ZJU-FAST-Lab/ego-planner (gitee.com)的**Readme.md**中的说明

  • 安装uav_simulator需要的Armadillo
sudo apt-get install libarmadillo-dev
  • 下载源码

    From github

git clone https://github.com/ZJU-FAST-Lab/ego-planner.git

Or from gitee

git clone https://gitee.com/iszhouxin/ego-planner.git
  • 编译源码
cd ego-planner
catkin_make -DCMAKE_BUILD_TYPE=Release
  • 执行

ego-planner文件夹的一个终端中,打开rviz进行可视化和交互

source devel/setup.bash
roslaunch ego_planner rviz.launch

ego-planner文件夹的另一个终端中,打开仿真

source devel/setup.bash
roslaunch ego_planner run_in_sim.launch

3. 常用软件安装

  • vscode
    • 前往【vscode官网】下载Linux x64 deb
    • 使用sudo apt install ****.deb进行安装
  • Terminator
    • 多窗口命令行终端
    • 使用sudo apt install terminator进行安装
  • Plotjuggler
    • 可视化时间时序的工具
    • 使用sudo apt install ros-noetic-plotjuggler ros-noetic-plotjuggler-ros进行安装
    • 使用rosrun plotjuggler plotjuggler进行查看
  • Net-tools
    • 网络工具包,用于查看linux的IP地址
    • 使用sudo apt install net-tools进行安装
    • 使用ifconfig进行查看IP地址
  • ssh
    • 使用sudo apt install openssh-server进行安装
    • 使用ssh终端等工具连接上机载电脑

以上工具的使用方式请自行前往度娘搜索

以上工具的阿里云盘下载地址:【下载入口】

{% pdf https://mybog.s3.bitiful.net/ros/word/readme.pdf %}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)

文章目录 1.Introduction1.1 What software engineering is and why it is important(什么是软件工程,为什么它很重要)1.1 We can’t run the modern world without software(我们的世界离不开软件)1.1.1 What is Soft…

【Java数据结构】LinkedList与链表

认识LinkedList LinkedList就是一个链表,它也是实现List接口的一个类。LinkedList就是通过next引用将所有的结点链接起来,所以不需要数组。LinkedList也是以泛型的方法实现的,所以使用这个类都需要实例化对象。 链表分为很多种,比…

从0入门自主空中机器人-2-2【无人机硬件选型-PX4篇】

1. 常用资料以及官方网站 无人机飞控PX4用户使用手册(无人机基本设置、地面站使用教程、软硬件搭建等):https://docs.px4.io/main/en/ PX4固件开源地址:https://github.com/PX4/PX4-Autopilot 飞控硬件、数传模块、GPS、分电板等…

详解MySQL在Windows上的安装

目录 查看电脑上是否安装了MySQL 下载安装MySQL 打开MySQL官网,找到DOWNLOADS 然后往下翻,找到MySQL Community(GPL) Downloads>> 然后找到MySQL Community Server 然后下载,选择No thanks,just start my download. 然后双击进行…

【git】(一)在vscode上使用git进行版本控制(结合指令、含示例)

vscode中的git插件将git操作从git指令简化到简单的图形界面操作,不用再去记忆git指令,操作简单直观了很多。第一次使用时,为了加深理解,我将一些基本操作和该操作底层使用的命令结合起来,并包含实例,方便学…

安卓入门二 Kotlin基础

Kotlin Kotlin的历史 Kotlin由Jet Brains公司开发设计,2011年公布第一版,2012年开源。 2016年发布1.0正式版,并且Jet Brains在IDEA加入对Kotlin的支持,安卓自此又有新的选择。 2019年谷歌宣布Kotlin成为安卓第一开发语言&#x…

【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算

【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算 一、简介 在MATLAB中计算Sobol二阶效应指数通常涉及到全局敏感性分析(Global Sensitivity Analysis, GSA),其中Sobol方法是一种流行的技术,用于评估模型输入…

线段树例题题解

卫星覆盖(NOI1997) 题面: SERCOI(Space-Earth Resource Cover-Observe lnstitute) 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧,P帧,B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…

vue 组件库二次封装

vue 组件库二次封装 需求背景:项目使用arco-design组件库,ui 界面对于单选有统一的界面, 对于封装组件有一个大原则就是我们应该尽量保持原有组件的接口,除了我们需要封装的功能外,我们不应该改变原有组件的接口&#…

Kafka 幂等性与事务

文章目录 幂等性实现机制配置使用局限性 事务使用场景配置使用实现机制事务过程事务初始化事务开始事务提交事务取消事务消费 幂等性 Producer 无论向 Broker 发送多少次重复的数据,Broker 端只会持久化一条,保证数据不丢失且不重复。 实现机制 通过引…

LVS 负载均衡原理 | 配置示例

注:本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时,可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写,翻…

CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决

环境: Red Hat OpenShift Container Platform (RHOCP) 4 问题: Cluster Version Operator 不断发送警报,表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报: …

详解从输入url到页面渲染

当你在浏览器中输入一个 URL 并按下回车键,浏览器会经历一系列步骤来加载并渲染页面。这些步骤包括 DNS 解析、缓存处理、建立连接、发送请求、接收响应、解析 HTML、构建 DOM 树和 CSSOM 树、执行 JavaScript、布局和绘制等。以下是这些步骤的详细解释,…

Linux(Centos 7.6)目录结构详解

Linux(Centos 7.6)是一个操作系统,其核心设计理念是将一切资源抽象为文件,即一切皆文件。比如系统中的硬件设备硬盘、网络接口等都被视为文件。Windows系统一般是分为C、D、E盘。而Linux(Centos 7.6)是以斜线"/"作为文件系统的开始目录&#x…

【蓝桥杯选拔赛真题85】python摆放箱子 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

目录 python摆放箱子 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python摆放箱子 第十五届蓝桥杯青少年组python比赛选拔赛真题详细解析 一…

数据分析思维(六):分析方法——相关分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…

小程序中引入echarts(保姆级教程)

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

【SQLi_Labs】Basic Challenges

什么是人生?人生就是永不休止的奋斗! Less-1 尝试添加’注入,发现报错 这里我们就可以直接发现报错的地方,直接将后面注释,然后使用 1’ order by 3%23 //得到列数为3 //这里用-1是为了查询一个不存在的id,好让第一…

基于JAVA+SpringBoot+Vue的校园二手书交易平台

基于JAVASpringBootVue的校园二手书交易平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 …