Jeston与Px4(四)

文章介绍了如何通过ROS来控制PX4固件,包括在Linux环境下搭建PX4开发环境,使用qt或keil进行源代码编译和烧录,利用mavros和mavlink协议进行ROS与飞控的通信。此外,还提到了gazebo仿真平台以及QGroundControl(QGC)的数据获取和控制功能。虽然gazebo仿真可能需要较大内存,但它是模拟飞行环境的重要工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROS控制PX4

上一节里我们已经将mavros和仿真gazebo搭建完毕,这一节将通过ros来实现对接PX4固件的目标

1、搭建PX4开发固件环境

“永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决”。
在这里插入图片描述

px4源码和匿名一样,用qt(或别的)在linux上进行开发
在这里插入图片描述
在这里插入图片描述
在匿名开发过程里,我们通过keil对飞控源代码进行编译和烧录,通过在源代码里写程序来执行任务
PX4只在源代码里进行部分参数的修改和相关传感器的配置等,任务控制则通过ros来实现,ros通过mavros的mavlink协议来实现与飞控程序的交流,ros则相当于一个自动化控制平台,直接对接px4上的相关接口,而不对源代码进行修改
gozabo仿真是针对ros平台,模拟飞行环境,来仿真
1、在linux上能够实现对px4源代码的修改
2、通过ros来对px4进行对接,ros上可以显示px4,需要pixhawk与机载电脑连接(怎么把px4烧录进pixhawk)
(3、gozabo仿真)
4、qgc通过mavlink对ros进行数据获取与控制(不清楚可不可以)(也不清楚是否可以进行远端桥接,数传或者wifi)
5、qt可以对px4进行修改编译和烧录
6、ros对接px4如果使用gazebo仿真的话需要电脑内存,所以先不执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 如何在 Nvidia Jetson 设备上设置和连接 VNC #### 安装必要的软件包 为了使 VNC 正常工作,需要先安装一些基础组件。可以通过 SSH 或者直接操作 Jetson 来执行这些命令: ```bash sudo apt update && sudo apt upgrade -y sudo apt install xfce4 xfce4-goodies tightvncserver -y ``` 这组命令更新了系统的软件列表,并安装了一个轻量级桌面环境 XFCE 和 TightVNC Server[^1]。 #### 配置 VNC 服务 首次启动 VNC server 设置访问密码以及创建默认配置文件: ```bash vncserver :1 -geometry 1920x1080 -depth 24 ``` 上述指令指定了分辨率为 `1920x1080` 的显示实例编号为 `:1` 启动 VNC session;同时设置了颜色深度为 24-bit。之后可以按照提示设定用于验证身份的密码[^3]。 #### 自动化 VNC Session 启动 为了让每次开机都能自动运行 VNC service 并保持稳定在线状态,建议编写 systemd unit 文件来实现自动化管理: ```bash nano ~/.config/systemd/user/vncserver@:1.service ``` 向其中写入如下内容(注意替换 `<your_username>` 成实际用户名): ```ini [Unit] Description=Start TightVNC server at startup Requires=vncserver@:1.socket [Service] Type=forking User=<your_username> PAMName=login PIDFile=/home/<your_username>/.vnc/%H%i.pid ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 %i ExecStop=/usr/bin/vncserver -kill %i [Install] WantedBy=default.target ``` 保存退出后启用此服务单元以便随系统一同加载: ```bash systemctl --user enable vncserver@:1.service systemctl --user start vncserver@:1.service ``` 此时已经完成了基本的服务端部署工作。 #### 下载并安装 VNC Viewer 前往官方网站下载适用于客户端平台版本的应用程序——对于 Windows 用户来说就是通过浏览器打开链接 https://www.realvnc.com/en/connect/download/viewer/ ,然后遵循页面指示完成整个安装流程。 #### 建立安全网络通道 考虑到安全性因素,在公共互联网环境下推荐采用加密隧道方式转发本地端口到目标机器对应的 VNC port 上面去。这里以 OpenSSH 提供的例子说明如何建立这样的连接: ```bash ssh -L 5901:localhost:5901 user@jetson_ip_address ``` 这条语句将在本机监听 5901 号端口并将所有传入的数据流重定向至远端主机相同位置处等待处理。当然也可以根据实际情况调整参数适应不同场景下的需求[^2]。 #### 使用 VNC Viewer 登录 最后一步就是在已准备好的环境中利用图形界面工具登录远程桌面啦!双击之前安裝完毕后的快捷图标唤起应用程序窗口,接着输入形如 `localhost:1` (假设上面提到过的 ssh tunnel 已经生效) 的地址字符串提交请求。如果一切顺利的话很快就能看到熟悉的登录界面了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值