两台ubuntu18.04电脑ros通信并利用mavros进行PX4-Gazebo仿真

两台ubuntu18.04电脑ros通信并利用mavros进行PX4-Gazebo仿真

  1. MAVROS安装
    mavros安装有两种方法,一种是二进制安装,一种是源码安装方式。本文推荐二进制安装方式,对于大部分开发者,仅仅使用mavros消息并不需要对其源码进行修改,mavros只作为通信媒介。
    执行命令:
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

本人电脑为Ubuntu18.04,ros版本为melodic,16.04ros版本为kinetic,对上述命令行进行相应修改即可。
运行 install_geographiclib_datasets.sh 脚本来安装GeographicLib datasets

 wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
 bash  ./install_geographiclib_datasets.sh
  1. mavros版本问题
    注意:两台电脑上的mavros版本必须保持一致,否则会报错或者警告,例如:
[WARN] [1639473174.588319]: Could not process inbound connection: Client [/mavros] wants topic [/mavros/rc/override] to have datatype/md5sum [mavros_msgs/OverrideRCIn/fd1e1c08fa504ec32737c41f45223398], but our version has [mavros_msgs/OverrideRCIn/73b27a463a40a3eda1f9fbb1fc86d6f3] Dropping connection.{'topic': '/mavros/rc/override', 'tcp_nodelay': '0', 'md5sum': 'fd1e1c08fa504ec32737c41f45223398', 'type': 'mavros_msgs/OverrideRCIn', 'callerid': '/mavros'}

此时运行命令:

rosversion mavros

查看mavros版本,如:
在这里插入图片描述
如果发现版本不对应,全部卸载安装最新版,不知道怎么通过二进制安装方式安装对应的mavros版本。

  1. 两台ubuntu18.04电脑ros通信
    (1)两台电脑在同一个局域网
    (2)修改 bashrc文件
    执行命令sudo gedit ~/.bashrc,添加以下内容:

主机中添加:

export ROS_HOSTNAME=主机hostname
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=主机IP

注意: 此处主机IP必须是主机ip地址,不可以是localhost,ubuntu查看IP地址命令为ifconfig,如下图所示:
在这里插入图片描述
从机中添加:

export ROS_HOSTNAME=从机hostname
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=主机IP

修改**/etc/hosts**文件
执行命令:

sudo gedit /etc/hosts

主机中添加:

从机IP 从机hostname

从机中添加

主机IP 主机hostname

主机名为命令行中@符号后的名字,根据上面图片,此主机名为ubuntu

ros通信测试
在从机中打印话题列表

rostopic list

可看到主机中的话题列表基本上是通信成功了的,或者:
主机运行:

roscore
rosrun turtlesim turtlesim_node

从机运行:

rosrun turtlesim turtle_teleop_key

如果可以通过从机上键盘控制主机上的小乌龟移动,就说明成功了!
参考链接:https://blog.csdn.net/zhanghm1995/article/details/106781954

  1. 两台ubuntu18.04进行px4-gazebo仿真
    从机定位至px4源代码文件夹,终端运行命令:
make px4_sitl gazebo

主机打开ros,终端运行roscore

roscore

从机终端运行:

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

其中:127.0.0.1 是指本机地址,14557 一般为默认, 可在px4代码编译终端命令时查看。
主机终端运行:

rostopic list

可以查看所有的话题消息名。
主机终端运行:

rostopic echo /mavros/state

查看mavros通信状态, connected=ture 表示正常连接。
主机终端运行例程,即可启动gazebo仿真中的无人机。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值