环境
机载电脑
系统:Ubuntu20.04 LST
ROS1:noetic
飞控:PX4
mavros
QGroundControl
动捕系统电脑
动捕配套软件:XING-NOKOV
关于系统、PX4、mavros、QGroundContorl等安装参考下面两篇文章:
从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界
从0入门自主空中机器人-4-【PX4与Gazebo入门】 | MGodmonkeyの世界
1. 准备工作
1.1 动捕系统电脑
打开动捕系统软件XING-NOKOV,进行如下操作
标定与贴点:数据采集前准备:标定与贴点 (xiaoeknow.com)
刚体创建:锁帧->shift键框选5个点->右键创建刚体,名称: Tracker0
网络拓扑结构
1.2 机载电脑
通过ssh等工具连接上机载电脑,进行如下操作
打开QGroundContorl连接上无人机飞控,并进行PX4的配置
EKF2_AID_MASK = 24
EKF2_HGT_MODE = 2
PX4配置需要保存 ...
从0入门自主空中机器人
未读
前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件,这一篇文章中我们入门一下无人机常用的开源飞控PX4,以及ROS中无人机的仿真
1. PX4的安装
1.1 PX4固件代码的下载与编译
注:推荐使用已经配置好的PX4固件包,PX4版本==1.12:https://pan.quark.cn/s/9964d20e6c40 提取码:g3ij
通过github下载PX4代码(下载慢时可以找一些github的镜像网站)
1git clone https://github.com/PX4/PX4-Autopilot.git --recursive
安装必要的依赖
123sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -ybash ./PX4-Autopilot/Tools/setup/ubuntu.sh
如果安装PX4的环境比较纯净,比如说刚装的Ubuntu系统,运行bash脚本过程中会报好几次错 ...
从0入门自主空中机器人
未读1. 常用资料以及官方网站
无人机飞控PX4用户使用手册(无人机基本设置、地面站使用教程、软硬件搭建等):https://docs.px4.io/main/en/
PX4固件开源地址:https://github.com/PX4/PX4-Autopilot
飞控硬件、数传模块、GPS、分电板等—holybro官网:http://www.holybro.com/
无人机动力系统–TMotor官网:https://uav-cn.tmotor.com/
无人机在线课程、开源项目—阿木实验室:https://amovlab.com/
2. 机架推荐/可二次开发整机无人机
Holybro无人机(整机无人机以及无人机机架散件):【前往】
阿木实验室无人机:【前往】
FPV梦工厂(机架,专门为FPV竞赛设计):【前往】
3. 无人机各个重要模块功能及选型
3.1 航模电池
主要的参数及选型推荐
参数
说明
推荐值
容量
电池容量,表示电池可以放出的电量多少,以mh为单位
5000mAH
电芯节数
电芯数量,决定了电池输出电压大小。通常 ...
从0入门自主空中机器人
未读
关于本课程:
本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程,带你从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 ...
资源汇总
未读
视觉SLAM
ORB SLAM2(单双目RGB-D):https://github.com/raulmur/ORB_SLAM2
DSO(单目):https://github.com/JakobEngel/dso
InfiniTAM v3(RGB-D):https://github.com/victorprad/InfiniTAM
视觉+惯导SLAM
VINS-Fusion(单双目+IMU):https://github.com/HKUST-Aerial-Robotics/VINS-Fusion
OKVIS(单双目 + IMU):https://github.com/ethz-asl/okvis
ORB SLAM33(单双目 + IMU):https://github.com/UZ-SLAMLab/ORB_SLAM3
激光SLAM
LeGO-LOAM:https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
Cartographer(LIDAR + IMU):https://github.com/googlecartograp ...
技术分享
未读
ROS与PyQt5结合的小demo,用于学习如何设计一个界面,并与ROS中的Service和Topic结合,从而控制多个小乌龟的运动
环境:
ROS2:foxy
python:3.8.10
PyQt:5.10.12
链接:https://github.com/MGod-monkey/ros2_pyqt_turtlesim_key
1. CMakeLists.txt与package.xml的作用
在ROS系统的功能包中 要包含 CMakeLists.txt 与 package.xml 文件来编译功能包的内容
CMakeLists.txt原本是Cmake编译系统的规则文件,而Catkin编译系统基本沿用了CMake的编译风格,只是针对ROS工程添加了一些宏定义。所以在写法上,catkin 的 CMakeLists.txt与CMake的基本一致。用cmake命令创建功能包时,会自动生成CMakeList.txt文件,已配置了多数编译选项,且包含详细的注释,只需稍作修改便可编译自己的文件。
而package.xml文件是描述功能包清单的文件,包括功能包的名称、版本号、作者信息、许可信息、编译依赖和运行依赖等。
所以 CMakeLists.txt 非常重要,它指定了由源码到目标文件的规则,catkin编译系统在工作时首先会找到每个package下的 CMakeLists.txt ,然后按照规则来编译构建
2. 生成CMakeLists.txt
2.1 ROS1
ROS1可通过用catkin_create_pkg命令创建功 ...
视频参考:https://www.bilibili.com/video/BV1zt411G7Vn?p=19
1. roslaunch 命令
roslaunch 命令允许我们一次启动 launch 文件中定义的多个 ROS 节点,启动参数等在启动文件(launch 文件)中配置,并且如果系统之前没有启动 roscore,则 roslaunch 会自动启动它。
roslaunch 的命令行用法如下:
1roslaunch [package] [filename.launch]
例如:
1roslaunch beginner_tutorials turtlemimic.launch
其中 beginner_tutorials 是 turtlemimic.launch 文件中定义的一个节点,那 launch 文件是什么呢?我们来看下。
2. 解析 launch 文件
简单来说 launch 文件就是一堆节点和参数的集合,使用 launch 文件的目的是为了一键启动。
因为目前运行在机器人上的 ROS 系统一般都要同时运行多个节点,如果我们开机启动时,一个一个的输入命令来启动每一个节点,想想 ...
错误过程
12345678910root@laohanba-NUC11TNKi7:~/Doc# rosrun tf view_frames Listening to /tf for 5.0 secondsDone Listeningb'dot - graphviz version 2.43.0 (0)\n'Traceback (most recent call last): File "/opt/ros/noetic/lib/tf/view_frames", line 119, in <module> generate(dot_graph) File "/opt/ros/noetic/lib/tf/view_frames", line 89, in generate m = r.search(vstr)TypeError: cannot use a string pattern on a bytes-like object
解决方法
修改/opt/ros/noetic/lib/tf/view_fr ...
问题大全
未读说明:ROS1最高支持到Ubuntu20.04,ROS2最低支持Ubuntu20.04,综上,推荐使用的Ubuntu版本为20.04
1.安装
参考鱼c一键安装脚本来安装:ROS资源汇总
说明:ROS1安装的版本为noetic,ROS2安装的版本为foxy
2.配置
默认情况下ROS1和ROS2存在版本切换的问题,因为同一终端里无法同时使用ROS1和ROS2。
因此可通过修改~/.bashrc文件来选择每个终端中使用的ROS版本。
打开并编辑~/.bashrc文件
1sudo nano ~/.bashrc
往~/.bashrc文件的末尾添加以下代码(crtl+o->enter->crtl+x保存退出):
123456789101112echo "ros noetic(1) or ros2 foxy(2)?"read editionps=$PS1if [ "$edition" -eq "1" ]; then source /opt/ros/noetic/setup.bash # echo &qu ...
笔者最近被VNC折磨了很久,网上的教程杂乱不堪,特此写一篇教程做笔记
本教程适用于Ubuntu20.04及以下版本,Ubuntu22.04版本或有出入
1.安装图形桌面
如果linux系统已经安装了图形桌面可跳过这一步
Ubuntu20.04主流的图形桌面有gnome和xface两种,两种桌面的安装方式我都会写,但这里较推荐gnome桌面
1.1选择安装gnome桌面
123sudo apt update #更新软件源sudo apt install ubuntu-gnome-desktop #安装gnomesudo systemctl start gdm #刚安装Gnome,需要启动GDM服务以初识化桌面
1.2选择安装xface桌面
12sudo apt update #更新软件源sudo apt install xfce4 xfce4-goodies #安装xface
这个选项选择是否启用显示管理器,选择第一个并Enter
显示管理器是一个程序,使您的 Linux 发行版拥有图形登录功能。它还负责在您使用用户名和密码登录后启动显示服务器和桌面环境
2.安装VNC-S ...
1.原理
下面的文章已经总结得够详细了,就不另起篇幅了
How a Kalman filter works, in pictures | Bzarg
卡尔曼滤波+扩展卡尔曼滤波公式推导以及两者的关联 - 知乎 (zhihu.com)
在此推荐一篇最详细的教程:卡尔曼滤波教程 (kalmanfilter.net)
2.实现
实现的过程就是依据卡尔曼7大公式一步一步完成的
待补充。。。