树莓派学习
制作树莓派镜像
制作树莓派SD卡备份镜像——树莓派系统备份与还原指南_树莓派sd卡镜像制作_kzmw的博客-CSDN博客
树莓派设置固定ip
网络共享给树莓派的网口,然后利用IP scanner扫描识别树莓派的ip(具体方法参考下面给的链接)
远程登陆树莓派,使用ssh pi@192.168.137.166 进行远程登录即可
设置静态路由
编辑 /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.137.20/24
static routers=192.168.137.1
static domain_name_servers=114.114.114.114
# WIFI 部分
# interface wlan0
# static ip_address=192.168.43.200/24
# static routers=192.168.43.1
# static domain_name_servers=114.114.114.114
static domain_name_servers=114.114.114.114
用一根网线连接树莓派跟pc_树莓派网线连接电脑_linxinloningg的博客-CSDN博客
怎样设置树莓派的IP地址为静态值_树莓派设置静态ip_舞动的白杨的博客-CSDN博客
树莓派摄像头学习
注意树莓派摄像头使用的时候,不要随便热插拔,需要在树莓派,关机的时候进行
在树莓派上驱动CSI摄像头_树莓派csi_☞黑心萝卜三条杠☜的博客-CSDN博客
树莓派摄像头模块(Pi Cam)的安装使用_南沐ヾ的博客-CSDN博客
树莓派4B+Ubuntu20.04 解决 sudo: raspi-config: command not found_SummerGao.的博客-CSDN博客
树莓派nmcli无反应
【Ubuntu报错】command not found: nmcli_ubuntu安装nmcli_Holen&&Beer的博客-CSDN博客
树莓派4G图传(未仔细查看)
用树莓派搭建远程实时画面传输_树莓派通过java实时传输图像和控制_扑朔丶的博客-CSDN博客
树莓派(网络摄像头)4G网络720p高清图传(python3.7+SpringBoot-JavaNetty+Android-Mediacodec)_树莓派4g图传_wx:pjcoder的博客-CSDN博客
树莓派小车的4G遥控与视频回传(内网穿透)_树莓派4g网卡传视频_黑名单 2841703718的博客-CSDN博客
bot
originbot_base/include/originbot_base/originbot_base.h · 古月居_GuYueHome/originbot - Gitee.com
wifibro
基于wifibroadcast的无人机数字图传_qqNCer的博客-CSDN博客
基于Wifibroadcast的无人机数字图传2_qqNCer的博客-CSDN博客
OpenHD改造实现廉价高清数字图传(树莓派+PC)—(二)Wifibroadcast Wifi广播通信_hoopertsau的博客-CSDN博客
NetworkManager服务(nmcli)_nerwork-manager_大数据老司机的博客-CSDN博客
ubuntu18.04 无限网wifi unmanaged解决方法_coder攻城狮的博客-CSDN博客
Long-distance Data-link using WiFi in Raw Mode | PX4 自动驾驶用户指南
OpenHD改造实现廉价高清数字图传(树莓派+PC)—(二)Wifibroadcast Wifi广播通信_hoopertsau的博客-CSDN博客
wifibroadcast 使用方法
gs端
fzp-pi 连接无线网卡 (连接在右下角的USB口,连接其他口可能会识别不出来网卡什么原因目前没有查出来)
第一次使用的流程
下载rtl8812au驱动
sudo apt-get install dkms
git clone -b v5.2.20 https://github.com/svpcom/rtl8812au.git
cd rtl8812au/
sudo ./dkms-install.sh
- Make sure the driver is correctly installed by running the following command. You should see the WiFi card in an
unmanaged
state. - 找出来无线网卡的名称 比如 wlan0 wlan1
nmcli
- Get the name of the WiFi card by running:
ifconfig
- You should see output similar to:
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 2312
ether 0c:91:60:0a:5a:8b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- Copy the name of the RTL8812AU WiFi card.
- Install wfb-ng. Replace
wifi0
with the previously copied name of the WiFi card.
git clone -b stable https://github.com/svpcom/wfb-ng.git
cd wfb-ng
//下面这一步执行别着急执行
sudo ./scripts/install_gs.sh wifi0
- Done! To monitor the link use the following command on the ground station:
wfb-cli gs
Failing to get connection?
Make sure the WiFi channel on the ground and on the drone are the same. To check, use:
head /etc/wifibroadcast.cfg
You should see output similar to:
[common]
wifi_channel = 161 # 161 -- radio channel @5825 MHz, range: 5815–5835 MHz, width 20MHz
# 1 -- radio channel @2412 Mhz,
# see https://en.wikipedia.org/wiki/L
# Install required packages 下面这两句子是用来更新系统的软件包的,最好注释掉
apt update
apt upgrade下面一句是安装所需要的依赖的,如果不是第一次使用也最好注释掉
apt install python3-all libpcap-dev libsodium-dev python3-pip python3-pyroute2 \
python3-future python3-twisted python3-serial iw virtualenv debhelper dh-python build-essential -y# Build 编译代码
make deb制造加密的钥匙并复制到/etc/gs.key
手动将文件夹下的drone.key复制粘贴到 drone上树莓 的/etc/drone.key
如果不是第一次执行,需要注释掉,不然需要重新移动drone.key
# Create key and copy to right location
./wfb_keygen
mv gs.key /etc/gs.key
# Install
dpkg -i deb_dist/*.deb# Setup config 设置通信的信道
cat <<EOF >> /etc/wifibroadcast.cfg
[common]wifi信道161,需要保证drone 和gs 的这个值是一样的
wifi_channel = 161 # 161 -- radio channel @5825 MHz, range: 5815–5835 MHz, width 20MHz
# 1 -- radio channel @2412 Mhz,
# see https://en.wikipedia.org/wiki/List_of_WLAN_channels for reference
wifi_region = 'BO' # Your country for CRDA (use BO or GY if you want max tx power)[gs_mavlink]
peer = 'connect://127.0.0.1:14550' # outgoing connection
# peer = 'listen://0.0.0.0:14550' # incoming connection[gs_video]
peer = 'connect://127.0.0.1:5600' # outgoing connection for
# video sink (QGroundControl on GS)
EOFecho "WFB_NICS=\"${IFNAME}\"" > /etc/default/wifibroadcast
cat <<EOF >> /etc/NetworkManager/NetworkManager.conf
[keyfile]
unmanaged-devices=interface-name:${IFNAME}
EOFif [ -f /etc/dhcpcd.conf ]; then
echo "denyinterfaces ${IFNAME}" >> /etc/dhcpcd.conf
fi下面计局是启动地面站服务的
# Start gs service
systemctl daemon-reload
systemctl start wifibroadcast@gsecho "Started wifibroadcast@gs"
systemctl status wifibroadcast@gs
如果不是第一次启动的话,直接使用下面
systemctl daemon-reload
//启动gs服务
systemctl start wifibroadcast@gsecho "Started wifibroadcast@gs"
//输出gs服务的状态
systemctl status wifibroadcast@gs
用来调试的语句
Gstreamer视频传输测试gst-launch_wifibroadcast_meng_tianshi的博客-CSDN博客
FPV Camera(RPI3+V2.1) | wfb_ng Release 23.01 | ubuntu20.04 gnome软解测试_lida2003的博客-CSDN博客
drone端
无人机端就需要下载img,文件到sd卡里,远程连接,将drone.key放在/etc/drone.key里。
设置wifi信道和gs端一致
连接无线网卡,启动wifibroadcast@drone fpvcamera服务,
重启
ros web
目前遇到的问题
可以实现在网页上对ros进行操作,跨系统,局域网内,ros1 ros2都可以
目前ros_web遇到的问题是消息是自定义消息
需要将功能包里的全部换成ros标准消息
[rosbridge_websocket-1] [ERROR] [1691375688.729661076] [rosbridge_websocket]: [Client 9075c9b9-318d-498a-a8cb-1554d3c9596e] [id: subscribe:/imu:1] subscribe: Unable to impsh uav_msgs.msg from package uav_msgs. Caused by: No module named ' uav_msgs'
使用方法
ros2 launch /opt/ros/foxy/share/rosweb_server/launch/
...具体路径找一下
参考链接
我的AI之路(25)--ROSBridge:机器人与外部系统之间的通讯解决方案_rosbirdge udp通讯_Arnold-FY-Chen的博客-CSDN博客
https://github.com/RobotWebTools/rosbridge_suite
rosbridge入门教程_rosbridge教程_wjydym的博客-CSDN博客
Status of Robot Web Tools for ROS2 - #2 by dirk-thomas - Next Generation ROS - ROS Discourse
rosbridge入门教程_rosbridge教程_wjydym的博客-CSDN博客
roslibjs/Tutorials/BasicRosFunctionality - ROS Wiki
Rosbridge系列2:初识Rosbridge--利用rosbridge实现网页控制小乌龟移动_dzjoke的博客-CSDN博客
【Package】RosBridge——打通Ros与非Ros环境的数据壁垒_rosbridge_server_Plaggable的博客-CSDN博客
【Package】RosBridge——打通Ros与非Ros环境的数据壁垒 #2 C++端实现功能ppianpak / rosbridgecpp_Plaggable的博客-CSDN博客
JSDoc: Home (robotwebtools.github.io)
ros2djs/README.md at 5e8573cc17181ff9a8e3875e294f30514f624510 · RobotWebTools/ros2djs (github.com)
sensor_msgs Message / Service / Action Documentation
Index of /foxy/api
解决Rosbridge自定义action信息问题_roslib.js_幻魔大师的博客-CSDN博客
dspace
(92条消息) 【dSPACE】从0开启dSPACE之路(1)dSPACE功能及其组件介绍_ds1401 dspace_海边的卡夫卡工程师的博客-CSDN博客
无人船
无人艇路径规划、避碰、路径跟踪控制(vrep仿真,含ros通信,rrt*,COLREGS,los,pid差速控制)_gazebo无人船仿真_风铃777的博客-CSDN博客
模型网站
喷水式船_模型下载 – 懒石网 (lazystones.com)
爱给网_音效配乐_3D模型_视频素材_免费下载 (aigei.com)
迪威模型-海量3D模型下载-威海联讯信息技术有限公司 (3dwhere.com)
网络
(83条消息) error: stray ‘\200’ in program解决方法_panjieke的博客-CSDN博客
出现上述问题很有可能是有中文的字符了
(83条消息) error: storage class specified for parameter_cos_sin_tan的博客-CSDN博客
这个问题是头文件的声明中有的地方缺少了 “;” 结尾
(83条消息) 头文件中定义全局变量_头文件定义全局变量_这些年写的代码=屎山的博客-CSDN博客
(83条消息) 头文件中定义全局变量_头文件定义全局变量_这些年写的代码=屎山的博客-CSDN博客
ros2 serial
(79条消息) ROS2安装serial库_serial安装_暮尘依旧的博客-CSDN博客
socket编程
头文件全局变量
(79条消息) socket编程——常用数据结构及头文件分析_猪哥-嵌入式的博客-CSDN博客
(79条消息) C语言中的exit()函数_exit函数_春卷同学的博客-CSDN博客
(78条消息) sscanf的用法_yanyanwenmeng的博客-CSDN博客
(78条消息) C语言中scanf函数用法详解_scanf用法_沧州刺史的博客-CSDN博客
设计模型
C++之工厂(factory)模式_c++工厂模式_敢敢のwings的博客-CSDN博客
(72条消息) C++设计模式——观察者模式(Observer Pattern)_c++观察者模式_leonardohaig的博客-CSDN博客
数据类型
(76条消息) CMakeLists.txt 语法介绍与实例演练_阿飞__的博客-CSDN博客
(73条消息) size_t 数据类型_febuary_的博客-CSDN博客
指针
typedef函数指针_typedef 函数指针_wuyihao123的博客-CSDN博客
指针函数和函数指针_函数指针 指针函数_禹鼎侯的博客-CSDN博客(93条消息) undefined reference to `pthread_create' 怎么解决?_cxx lpthread_家人是最好的礼物的博客-CSDN博客(93条消息) C++中的void*理解_Mirst的博客-CSDN博客(78条消息) 深入 char * ,char ** ,char a[ ] ,char *a[] 内核_若水三千你是一千的博客-CSDN博客
设计模式
virtual和overload
C++多态--虚函数virtual及override_虚函数override_i_chaoren的博客-CSDN博客
C++中重写(override)和重载(overload)_c++ override_软件技术爱好者的博客-CSDN博客
linux系统函数
【Linux系列】进程PCB控制管理详解_pcb进程控制块-CSDN博客
linux内存管理笔记(十三)----页表映射_linux initmm pgd-CSDN博客
Linux下特殊文件---/dev/null && /dev/zero详解_> /dev/null &&-CSDN博客
Linux之进程的基本概念(进程,进程组,会话关系)-CSDN博客
Linux下特殊文件---/dev/null && /dev/zero详解_> /dev/null &&-CSDN博客
C语言”%p”的意思-----printf("%p",p)_printf %p-CSDN博客
pthread_create
pthread_create函数详解(向线程函数传递参数)_焱齿的博客-CSDN博客
read write
【Linux系统IO函数】read、write函数及实现文件拷贝_read函数实现_傅耳耳的博客-CSDN博客
sigaction
linux中sigaction函数详解_魏波.的博客-CSDN博客
linux 串口学习
(83条消息) LINUX 使用tcgetattr与tcsetattr函数控制终端_linux tcgetattr_Liuqz2009的博客-CSDN博客
(83条消息) Linux C 串口属性设置_c_cflag_御龙冀人的博客-CSDN博客
(83条消息) C——Linux下的串口编程_4ct c,cc t)dtr_C_Aya的博客-CSDN博客
【Linux】——select详解_linux select-CSDN博客
详解IO多路复用机制——select、poll、epoll的原理和区别_select poll epoll原理和区别-CSDN博客
linux网络编程
面试官,不要再问我三次握手和四次挥手_猿人谷 三次握手四次挥手-CSDN博客
【Linux】进程与文件系统(上)_linux进程文件_咸菜不闲的博客-CSDN博客
accept
TCP网络编程中connect() listen()和accept()三者之间的关系_tcp accept_致守的博客-CSDN博客
socket buffer
Socket缓冲区_socket buffer-CSDN博客
epoll反应堆模型
epoll原理详解及epoll反应堆模型_epoll模型-CSDN博客
epoll原理详解及epoll反应堆模型_epoll模型-CSDN博客
网络高并发服务器之epoll接口、epoll反应堆模型详解及代码实现_青城山小和尚的博客-CSDN博客
web server
【C/C++服务器开发】文件,文件描述符,I/O多路复用,select / poll / epoll 详解_c++ 文件描述符_小熊coder的博客-CSDN博客
Linux SIGPIPE信号产生原因与解决方法-CSDN博客
WebServer代码解读(1)【main函数流程】【忽略SIGPIPE信号:handle_for_sigpipe】【创建EPOLL内核事件表】【线程池组成部分与工作逻辑】-CSDN博客
WebServer代码解读(2)【初始化server socket】【设置epoll事件】【注册描述符】【封装epoll_wait】_怎么初始化serversocket_温酒煮青梅的博客-CSDN博客
WebServer代码解读(3)【最小堆定时器与队列】_webserver 最小堆定时器_温酒煮青梅的博客-CSDN博客
WebServer代码解读(3)【最小堆定时器与队列】_webserver 最小堆定时器_温酒煮青梅的博客-CSDN博客
WebServer代码解读(4)【解析HTTP请求】【解析请求行/请求头】【URI基础知识】_webserver对http的解析_温酒煮青梅的博客-CSDN博客
C++string类中substr()函数的使用方法_c++ string substr_&Mr.Gong的博客-CSDN博客
WebServer代码解读(5)【处理HTTP请求】【响应POST/GET请求】_webserver post报文解析_温酒煮青梅的博客-CSDN博客
定时器
面试现场手撕高效定时器,红黑树、时间轮、最小堆实现定时器 |定时器实现方式;定时器与其他模块关系;定时器接口设计;c++ STL 容器选择_哔哩哔哩_bilibili
reactor
面试官:什么是 Reactor 和 Proactor?_reactor和proactor_小林coding的博客-CSDN博客
轮询调度算法(Round-Robin Scheduling)_夜流冰的博客-CSDN博客
rall机制 即对资源的获取和释放进行控制,对于new获得的空间,需要记得delete
堆(大根堆、小根堆)_小根堆和大根堆_pingdaozhang的博客-CSDN博客
SIGPIPE
Linux SIGPIPE信号产生原因与解决方法_哀酱的博客-CSDN博客
http
HTTP协议(详解)_ufgnix0802的博客-CSDN博客
看完这篇HTTP,跟面试官扯皮就没问题了_accept-charset和accept-encoding-CSDN博客
【计算机网络】HTTP 协议详解_http协议解析-CSDN博客
extern
【014 关键字】一文彻底搞懂extern用法_Kashine的博客-CSDN博客
【C++深陷】之“成员模板”_c++成员模板_Jinxk8的博客-CSDN博客
explict
C++ explicit关键字详解_c explicit_tiankong19999的博客-CSDN博客
URI和URL区别以及相对路径和绝对路径的区别_uri 相对路径_ThreeOO的博客-CSDN博客
堆(大根堆、小根堆)_小根堆和大根堆_pingdaozhang的博客-CSDN博客
C++中的unordered_map常见用法详解_c++ unordered_map_花无凋零之时的博客-CSDN博客
C++中的unordered_map用法详解_zou_albert的博客-CSDN博客
数据结构——堆(带图详解)_建堆过程图解_Owen_Xp的博客-CSDN博客
数据结构堆(Heap)详解-堆的建立、插入、删除、最大堆、最小堆、堆排序等_heap插入_OH,CGWLMXUP的博客-CSDN博客
function bind
【C++】C++11的std::function和std::bind用法详解_std::bind和std::function_Yngz_Miao的博客-CSDN博客
单例设计模式 双重锁
C++单例的安全实现,double-check(双重检查锁定)的安全实现方法_手写单例模式c++双校验锁_橘色的喵的博客-CSDN博客
c++多线程(八) - 双重检查_检查mutex 是否为null_万里归来少年心的博客-CSDN博客
weak_ptr lock
C++11中weak_ptr的使用_weakptr lock_fengbingchun的博客-CSDN博客
shared_from_this
std::enable_shared_from_this用法-CSDN博客
shared_ptr:线程安全、循环引用_帝壹的博客-CSDN博客
C++:智能指针(5)——enable_shared_from_this工作原理、源码分析_enable_shared_from_this原理分析_cocoa0409的博客-CSDN博客
C++关于shared_ptr和shared_from_this的说明_c++ shared_from_this_农夫私房菜的博客-CSDN博客
typedef enum
C语言 enum/typedef enum 枚举类型详解_Steven&Aileen的博客-CSDN博客
static_cast
【智能指针二】智能指针互转_static_pointer_cast_郑同学的笔记的博客-CSDN博客
普通指针到智能指针的转换_指针转智能指针_seamanj的博客-CSDN博客
#pragma once
pragma once用法总结_pargram once_DaMercy的博客-CSDN博客
c++11function
【C++】C++11的std::function和std::bind用法详解_c++中的std中的方法-CSDN博客
函数指针
static
c++——static总结_c++ static_却道天凉_好个秋的博客-CSDN博客
在 C/C++中 static 关键字详解_c++static_-YIN的博客-CSDN博客
cr lf 回车和换行
muduo
using
C++ 中using 的使用_c++ using-CSDN博客
__thread
__thread详解(gcc关键字)___thread gcc-CSDN博客
webgis
第一章第2节-WebGIS开发_GISer搬砖人的博客-CSDN博客
【完整的WebGIS教程】2、第一个基于vue的webgis项目_老靳的WebGIS的博客-CSDN博客
vue+supermap iclient for mapboxgl 降雨分布展示的webgis项目:1_vue使用supermap_qq_37278598的博客-CSDN博客
droneDb
DroneDB/DroneDB: Free and open source software for aerial data storage. (github.com)
Drone Mapping Software - OpenDroneMap™
数据链
关于OFDM与COFDM差异性的研究比较_LuchangweiSam的博客-CSDN博客
世界各个地区WIFI 2.4G及5G信道划分表(附无线通信频率分配表)_5g信道对应频率_一叶知秋dong的博客-CSDN博客
WLAN基本知识之802.11标准_超凡脫俗的博客-CSDN博客
非网管PoE交换机的三种模式使用及介绍 (tp-link.com.cn)
一图读懂 如何限制访问交换机界面? (tp-link.com.cn)
摄像头sdk
【ROS2实践】系列(一 )——FastDDS的安装使用 - 简书
base基站
段错误
Segmentation fault (core dumped)错误常见原因总结_改个名字真不容易�的博客-CSDN博客
gcc多文件联合编译
g++ main.cpp function.cpp -o main
GCC 同时编译多个 C/C++ 文件_gcc 并行编译_wohu007的博客-CSDN博客
gdb使用
GDB的安装和基本调试(安装步骤+基本调试命令和演示)_gdb安装_Xtiz的博客-CSDN博客
struct定义出错
解决 不在struct内初始化
部分版本结构体的声明中初始化导致的。 有的可以初始化,有的不行
C语言错误:error: expected ':', ',', ';', '}' or '__attribute__' before '=' token_devinliu188的博客-CSDN博客
sprintf连接char* 出错
原因 存放连接完成结果的应该是一个char buf[] 数组
sprintf()函数简要介绍_sprintf函数_做最完美的自己的博客-CSDN博客
ringbuffer环形缓冲区
【单片机】使用ringbuffer接收数据_ringbuffer的常规用法_提莫的蘑菇丛的博客-CSDN博客
环形缓冲区(Ring Buffer)使用说明_爬坡的小蜗牛的博客-CSDN博客
string构造函数‘
-
emplate<class Iter> string(Iter begin,Iter end)
-
//这里Iter为char *
C++ string类的构造函数_c++ string构造函数_iamzhangzhuping的博客-CSDN博客
ifndef
pragma once用法总结_DaMercy的博客-CSDN博客
p900
PX4使用P900数传_px4数传_超维空间科技的博客-CSDN博客
microhard p900数传配置方法_p900电台-CSDN博客
moblia dji
本地套接字
本地套接字(domain)_本地域套接字_@小棋童的博客-CSDN博客
数据管理系统
原创程序|大疆无人机照片视频综合管理系统_大华无人机和大疆无人机_qq_22865459的博客-CSDN博客
基于POS的无人机数据管理系统设计及实现_无人机pos文件是指什么文件_qq_22865459的博客-CSDN博客
无线Ap组建点对点局域网
组建Ad Hoc模式无线局域网_adhoc网络搭建_熊未泯的博客-CSDN博客
无线AP简介_ap面板上面网口与交换机网口什么关系_liitdar的博客-CSDN博客
C++连接MySQL数据库实现对一个简单的学生信息系统的增删改查_不想学习的奈何的博客-CSDN博客
数据库的存储系列———将图片存储到数据库_数据库怎么存储图片_goasleep的博客-CSDN博客
图片怎么存储到数据库里_githubcurry的博客-CSDN博客
图片怎么存储到数据库里_githubcurry的博客-CSDN博客
可以通过在数据库中存放图片的存放位置,云服务器cdn 提供远端的图片存储,client访问时cdn会就近提供资源,避免了传输距离带来的问题
mysql
ubuntu20.04安装mysql数据库_孤寒者的博客-CSDN博客
ubuntu安装mysql详细过程_dair6的博客-CSDN博客
datagrip 连接不上linux的mysql
防火墙问题,需要把3306端口指定为开,然后重启mysql服务
systemctl restart mysql
DataGrip远程连接Ubuntu Linux MySQL服务器报错DBMS: MySQL (no ver.)_Pamy23的博客-CSDN博客
数据库
mysql存储数据
Linux下mysql服务存在,但是3306端口监听不存在,远程连接不上-CSDN博客
Mysql启动选项和配置文件_mysql指定配置文件启动_Java面试365的博客-CSDN博客
数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式_逸佳6的博客-CSDN博客
mysql_errno返回值的意义 mysql_errno()代码解析大全_mysql_error返回值-CSDN博客
influxdb
什么是时序数据库?时序数据库是近几年一个新的概念,与传统的Mysql关系型数据库相比,它的最大的特点是:数据按照时间顺序存储。
mongodb与postgresql
MongoDB 与 PostgreSQL 对比 - 数据库之间的区别 - AWS
PostgreSQL
PostgreSQL学习总结(1)—— PostgreSQL 入门简介与安装-CSDN博客
px4 qgc
QGC通过网络连接飞控(树莓派+ROS桥接MavLink)_qgc连接飞控的数传接口_BreederBai的博客-CSDN博客
QGC二次开发笔记 一:Mavlink生成和MockLink模拟收发通讯_hail_hydra .的博客-CSDN博客
QGroundControl(QGC)地面站获取gps信息并保存为按时间自动编号的TXT文件_qgc飞机未获得gps定位_奈流云何的博客-CSDN博客
QT
QT入门之QToolBar_Littlehero_121的博客-CSDN博客
【Qt】一篇全面的信号和槽函数机制总结_qt槽函数_iriczhao的博客-CSDN博客
QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客
2015.6.5 qt学习笔记 accept()概念_qtaccept函数-CSDN博客
QT:获取屏幕的可用尺寸_qt availablegeometry-CSDN博客
Qt学习(四)—— 坐标系统_qt move函数坐标-CSDN博客
qt跨平台
Qt6 安装串口模块 QSerialPort_qt6 qserial-CSDN博客
Network error: Connection refused_network error:connection refused-CSDN博客
中文乱码问题使用utf-8+bom格式解决
Linux下QT程序打包_linux qt打包_xiq1212的博客-CSDN博客
opencv c++拉流可行
OpenCV 无法打开 rtsp 视频流的解决方法_qt opencv 无法打开rstp_许野平的博客-CSDN博客
Qt中使用ui设计界面实现显示opencv图片(label+button)_qt ui显示图片-CSDN博客
Qt中QString转string中文乱码问题-CSDN博客
opencv之videocapture类_videocapture isopen-CSDN博客
OpenCV在Qt中显示视频的两种方法_qt显示视频-CSDN博客
c++读取视频并保存
使用OpenCV的类VideoWriter进行视频写操作(保存视频) - OpenCV与图像处理笔记 - 昊虹AI笔记网 - 用心记录CV-AI技术
g++编译问题
对‘cv::VideoCapture::VideoCapture(int)’未定义的引用 怎么解决_搞IT的锋的博客-CSDN博客
g++ -o test test.cpp
-I/usr/local/include/opencv4
-L/usr/local/lib64 -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_videoio
MQTT与ROS
物联网协议——MQTT与ROS_mqtt网络拓扑_iphone86的博客-CSDN博客
4GDTU
VLC
vlc-qt —— Windows下编译(最新)_vlc windows编译-CSDN博客
Releases · vlc-qt/vlc-qt · GitHub
用VLC开发视频播放器/组件(两种方式:libVLC / VLC-Qt)_CXYYL的博客-CSDN博客
Qt+ffmpeg 拉取海康相机视频流并显示_qt+ffmpeg摄像头推流_小米的修行之路的博客-CSDN博客
使用VLC轻松体验本地视频推流、拉流、播放功能_vlc推流-CSDN博客
【流媒体服务】推流拉流体验(二):【1】使用VLC轻松体验本地视频推流、拉流、播放功能_vlc拉流使用教程-CSDN博客
python+opencv用电脑调用手机摄像头或其他网路摄像头_开启摄像头录像直播传输到python,支持ios-CSDN博客
流媒体源流常见问题与延迟分析处理_rtsp延迟高的原因-CSDN博客
局域网内简单读取ip摄像头内容并保存至本地与按时间间隔提取本地视频的图片帧_如何通过本地端口查看摄像头-CSDN博客
qt拉流观看
Qt 播放rtsp视频流 问题记录_qt qmediaplayer rstp-CSDN博客
opencv c++拉流观看
opencv学习---VideoCapture 类基础知识-CSDN博客
OpenCV 无法打开 rtsp 视频流的解决方法_qt opencv 无法打开rstp_许野平的博客-CSDN博客
OpenCV在Qt中显示视频的两种方法_qt显示视频-CSDN博客
显示视频文件
首先这里先说个坑,我们是绝对不能用waitKey()函数来实现帧与帧之间的时间间隔的,因为我们用的是QLabel来显示,而QLabel是组件,使用waitKey()会使得QLabel数据堵塞,最终实操的结果也只会是过一会后显示视频的最后一帧。
对于这样的情况我们的解决方案是,使用QTimer定时器。
QTimer的主要方法是start(internal)表示每隔internal毫秒发送一个timeout()信号,这样我们只需要编写响应这个信号的槽函数并连接信号和槽函数即可。
C++ OpenCV摄像头及视频操作类VideoCapture介绍-CSDN博客
opencv python 拉流观看
延时
流媒体源流常见问题与延迟分析处理_rtsp延迟高的原因-CSDN博客
opencv VideoCapture抓取RTSP高延迟,崩溃解决方法_(rtspvideocapturer.cpp:29): rtspvideocapturer:oner-CSDN博客
apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
AD
AD从原理图到PCB超详细教程_ad怎么把原理图导入pcb_*真空*的博客-CSDN博客
AD21原理图的高级应用(三)原理图多通道的应用_ad多通道pcb设计-CSDN博客
Altium Designer 入门教程(参考视频:凡亿教育-新手入门必备课56讲)_骑着蜗牛逛Earth的博客-CSDN博客
【精选】AD教程系列 | 3 - 创建原理图库和PCB库_ad怎么画原理图库-CSDN博客
【精选】Altium Designer 20(AD20)新手小白详细教程-CSDN博客
虚拟机
VMware共享文件夹——Ubuntu20.04_ubuntu20.04 vmware 共享文件夹-CSDN博客
Linux之VMware Tools的安装、共享文件夹的设置以及sudo nautilus的应用_linux安装tools_时光の尘的博客-CSDN博客
工作
HC?OC?这些校招黑话你看明白了吗?_hc od-CSDN博客
create table status
(
time datetime not null comment 'the time of data acquire',
roll SMALLINT null comment 'ahrsEuler0',
pitch SMALLINT null comment 'ahrsEuler1',
yaw SMALLINT null comment 'ahrsEuler2',
height int null,
mode int null,
isLock int null
)
comment 'status of control object';
create table motorPwm
(
time datetime not null,
pwm_0 TINYINT null,
pwm_1 TINYINT null,
pwm_2 TINYINT null,
pwm_3 TINYINT null
)
comment '电机pwm的数值';
create table rcData
(
time datetime null,
ppm_0 SMALLINT null,
ppm_1 SMALLINT null,
ppm_2 SMALLINT null,
ppm_3 SMALLINT null,
ppm_4 SMALLINT null,
ppm_5 SMALLINT null,
ppm_6 SMALLINT null,
ppm_7 SMALLINT null
)
comment 'the data of rc ';
create table power
(
time datetime null,
current SMALLINT null,
voltage SMALLINT null
)
comment 'the current and voltage of battery';
create table version
(
time datetime null,
type TINYINT null comment 'hardware_type',
hardwareVersion SMALLINT null,
softwareVersion SMALLINT null,
protocolVersion SMALLINT null,
bootloaderVersion SMALLINT null
)
comment 'the version of hardware';
create table gps
(
time datetime null,
status TINYINT null comment 'the status of gps',
star TINYINT null,
longitude SMALLINT null comment 'longitude',
latitude SMALLINT null comment 'latitude'
)
comment 'message of gps';
create table sensor
(
time datetime not null,
acc_0 SMALLINT null comment 'acc_x',
acc_1 SMALLINT null comment 'ac_y',
acc_2 SMALLINT null,
gyro_0 SMALLINT null,
gyro_1 SMALLINT null,
gyro_2 SMALLINT null,
mag_0 SMALLINT null,
mag_1 SMALLINT null,
mag_2 SMALLINT null
)
阶段总结
目前已经开展结束的工作
linux网络编程 系统编程的学习 html的学习 ros2接收飞控和动捕数据并把动捕数据下发给飞控
正在进行
设计模式的学习 wifibroadcast的改造 ros web的尝试 sql数据库的学习 阅读修改了涵道基站的代码(编译未通过,有待改进)