1.背景
使用无人机机载电脑nx运行控制脚本,而我的仿真无人机在自己电脑运行,当两者ros信息共享后,还需要将mavros版本一致,不然会报错
2.卸载mavros
sudo apt remove mavros
#查看版本
rosversion mavros
3.安装指定版本的mavros
rosinstall_generator --upstream mavros=1.14.0 --rosdistro noetic | tee -a /tmp/mavros.rosinstall
#这条命令是用于生成 ROS 工作区中的 mavros 软件包的安装清单(rosinstall 文件)。让我逐步解释这个命令:
rosinstall_generator: 这是一个 ROS 工具,用于生成 ROS 软件包的安装清单。
--upstream mavros=1.14.0: 这部分指定了要安装的软件包的信息。具体而言,它告诉 rosinstall_generator 生成 mavros 软件包的安装清单,版本为 1.14.0。这将确保你获取指定版本的 mavros 软件包。
--rosdistro noetic: 这指定了 ROS 发布的版本,即 "noetic"。这确保生成的安装清单与 ROS Noetic 版本兼容。
| tee -a /tmp/mavros.rosinstall: 这部分使用管道将生成的安装清单输出到 /tmp/mavros.rosinstall 文件,并在输出的同时在终端上显示。tee 命令用于将输出写入文件,而 -a 选项表示追加内容到文件末尾。
综合起来,这个命令的目的是生成一个 ROS 工作区所需的 mavros 软件包的安装清单,版本为 1.14.0,适用于 ROS Noetic 版本,并将这个清单保存到 /tmp/mavros.rosinstall 文件中。
这个命令好像无法生成,对应的安装清单,但是会新建一个/tmp/mavros.rosinstall文件,修改该文件,可以参考https://github.com/mavlink/mavros/blob/master/dependencies.rosinstall,这里我们根据自己的需要设置成如下
- git:
local-name: mavros #安装在本地的名称
uri: https://github.com/mavlink/mavros.git #资源在哪
version: 1.4.0 #版本号
使用如下命令运行下载
cd catkin_ws
wstool init src /tmp/mavros.rosinstall
编译
catkin build mavros
重启终端测试
roscd mavros
rosversion mavros