赞
踩
制作树莓派SD卡备份镜像——树莓派系统备份与还原指南_树莓派sd卡镜像制作_kzmw的博客-CSDN博客
网络共享给树莓派的网口,然后利用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博客
【Ubuntu报错】command not found: nmcli_ubuntu安装nmcli_Holen&&Beer的博客-CSDN博客
用树莓派搭建远程实时画面传输_树莓派通过java实时传输图像和控制_扑朔丶的博客-CSDN博客
树莓派(网络摄像头)4G网络720p高清图传(python3.7+SpringBoot-JavaNetty+Android-Mediacodec)_树莓派4g图传_wx:pjcoder的博客-CSDN博客
树莓派小车的4G遥控与视频回传(内网穿透)_树莓派4g网卡传视频_黑名单 2841703718的博客-CSDN博客
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博客
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
unmanaged
state.nmcli
ifconfig
- 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
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
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博客
(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博客
(79条消息) ROS2安装serial库_serial安装_暮尘依旧的博客-CSDN博客
(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博客
C++多态--虚函数virtual及override_虚函数override_i_chaoren的博客-CSDN博客
C++中重写(override)和重载(overload)_c++ override_软件技术爱好者的博客-CSDN博客
【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函数详解(向线程函数传递参数)_焱齿的博客-CSDN博客
【Linux系统IO函数】read、write函数及实现文件拷贝_read函数实现_傅耳耳的博客-CSDN博客
linux中sigaction函数详解_魏波.的博客-CSDN博客
(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博客
面试官,不要再问我三次握手和四次挥手_猿人谷 三次握手四次挥手-CSDN博客
【Linux】进程与文件系统(上)_linux进程文件_咸菜不闲的博客-CSDN博客
TCP网络编程中connect() listen()和accept()三者之间的关系_tcp accept_致守的博客-CSDN博客
Socket缓冲区_socket buffer-CSDN博客
epoll原理详解及epoll反应堆模型_epoll模型-CSDN博客
epoll原理详解及epoll反应堆模型_epoll模型-CSDN博客
网络高并发服务器之epoll接口、epoll反应堆模型详解及代码实现_青城山小和尚的博客-CSDN博客
【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 和 Proactor?_reactor和proactor_小林coding的博客-CSDN博客
轮询调度算法(Round-Robin Scheduling)_夜流冰的博客-CSDN博客
rall机制 即对资源的获取和释放进行控制,对于new获得的空间,需要记得delete
堆(大根堆、小根堆)_小根堆和大根堆_pingdaozhang的博客-CSDN博客
Linux SIGPIPE信号产生原因与解决方法_哀酱的博客-CSDN博客
HTTP协议(详解)_ufgnix0802的博客-CSDN博客
看完这篇HTTP,跟面试官扯皮就没问题了_accept-charset和accept-encoding-CSDN博客
【计算机网络】HTTP 协议详解_http协议解析-CSDN博客
【014 关键字】一文彻底搞懂extern用法_Kashine的博客-CSDN博客
【C++深陷】之“成员模板”_c++成员模板_Jinxk8的博客-CSDN博客
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博客
【C++】C++11的std::function和std::bind用法详解_std::bind和std::function_Yngz_Miao的博客-CSDN博客
C++单例的安全实现,double-check(双重检查锁定)的安全实现方法_手写单例模式c++双校验锁_橘色的喵的博客-CSDN博客
c++多线程(八) - 双重检查_检查mutex 是否为null_万里归来少年心的博客-CSDN博客
C++11中weak_ptr的使用_weakptr lock_fengbingchun的博客-CSDN博客
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博客
C语言 enum/typedef enum 枚举类型详解_Steven&Aileen的博客-CSDN博客
【智能指针二】智能指针互转_static_pointer_cast_郑同学的笔记的博客-CSDN博客
普通指针到智能指针的转换_指针转智能指针_seamanj的博客-CSDN博客
pragma once用法总结_pargram once_DaMercy的博客-CSDN博客
【C++】C++11的std::function和std::bind用法详解_c++中的std中的方法-CSDN博客
c++——static总结_c++ static_却道天凉_好个秋的博客-CSDN博客
在 C/C++中 static 关键字详解_c++static_-YIN的博客-CSDN博客
C++ 中using 的使用_c++ using-CSDN博客
__thread详解(gcc关键字)___thread gcc-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: Free and open source software for aerial data storage. (github.com)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。