无人机搭载机载计算机需要与地面站进行信息交互,所以记录一下过程防止忘记!
目录
前言
无人机在飞行过程中,地面站需要采集其相关信息,所以通过ros来进行无人机信息的订阅,这里也就是相关话题的发布和订阅。主要介绍的内容也很简单包括 ROS_MASTER_URI、ROS_HOSTNAME、ROS_IP的相关信息和使用。
一、ROS_MASTER_URI
上面是官方文档的介绍和使用,然后我的理解是有两台计算机你要设置其中一台计算机为主计算机,另一台来订阅其发布的话题(我是这么使用的),那么这两台计算机就都需要设置和主计算机相同的这个ip地址,也就是图中的mia值。相当于一台计算机的ros_master管理了两台计算机。当然也可以是多台计算机。
二、ROS_HOSTNAME/ROS_IP
同样是官方文档上图。然后我是用到的是用ROS_HOSTNAME来设置ip地址。
三、具体使用
1、硬件连接
使用路由器将两台计算机连接至相同的局域网(LAN),可以在路由器上找到这个接口,一般LAN接口多于WAN接口。不要忘记给路由器充电!没电不干活。然后通过网线分别连接至两台计算机上,也可以通过wifi连接,都可以使它们拥有相同的ip地址。
2、相关设置
分别在两台计算机上使用 ifconfig 命令,来查看本机的ip。然后将它们写入 家目录下的 .bashrc 文件中去,最后都要 source 一下才可以生效。
例如:你的机载计算机的 ip 地址是 192.168.1.101 ,然后地面站的 ip 地址是 192.168.1.100。
在机载计算机的 ~/.bashrc 中末尾加入
export ROS_HOSTNAME = 192.168.1.101
export ROS_MASTER_URI = http://192.168.1.101:11311
在地面站的 ~/.bashrc 中末尾加入,注意这里的ROS_MASTER_URI的设置噢
export ROS_HOSTNAME = 192.168.1.100
export ROS_MASTER_URI = http://192.168.1.101:11311
,添加完成之后不要忘记 source 一下。
3、测试
1)机载计算机
在机载计算机中打开终端 ctrl+alt+t 。然后输入以下命令:
roscore
#打开一个新终端,输入
rosrun turtlesim turtlesim_node
2)地面站
打开终端,输入以下命令:
rostopic list
之后就可以订阅到机载计算机发布的话题了!
总结
主要是介绍了两台计算机在 ros 环境下的话题的订阅和发布。