查看: 848|回复: 20

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

[复制链接]

42

主题

769

帖子

1532

积分

金牌飞友

Rank: 6Rank: 6

积分
1532
飞币
759
注册时间
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,可以自由调节

46

主题

848

帖子

1688

积分

金牌飞友

Rank: 6Rank: 6

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

27

主题

796

帖子

1568

积分

金牌飞友

Rank: 6Rank: 6

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

41

主题

858

帖子

1719

积分

金牌飞友

Rank: 6Rank: 6

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

36

主题

801

帖子

1575

积分

金牌飞友

Rank: 6Rank: 6

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

46

主题

831

帖子

1657

积分

金牌飞友

Rank: 6Rank: 6

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

34

主题

803

帖子

1594

积分

金牌飞友

Rank: 6Rank: 6

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

312

主题

349

帖子

972

积分

高级飞友

Rank: 4

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

47

主题

841

帖子

1666

积分

金牌飞友

Rank: 6Rank: 6

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

38

主题

819

帖子

1615

积分

金牌飞友

Rank: 6Rank: 6

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

62

主题

848

帖子

1735

积分

金牌飞友

Rank: 6Rank: 6

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

38

主题

746

帖子

1484

积分

金牌飞友

Rank: 6Rank: 6

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

337

主题

378

帖子

1058

积分

金牌飞友

Rank: 6Rank: 6

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

333

主题

364

帖子

1039

积分

金牌飞友

Rank: 6Rank: 6

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

52

主题

818

帖子

1652

积分

金牌飞友

Rank: 6Rank: 6

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

37

主题

844

帖子

1666

积分

金牌飞友

Rank: 6Rank: 6

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

29

主题

835

帖子

1649

积分

金牌飞友

Rank: 6Rank: 6

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

344

主题

386

帖子

1076

积分

金牌飞友

Rank: 6Rank: 6

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

332

主题

367

帖子

1028

积分

金牌飞友

Rank: 6Rank: 6

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

32

主题

854

帖子

1696

积分

金牌飞友

Rank: 6Rank: 6

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

本版积分规则

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