技术分享
未读
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大公式一步一步完成的
待补充。。。
1.文献解析
相关论文:前往下载
论文代码:arclab-hku/fast-dodging: dodging fast small moving objects with RGBD sensor (github.com)
Chatpaper
Basic Information:
Title: Perception and Avoidance of Multiple Small Fast Moving Objects for Quadrotors With Only Low-Cost RGBD Camera (基于低成本RGBD相机的四旋翼机器人对多个小型快速移动物体的感知和避障)
Authors: Minghao Lu, Han Chen, and Peng Lu
Affiliation: Department of Mechanical Engineering, The University of Hong Kong, Hong Kong, SAR, China (Minghao Lu and Peng Lu); Department of Ae ...
从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.无人机硬件框架
传统无人机框架如上图所示,但本课程中所使用到的科研无人机与上图有所出入,下面介绍无人机中一些关键组件功能以及选购建议
1.1飞控
介绍
飞控又称飞行控制器,用于根据输入指令解算电机推理
内置了IMU,气压计,磁罗 ...
从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.课程介绍
2.相关下载
碳板图纸:下载地址
README.pdf:下载地址
本网站只做课程笔记和资源整合,资源全部来源B站和深蓝学院,如有侵权,请联系站长删除!
原文链接(本人写的啊,不算抄袭😎):PyQt5技术分享_制作一个个性的音乐播放器
前前言:额,正如你所见,这个项目在鸽了几个月后终于宣布停更了。原因呢,自该项目发布以来,反响平平,更新的动力都没了,其实更主要的原因在于我发现我现在学习的方向渐渐偏离了专业的轨道,以后的项目会逐渐往硬件方面靠。奉劝各位,要是你还在学习pyqt5的话,学到为止,做小GUI,tk足以,做大项目,pyqt5真的不是什么好选择。
前言:距上一个项目进程的实现:Dock栏的实现 已经过去大概两周了,在这两周内终于又完成了一个组件:音乐播放器(在此,有人会问:啊?你一个阅读器要音乐播放功能干嘛?答:为满足那些阅读时喜欢听歌的人的需求,比如,我),“才”花两周也是我加班加点,翘了无数个晚自习,努力的成果,在这里我就不得不吐槽一下我们学校的早晚自习制度(阿巴阿巴````)话不多说,来吧,展示!
1.界面展示
为了融合项目需求,播放器就设定为小型的,但麻雀虽小,五脏俱全,播放器应有的功能一个没落,额,,除了音效调节外,不过这也不是必须的,是吧(极力掩饰自己能力不足中···),在界面实现时遇到的小困难:
...
原文链接(本人写的啊,不算抄袭😎):《ESP32-Arduino》LVGL之输入设备详解及实例(触摸屏,实体按键,编码器,多功能按键)
最近在做项目的播放器部分,在实现播放器像网易云那样点击播放唱片就会自动转动时遇到了问题,经过一套搜索引擎组合拳,终于是实现了该功能,成品如下
闲话少说,上代码(代码部分做了大量的注释和个人理解,就不额外的解释了,因为我也是查大佬的案例过来的,所以理解仅供参考)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596"""唱片"""class Cp_Comp_1(QObject): def __init__(self): super(Cp_Comp_1, ...