ArduSub SITL Ubuntu mavros环境搭建
发布日期:2021-05-08 01:21:00 浏览次数:39 分类:精选文章

本文共 2541 字,大约阅读时间需要 8 分钟。

ArduSub SITL Ubuntu环境搭建指南

第一章 ArduSub SITL Ubuntu环境搭建

1.1 安装过程

第一步:获取源代码

如果你已经安装了Git,可以跳过页面中关于Git的相关步骤。

git clone https://github.com/ArduPilot/ardupilotcd ardupilotgit submodule update --init --recursive

第二步:安装前置依赖

运行安装脚本并根据提示进行权限授予。

./Tools/environment_install/install-prereqs-ubuntu.sh -y

注意:安装时间较长,请耐心等待完成。

第三步:设置环境变量

根据你的路径修改~/.profile文件,例如:

export PATH=$PATH:/home/yourusername/ardupilot/Tools/autotestexport PATH=/usr/lib/ccache:$PATH

第四步:安装交叉编译工具

进入目标目录并解压工具包:

cd TARGET_DIRtar -xjvf gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2

然后更新路径:

export PATH=$PATH:TARGET_DIR/gcc-arm-none-eabi-4_9-2015q3/bin

安装ccache:

sudo apt-get install ccache

创建符号链接:

cd /usr/lib/ccachesudo ln -s /usr/bin/ccache arm-none-eabi-g++sudo ln -s /usr/bin/ccache arm-none-eabi-gcc

1.2 启动SITL

第一步:启动仿真

$ sim_vehicle.py -v ArduSub

当你看到以下信息时,说明仿真已成功启动:

APM: EKF2 IMU0 is using GPSAPM: EKF2 IMU1 is using GPSFlight battery 100 percent

按下Ctrl+C然后重新启动仿真。

第二步:配置高级参数

你可以使用以下命令启动带有自定义参数的仿真:

$ sim_vehicle.py -L RATBeach --out=udp:0.0.0.0:14550 --map --console -v ArduSub

1.3 安装mavros相关软件包

安装mavros组件:

sudo apt-get install ros-kinetic-mavros*

1.4 修改apm.launch配置文件

根据需求修改apm.launch文件中的参数,确保路径正确:

运行修改后的配置文件:

rosrun mavros mavparam set SYSID_MYGCS 1

1.5 错误处理

如果遇到如下错误:

File not readable /usr/share/GeographicLib/geoids/egm96-5.pgm

运行以下脚本以安装地理库数据集:

sudo ./mavros/scripts/install_geographiclib_datasets.sh

注意:安装时间较长,完成后再次尝试运行。

第二章 SITL仿真笔记

2.1 修改ardusub代码并重新编译

在仿真环境中修改代码并编译:

// 修改AP_NavEKF2_Control.cpp第303行gcs().send_text(MAV_SEVERITY_INFO, "EKF2 IMU%u is using 9999 GPS", (unsigned)imu_index);

编译后运行仿真:

$ sim_vehicle.py -v ArduSub -w

此时你应看到以下信息:

APM: EKF2 IMU0 is using 9999 GPSAPM: EKF2 IMU1 is using 9999 GPSFlight battery 100 percent

说明日志已生效。

切换至稳定版本分支:

git checkout ArduSub-stable

2.2 发送mavros指令进行控制

启动mavros并进入仿真环境:

$ roslaunch mavros apm.launch

发送控制指令:

$ rosrun mavros mavparam set SYSID_MYGCS 255

2.3 mavros控制配置

修改频率

编辑/etc/rc.local文件,注释掉APWeb启动命令:

# /etc/rc.local文件内容:# ...# @primehouse:~ .local/bin$ echo "APWeb" >> /etc/rc.local# ...

这样可以解决APSync数据流速率重置问题。

操控权限设置

设置mavros控制权限:

rosservice call /mavros/cmd/arming 1

检查服务状态:

rosservice call /mavros/param/set "param_id: 0, value: 255"

发送RC指令

发布RC指令:

rostopic pub -1 /mavros/rc/override mavros_msgs/OverrideRCIn "[1500, 1500, 1500, 1500, 1500, 2000, 1500, 1500]"

更换控制模式

切换至指引模式:

rosservice call /mavros/set_mode "base_mode: 0 custom_mode: 'GUIDED'"

以上步骤均需在仿真环境中进行,确保所有设备已正确连接并拥有相应权限。

上一篇:单片机串行通信
下一篇:C51中断系统理论与示例

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月09日 12时37分12秒