当前位置:   article > 正文

自用网站链接

自用网站链接

树莓派学习

制作树莓派镜像

制作树莓派SD卡备份镜像——树莓派系统备份与还原指南_树莓派sd卡镜像制作_kzmw的博客-CSDN博客

树莓派设置固定ip

网络共享给树莓派的网口,然后利用IP scanner扫描识别树莓派的ip(具体方法参考下面给的链接)

远程登陆树莓派,使用ssh pi@192.168.137.166 进行远程登录即可

设置静态路由

编辑 /etc/dhcpcd.conf

  1. interface eth0
  2. static ip_address=192.168.137.20/24
  3. static routers=192.168.137.1
  4. static domain_name_servers=114.114.114.114
  5. # WIFI 部分
  6. # interface wlan0
  7. # static ip_address=192.168.43.200/24
  8. # static routers=192.168.43.1
  9. # 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博客

【树莓派-入门】树莓派Zero W利用Raspberry Pi Imager烧录系统+开机连接(2022-04-04 Raspberry Pi OS Bullseye)_树莓派zerow刷入街机系统_完完全全很菜的博客-CSDN博客

树莓派摄像头模块(Pi Cam)的安装使用_南沐ヾ的博客-CSDN博客

树莓派通过raspi-config启动摄像头时,出错:Your firmwave appears to be out of date (no start_x.elf). Please update_ros漫步的博客-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博客

树莓派(网络摄像头)4G网络720p高清图传(python3.7+SpringBoot-JavaNetty+Android-Mediacodec)_树莓派4g图传_wx:pjcoder的博客-CSDN博客

bot

通信协议说明 - OriginBot智能机器人开源套件

originbot_base/include/originbot_base/originbot_base.h · 古月居_GuYueHome/originbot - Gitee.com

EZ-WifiBroadcast低成本远距离高清图传系统基础教程 - 开源技术讨论-5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)-[成都艾麦克斯科技有限公司]

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 自动驾驶用户指南

GitHub - svpcom/wfb-ng: WFB-NG - the next generation of long-range packet radio link based on raw WiFi radio

OpenHD改造实现廉价高清数字图传(树莓派+PC)—(二)Wifibroadcast Wifi广播通信_hoopertsau的博客-CSDN博客

wifibroadcast  使用方法  

gs端

fzp-pi 连接无线网卡 (连接在右下角的USB口,连接其他口可能会识别不出来网卡什么原因目前没有查出来)

第一次使用的流程

下载rtl8812au驱动

  1. sudo apt-get install dkms
  2. git clone -b v5.2.20 https://github.com/svpcom/rtl8812au.git
  3. cd rtl8812au/
  4. 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:
  1. wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 2312
  2. ether 0c:91:60:0a:5a:8b txqueuelen 1000 (Ethernet)
  3. RX packets 0 bytes 0 (0.0 B)
  4. RX errors 0 dropped 0 overruns 0 frame 0
  5. TX packets 0 bytes 0 (0.0 B)
  6. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  • Copy the name of the RTL8812AU WiFi card.
  • Install wfb-ng. Replace wifi0with the previously copied name of the WiFi card.
  1. git clone -b stable https://github.com/svpcom/wfb-ng.git
  2. cd wfb-ng
  3. //下面这一步执行别着急执行
  4. 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:

  1. [common]
  2. wifi_channel = 161 # 161 -- radio channel @5825 MHz, range: 58155835 MHz, width 20MHz
  3. # 1 -- radio channel @2412 Mhz,
  4. # 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)
EOF

echo "WFB_NICS=\"${IFNAME}\"" > /etc/default/wifibroadcast

cat <<EOF >> /etc/NetworkManager/NetworkManager.conf
[keyfile]
unmanaged-devices=interface-name:${IFNAME}
EOF

if [ -f /etc/dhcpcd.conf ]; then
    echo "denyinterfaces ${IFNAME}" >> /etc/dhcpcd.conf
fi

下面计局是启动地面站服务的

# Start gs service
systemctl daemon-reload
systemctl start wifibroadcast@gs

echo "Started wifibroadcast@gs"
systemctl status wifibroadcast@gs

如果不是第一次启动的话,直接使用下面

systemctl daemon-reload

//启动gs服务
systemctl start wifibroadcast@gs 

echo "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遇到的问题是消息是自定义消息

ROSBridge简介以及理解使用(下)-阿里云开发者社区

ROSBridge简介以及理解使用(上)-阿里云开发者社区

需要将功能包里的全部换成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

Robot Web Tools

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 PCB(进程控制块) 详解-CSDN博客

Linux下特殊文件---/dev/null && /dev/zero详解_> /dev/null &&-CSDN博客

C语言”%p”的意思-----printf("%p",p)_printf %p-CSDN博客

进程地址空间详解_小赵小赵福星高照~的博客-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网络编程

Socket中SO_REUSEADDR详解-CSDN博客

面试官,不要再问我三次握手和四次挥手_猿人谷 三次握手四次挥手-CSDN博客

【Linux】进程与文件系统(上)_linux进程文件_咸菜不闲的博客-CSDN博客​​​​​​

accept

TCP/IP编程之accept函数详解-CSDN博客

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博客

RAII机制介绍_好吃还得是柚子的博客-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博客

mime

mime_佐笾已逝的博客-CSDN博客

URI和URL区别以及相对路径和绝对路径的区别_uri 相对路径_ThreeOO的博客-CSDN博客

堆(大根堆、小根堆)_小根堆和大根堆_pingdaozhang的博客-CSDN博客

C++中的unordered_map常见用法详解_c++ unordered_map_花无凋零之时的博客-CSDN博客

C++中的unordered_map用法详解_zou_albert的博客-CSDN博客

数据结构——堆(带图详解)_建堆过程图解_Owen_Xp的博客-CSDN博客

https://blog.csdn.net/xiaomucgwlmx/article/details/103522410?ops_request_misc=&request_id=&biz_id=102&utm_term=heap&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-103522410.142^v93^chatsearchT3_2&spm=1018.2226.3001.4187

数据结构堆(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++:智能指针(3)——无法通过原指针增加共享指针shared_ptr的计数,enable_shared_from_this解决_shared_ptr之间无法共享引用计数_cocoa0409的博客-CSDN博客

C++关于shared_ptr和shared_from_this的说明_c++ shared_from_this_农夫私房菜的博客-CSDN博客

typedef enum

C语言 enum/typedef enum 枚举类型详解_Steven&Aileen的博客-CSDN博客

static_cast

C++数据类型转化使用方法,static_cast,dynamic_cast,dynamic_pointer_cast,dynamic_pointer_cast等_std::static_cast_早睡的叶子的博客-CSDN博客

【智能指针二】智能指针互转_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博客

函数指针

函数指针与函数对象详解_函数指针对象-CSDN博客

static

c++——static总结_c++ static_却道天凉_好个秋的博客-CSDN博客

在 C/C++中 static 关键字详解_c++static_-YIN的博客-CSDN博客

cr lf 回车和换行

C语言中<CR>是什么意思-CSDN博客

终于搞懂了回车与换行的区别-CSDN博客

muduo

Localtime函数-CSDN博客

C++ strftime() 函数-CSDN博客

using

C++ 中using 的使用_c++ using-CSDN博客

__thread

__thread详解(gcc关键字)___thread gcc-CSDN博客

webgis

WebGIS开发入门_杨大大28的博客-CSDN博客

第一章第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™

https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/77813

推荐阅读
相关标签
  

闽ICP备14008679号