查看: 511|回复: 20

通过MAVROS连接机载电脑(NANO/TX2/NX) …

[复制链接]

27

主题

631

帖子

1248

积分

金牌飞友

Rank: 6Rank: 6

积分
1248
飞币
613
注册时间
2017-8-28
发表于 2022-10-24 06:35:56 | 显示全部楼层 |阅读模式
一、MAVROS

MAVROS常用话题和服务可以看CK1201:常用MAVROS话题和服务 。
1.1介绍

MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控,飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX4各模块间传递消息使用,也可以反过来从uORB消息一直到ROS话题。
代码示例看MAVROS Offboard control example就好了,讲得很清楚。
1.2特别注意


  • 不要用程序切offboard模式!!!
  • 不要用程序切offboard模式!!!
  • 不要用程序切offboard模式!!!
  • 示例程序在循环里反复切offboard模式,要是访问不到机载电脑,关闭不了控制节点,那就一直会处于offboard模式。如果发送的指令还是速度控制指令就完了。所以设立电子围栏也很重要,至少砸到人的几率小了。
  • 建议用遥控器切换模式,如果程序出现问题立即用遥控器切换到自稳等其他模式。
  • 消息需要以大于2Hz的频率发送,否则PX4会切换回offboard之前的模式。
  • 切换到offboard需要位置信息,比如GPS提供的位置信息,在使用前要确保无人机在定点模式!
  • ROS中的坐标是ENU(东北天),而PX4中是NED(北东地)。MAVROS已经对坐标进行了转换。
ROSPX4
XY
YX
Z-Z
<hr/>二、MAVROS与PX4的连接

2.1 Gazebo仿真

2.1.1启动Mavros

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
2.1.2启动Gazebo仿真环境

roslaunch px4 posix_sitl.launch
2.1.2启动外部控制节点

rosrun offb_ctrl offb_ctrl_node2.2真机

参考Companion Computer for Pixhawk Series,MAVLink Peripherals (GCS/OSD/Companion)
2.2.1配置Pixhawk上的Telem2作为MAVLINK端口


  • MAV_1_CONFIG= TELEM 2
  • MAV_1_MODE = Onboard
  • SER_TEL2_BAUD = 921600 8N1
一开始参数里可能只有MAV_1_CONFIG,搜不到其他的参数,只需要先把MAV_1_CONFIG设置为TELEM 2,然后把飞控重启后就有了。
2.2.2在机载电脑上启动MAVROS

我这里用的是jetson nano的串口2,也就是dev/ttyTHS1,这个按照自己实际情况写就好了。最后的921600是波特率,就是2.2.1中设置的SER_TEL2_BAUD,改成设置的值就行了。
roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600 gcs_url:=udp://@192.168.0.0
gcs_url为运行QGC的主机的IP
设置为以下参数表示自动寻址,直到连上QGC
roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600 gcs_url:=udp-b://@
可能会报错
FCU: DeviceError:serial:open: Permission denied
解决方法是给对应的串口权限
sudo chmod 777 /dev/ttyTHS1
虽然这样子mavros就正常运行了,但是节点信息会卡在xxxxxx start  xxxxxxx,然后/mavros/state中的connected是false。这个问题卡了我一天,后来我把波特率往下降到460800以下就能正常使用了。如果知道这是什么原因欢迎私信或评论,谢谢。(评论区有大佬指出是因为数据线太长,导致传输过程中到达不了那么高的波特率,所以不能成功连接)
可能会报timesync的异常,解决方法是:
sudo gedit /opt/ros/melodic/share/mavros/launch/px4_config.yaml
把第12行改为
timesync_rate: 0.0
2.2.3一劳永逸

每次要在后面加一堆参数很烦,所以直接修改launch文件,使用sudo权限打开/opt/ros/melodic/share/mavros/launch/px4.launch,将
<arg name="fcu_url" default="/dev/ttyACM0:57600" />修改为自己的端口和波特率
<arg name="fcu_url" default="/dev/ttyTHS1:921600" />2.2.4运行外部控制节点

rosrun offb_ctrl offb_ctrl_node
三、其他

3.1提高mavros中IMU话题的发布频率

rosrun mavros mavcmd long 511 105 10000 0 0 0 0 0//提高mavros/imu/data_raw频率
rosrun mavros mavcmd long 511 31 10000 0 0 0 0 0//提高mavros/imu/data频率
10000表示话题的发布时间间隔为10000us,可以自由调节

25

主题

685

帖子

1349

积分

金牌飞友

Rank: 6Rank: 6

积分
1349
飞币
662
注册时间
2017-8-18
发表于 2022-10-24 06:45:33 | 显示全部楼层
作者您好,我最近也在学习板载计算机通过MAVROS及offboard模式控制PX4飞控,可以有空的时候交流一下吗?

18

主题

662

帖子

1302

积分

金牌飞友

Rank: 6Rank: 6

积分
1302
飞币
633
注册时间
2017-8-25
发表于 2022-10-24 06:59:54 | 显示全部楼层
欢迎交流。可以私聊加我微信或者评论交流都可以

23

主题

723

帖子

1435

积分

金牌飞友

Rank: 6Rank: 6

积分
1435
飞币
702
注册时间
2017-8-15
发表于 2022-10-24 07:12:45 | 显示全部楼层
请问你在实验过程中有没有在tx2安装QGC地面站?因为我想在仿真里先试试offboard模式,但是目前无法在TX2安装qgc地面站

21

主题

676

帖子

1318

积分

金牌飞友

Rank: 6Rank: 6

积分
1318
飞币
640
注册时间
2017-9-25
发表于 2022-10-24 07:25:01 | 显示全部楼层
仿真的话是在笔记本或者台式机上做的,tx2主要用来计算和通信

29

主题

671

帖子

1326

积分

金牌飞友

Rank: 6Rank: 6

积分
1326
飞币
653
注册时间
2017-9-25
发表于 2022-10-24 07:36:37 | 显示全部楼层
我昨天TX2也装了好久,不成功,请问你成功了吗?

24

主题

673

帖子

1331

积分

金牌飞友

Rank: 6Rank: 6

积分
1331
飞币
651
注册时间
2017-8-25
发表于 2022-10-24 07:46:48 | 显示全部楼层
没有,不准备浪费时间在上面了,换个思路

219

主题

252

帖子

689

积分

高级飞友

Rank: 4

积分
689
飞币
435
注册时间
2017-8-2
发表于 2022-10-24 08:01:01 | 显示全部楼层
可以安装MissionPlanner,参照这个链接:Running Mission Planner on Linux

33

主题

675

帖子

1329

积分

金牌飞友

Rank: 6Rank: 6

积分
1329
飞币
650
注册时间
2017-9-11
发表于 2022-10-24 08:08:42 | 显示全部楼层
我后来直接不仿真了,直接用Linux串口给PX4发指令,不过还是谢谢您!

24

主题

680

帖子

1330

积分

金牌飞友

Rank: 6Rank: 6

积分
1330
飞币
648
注册时间
2017-8-13
发表于 2022-10-24 08:19:12 | 显示全部楼层
请问MAV_1_CONFIG等参数在哪里设置的?

47

主题

688

帖子

1412

积分

金牌飞友

Rank: 6Rank: 6

积分
1412
QQ
飞币
687
注册时间
2017-9-19
发表于 2022-10-24 08:25:27 | 显示全部楼层
飞控连上电脑,QGC的参数里可以查找到

18

主题

607

帖子

1191

积分

金牌飞友

Rank: 6Rank: 6

积分
1191
飞币
582
注册时间
2017-9-14
发表于 2022-10-24 08:32:16 | 显示全部楼层
谢谢大哥

243

主题

278

帖子

770

积分

高级飞友

Rank: 4

积分
770
飞币
485
注册时间
2017-7-15
发表于 2022-10-24 08:45:55 | 显示全部楼层
前来拜读大佬文章,然后串口降速的问题我也遇到了,从经验上感觉应该是线太长速度太快导致数据包完整程度受到影响,我仔细观察过921600的时候还是有机会能连上。解决方案可以试试把线弄短,然后加屏蔽层试试。

248

主题

274

帖子

779

积分

高级飞友

Rank: 4

积分
779
飞币
494
注册时间
2017-7-6
发表于 2022-10-24 08:52:12 | 显示全部楼层
okk感谢[调皮]

38

主题

683

帖子

1373

积分

金牌飞友

Rank: 6Rank: 6

积分
1373
飞币
681
注册时间
2017-9-5
发表于 2022-10-24 09:02:50 | 显示全部楼层
作者您好,我也想买一块nano,只买一块板子就可以了吗?要不要买显示器、wifi模块等等?

23

主题

701

帖子

1375

积分

金牌飞友

Rank: 6Rank: 6

积分
1375
飞币
668
注册时间
2017-9-8
发表于 2022-10-24 09:16:37 | 显示全部楼层
最好买个显示器和wifi模块。显示器主要是配环境的时候用,用完可以用nomachine远程,wifi网卡的话飞机飞的时候总不能连网线吧[调皮]

21

主题

688

帖子

1357

积分

金牌飞友

Rank: 6Rank: 6

积分
1357
飞币
660
注册时间
2017-9-28
发表于 2022-10-24 09:24:03 | 显示全部楼层
作者您好,我最近也在nano上运行这个px4官方例程来控制飞控,我想问一下,在实机测试这个例程的时候,无人机为什么会一直向上飞停不下来?

243

主题

280

帖子

768

积分

高级飞友

Rank: 4

积分
768
飞币
486
注册时间
2017-8-6
发表于 2022-10-24 09:34:53 | 显示全部楼层
大佬能加一下联系方式吗?有些问题想咨询您
[谢邀]

234

主题

263

帖子

728

积分

高级飞友

Rank: 4

积分
728
飞币
463
注册时间
2017-7-18
发表于 2022-10-24 09:47:40 | 显示全部楼层
你好,请问如何加屏蔽层呀,谢谢

26

主题

694

帖子

1380

积分

金牌飞友

Rank: 6Rank: 6

积分
1380
飞币
680
注册时间
2017-8-8
发表于 2022-10-24 09:53:45 | 显示全部楼层
大佬,为什么进行仿真的时候 mavros总是连接不上px4固件呢?
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表