树莓派4B学习2——作为机载计算机控制PX4

这个帖子只是为了方便复习,网上搜资料太麻烦,总会忘记其中某一步,从而导致卡半天。

树莓派作为机载相机控制PX4,需要进入offboard模式,在上一章中完成了树莓派与PX4的连接,并且可以进行通信,可以通过树莓派查看PX4发布的话题。但是还不能进入offboard模式,运行官网的代码,同时执行rostopic echo /mavros/state指令就会发现mode模式始终不为offboard,并且无人机电机也不会转动。

刚开始以为是树莓派中安装的是ubuntu20.04,而笔记本中的为ubuntu18.04,烧录的PX4固件是在笔记本的Ubuntu系统中编译出来的,难不成是这个影响了?后来思来想去,感觉应该没什么影响,他们之间通过mavros通信,和版本应该关系不大。

通过观察地面站,发现室内没有GPS信号,在树莓派中执行打印位置信息指令,就会发现会卡住,不能打印,与此同时,执行roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600指令的那个终端会显示:

HP:requesting home position

于是拿着无人机跑到外面测试了一下,发现可以进入offboard模式,并且电机可以转动,树莓派中的终端显示大概如下图所示:

虽然可以进入offboard模式了,但是总不能每次实验都要跑到室外去吧,那可也太麻烦了,所以不惜花重金买了个光流模块,准备在室内试一试能不能进入offboard模式,并且进行自由控制。

-----------------------------------

填了个光流模块,可以在室内飞行。

------------------------------------    20240314    ------------------------------------

最近买了一个可测深度的相机,奥比中光的,花了近500大洋。。。

安装依赖可以采用这个链接中的

【树莓派4B】ubuntu20.04-ROS-noetic使用astra s相机过程_ros-noetic-libuvc-CSDN博客

但是安装编译过程中会遇到问题:

受到启发利用奥比中光astra mini和ar_trck_alvar在ubuntu20.04环境下实现识别二维码功能【保姆级教程】_二维码ar检测 ubuntu-CSDN博客z​​​​​​

 执行指令即可

sudo apt install libgoogle-glog-dev libusb-1.0-0-dev libeigen3-dev

随后执行

roslaunch astra_camera astra.launch
rqt

效果图如下: 

------------------------------------    20240316    ------------------------------------

今天解决了一个小问题,记录一下。

目前我将pixhawk通过ch340连接到树莓派上(通过usb接口),是可以正常通信的,也可以进入offboard模式实现对无人机远程控制;但是我将rgb相机和新买的astra相机与ch340同时连接到树莓派上时,执行roslaunch mavros px4.launch指令后,rgb相机和astra相机原本能获取的图像突然无法获取。经过查阅,发现是树莓派默认只开启一个usb,需要将其他几个打开。按照下面链接执行,大概率可以解决问题:

树莓派4B之ubuntu系统配置UART_树莓派cm4配置使用ttyama1-CSDN博客

 直接执行下面指令

sudo nano /boot/firmware/config.txt

添加内容:

dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5

 添加后,重启即可,不需要按照上面链接执行指令

ls /dev/ttyAMA*

不需要查阅是否存在ttyAMA*,此时大概率解决了上面说的问题。另外,roslaunch mavros px4.launch指令还是用USB0口,不许用AMA0之类的口。

最后展示一下同时执行后获取的图像(左上是执行roslaunch mavros px4.launch后出现的终端口,左下是获取pixhawk的状态终端,右图中一个是深度相机获取到的深度图片,另一个是rgb相机获取到的rgb图片):

 

------------------------------------    20240317    ------------------------------------

 今天又解决了一个小问题,记录一下。

今天写代码的时候突然发现,pixhawk与树莓派传输数据后,发布的/mavros/local_position/pose等话题发布速率过慢,达不到我的要求,经过查阅

修改mavros中话题的发布频率_rosrun mavros mavcmd long 511 31 150 0 0 0 0 0-CSDN博客

 按照其修改即可解决。

主要就是查阅MAVLink官网csdn - 安全中心,然后在官网里搜索要更改的发布话题的速率的话题名称,比如/mavros/local_position/pose,就查local_position,然后记住那个代号,随后执行下面代码(把105换成自己的代码,把10000换成自己想要的速率,10000对应100hz):

 rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0

此外,由于手打roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:57600和上面代码太麻烦了,今天写了个launch文件,这样就可以不用来回手打啦。代码如下:

<launch>
  <arg name="fcu_url" default="/dev/ttyUSB0:57600" />
  <include file="/opt/ros/noetic/share/mavros/launch/px4.launch">
      <arg name="fcu_url" value="$(arg fcu_url)" />
  </include>
  <node pkg="mavros" type="mavcmd" name="mavcmd_node" output="screen" args="long 511 32 20000 0 0 0 0 0"/>
</launch>

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值