ArduSub SITL Ubuntu mavros环境搭建

第一章 ArduSub SITL Ubuntu环境搭建
作者:张玉梅 zhangym@pcl.ac.cn
1.1.安装过程
第一步:
http://ardupilot.org/dev/docs/building-setup-linux.html#building-setup-linux
Setting up the Build Environment (Linux/Ubuntu)
如果已经有git了。可以忽略页面中git相关的步骤。

  • git clone https://github.com/ArduPilot/ardupilot
  • cd ardupilot
  • git submodule update --init --recursive

Tools/environment_install/install-prereqs-ubuntu.sh -y  
(安装耗时很长,需要权限, 可能报错,报错再根据提示或根据经验进行修正)
. ~/.profile

找到你的路径,根据你的路径修改环境变量,例如:
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH

安装交叉编译工具
cd TARGET_DIR
tar -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

sudo apt-get install ccache

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

第二步:
http://ardupilot.org/dev/docs/setting-up-sitl-on-linux.html
启动SITL

$ sim_vehicle.py -v ArduSub

当显示
.....
APM: EKF2 IMU0 is using GPS
APM: EKF2 IMU1 is using GPS
Flight battery 100 percent
就成功了。
按ctrl+C。再启动sim_vehicle.py

ardupilot/Tools/autotest$ sim_vehicle.py -L RATBeach --out=udp:0.0.0.0:14550 --map –console -v ArduSub

第三步,安装运行mavros相关软件包
http://ardupilot.org/dev/docs/ros-install.html#installing-mavros

$sudo apt-get install ros-kinetic-mavros*

修改apm.launch
http://ardupilot.org/dev/docs/ros-sitl.html

<launch>
    <!-- vim: set ft=xml noet : -->
    <!-- example launch script for ArduPilot based FCU's 

    <arg name="fcu_url" default="/dev/ttyACM0:57600" />
-->
    <arg name="fcu_url" default="udp://127.0.0.1:14550@" />
    <arg name="gcs_url" default="" />
    <arg name="tgt_system" default="1" />
    <arg name="tgt_component" default="1" />
    <arg name="fcu_protocol" default="v2.0" />
    <arg name="respawn_mavros" default="false" />

    <include file="$(find mavros)/launch/node.launch">
        <arg name="pluginlists_yaml" value="$(find mavros)/launch/apm_pluginlists.yaml" />
        <arg name="config_yaml" value="$(find mavros)/launch/apm_config.yaml" />

        <arg name="fcu_url" value="$(arg fcu_url)" />
        <arg name="gcs_url" value="$(arg gcs_url)" />
        <arg name="tgt_system" value="$(arg tgt_system)" />
        <arg name="tgt_component" value="$(arg tgt_component)" />
        
        <arg name="fcu_protocol" value="$(arg fcu_protocol)" />
        <arg name="respawn_mavros" default="$(arg respawn_mavros)" />
    </include>
</launch>


运行修改后的apm.launch。
开始SITL了。
1.2.可能错误处理
可能报错:
File not readable /usr/share/GeographicLib/geoids/egm96-5.pgm | 
Run install_geographiclib_dataset.sh script in order to install Geoid Model dataset!
解决方法:从github下mavros源码。源码中找到install_geographiclib_dataset.sh  使用root用户执行此脚本。
$ find . -name install*
./mavros/scripts/install_geographiclib_datasets.sh

安装时间很长。安装好之后,再次遇到同样的错误。发现安装目录在/usr/local/share/GeographicLib/ 而 launch读取路径是/usr/share/GeographicLib。拷贝一份到/usr/share/GeographicLib路径下。OK。

第二章 SITL仿真笔记


2.1.修改固件ardusub代码,重新编译
尝试修改一些log 在仿真环境中查看log是否更新
将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 GPS
APM: EKF2 IMU1 is using 9999 GPS
Flight battery 100 percent
Log已经生效。哈哈。
切换到ardusub stable 分支
$git checkout ArduSub-stable

https://www.ardusub.com/developers/sitl.html

https://www.ardusub.com/developers/developers.html

作者:caiyunfreedom 
原文:https://blog.csdn.net/CAIYUNFREEDOM/article/details/98217566 


2.2.发送mavros指令,让SITL运动


~$ roslaunch mavros apm.launch 、
其中apm.launch已经按照1.1修改。

zhangym@zhangym:~$ rosrun mavros mavparam set SYSID_MYGCS 1
1
zhangym@zhangym:~$ rosservice call /mavros/cmd/arming 1
ERROR: Unable to communicate with service [/mavros/cmd/arming], address [rosrpc://zhangym:54203]
zhangym@zhangym:~$ rosservice call /mavros/cmd/arming 1
/opt/ros/kinetic/lib/python2.7/dist-packages/rosservice/__init__.py:607: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  service_args.append(yaml.load(arg))
success: True
result: 0
zhangym@zhangym:~$ rosrun mavros mavparam set SYSID_MYGCS 255
Traceback (most recent call last):
  File "/opt/ros/kinetic/lib/mavros/mavparam", line 104, in <module>
    main()
  File "/opt/ros/kinetic/lib/mavros/mavparam", line 100, in main
    args.func(args)
  File "/opt/ros/kinetic/lib/mavros/mavparam", line 63, in do_set
    print(param_set(args.param_id, val))
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/mavros/param.py", line 146, in param_set
    raise IOError(str(ex))
IOError: service [/mavros/param/set] responded with an error: 
遇到一些错误, 重启,重试好了。

上图是发送指令后, 位置和速度的变化。

1./mavros/rc/override
Message: mavros_msgs/OverrideRCIn, send RC override message to FCU.
Channel    Meaning    1500+    1500-
1    Pitch    抬头    低头
2    Roll    往右翻转    往左翻转
3    Throttle    上升    下潜
4    Yaw    顺时针    逆时针
5    Forward    向前    向后
6    Lateral    右移    左移
7    Camera Pan(No signal in BlueRov)        
8    Camera Tilt    向上    向下

Mavros control BuleROV
1.Set SYSID_MYGCS to 1 to enable override, QGC will lose control when SYSID_MYGCS is 1, setback to 255 to change control rights to QGC
rosrun mavros mavparam set SYSID_MYGCS 1

2.Mavros change mode of mavlink, ('Available modes: ', ['STABILIZE', 'POSHOLD', 'AUTO', 'GUIDED', 'MANUAL', 'SURFACE', 'ALT_HOLD', 'CIRCLE', 'ACRO'])
rosservice call /mavros/set_mode "base_mode: 0 custom_mode: 'GUIDED'" 

3.Arming/unarming
rosservice call /mavros/cmd/arming 0
rosservice call /mavros/cmd/arming 1

4.Publish override rc
rostopic pub -1 /mavros/rc/override mavros_msgs/OverrideRCIn '[1500, 1500, 1500, 1500, 1500, 2000, 1500, 1500]


2.3.Mavros 修改频率


http://ardupilot.org/dev/docs/ros-data-from-ap.html

APSync的用户可能会注意到APWeb每10秒将数据流速率重置为4hz。这是一个已知的问题,可以通过编辑/etc/rc.local文件并注释掉启动APWeb的行来解决。
/etc/rc.local文件 是树莓派里的的文件..
 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Ubuntu 18.04下搭建PX4环境的步骤如下: 1. 安装依赖项 在终端中输入以下命令: sudo apt-get update sudo apt-get install git zip qtcreator cmake build-essential genromfs ninja-build libopencv-dev libeigen3-dev -y 2. 克隆PX4代码 在终端中输入以下命令: cd ~ git clone https://github.com/PX4/Firmware.git --recursive 3. 安装PX4工具链 在终端中输入以下命令: cd ~/Firmware make px4_sitl_default gazebo 4. 配置环境变量 在终端中输入以下命令: echo "source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware ~/Firmware/build/px4_sitl_default" >> ~/.bashrc source ~/.bashrc 5. 启动PX4仿真 在终端中输入以下命令: cd ~/Firmware make px4_sitl_default gazebo 6. 测试 在终端中输入以下命令: cd ~/Firmware make px4_sitl_default gazebo 以上就是在Ubuntu 18.04下搭建PX4环境的步骤。 ### 回答2: 在ubuntu18.04下搭建PX4环境,需要进行以下步骤: 1.更新安装包: sudo apt-get update sudo apt-get upgrade 2.安装GNUPG: sudo apt install gnupg 3.下载PX4 GPG key: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 045F9926759BAC3C 4.添加PX4软件源: sudo add-apt-repository "deb https://px4.io/repos/apt/ubuntu `lsb_release -cs` main" 5.更新软件源: sudo apt-get update 6.安装PX4: sudo apt install px4 7.安装PX4模拟器: sudo apt install sitl 8.安装ROS框架: sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt-get update sudo apt-get install ros-melodic-desktop-full 9.依照机型安装相应依赖包: sudo apt-get install protobuf-compiler libeigen3-dev libxml2-utils libopencv-dev libblas-dev liblapack-dev libboost-all-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev gstreamer1.0-plugins-good python-matplotlib python-argparse python-lxml python-yaml python-six python-dev python-numpy python-pip python-setuptools cmake build-essential sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt-get update 10.构建PX4: 注意,以下操作要在PX4源代码目录下执行 cd PX4-Autopilot make px4_sitl_default gazebo 11.启动PX4模拟器: ./Tools/gazebo_sitl.sh -i 0 -m iris gazebo 以上就是在ubuntu18.04下搭建PX4环境的完整步骤,如果按照以上步骤进行操作,就能够成功地搭建并启动模拟器,进行相关的开发调试。 ### 回答3: 在Ubuntu 18.04下搭建PX4环境,需要以下步骤: 1. 安装依赖项 在Ubuntu中,需要安装以下软件包: - git - cmake - python-jinja2 - python-pip - python-dev - build-essential - pkg-config - libgtk-3-dev - libcanberra-gtk3-module - libavcodec-dev - libavformat-dev - libswscale-dev - libreadline-dev - libudev-dev 可以通过以下命令进行安装: sudo apt-get install git cmake python-jinja2 python-pip python-dev build-essential pkg-config libgtk-3-dev libcanberra-gtk3-module libavcodec-dev libavformat-dev libswscale-dev libreadline-dev libudev-dev 2. 下载PX4源代码 安装完成依赖项后,需要从Github上下载PX4源代码,可以通过以下命令进行: git clone https://github.com/PX4/Firmware.git --recursive 3. 安装PX4的依赖项 PX4的依赖项可以通过以下命令进行安装: cd Firmware make px4_sitl_default gazebo 如果出现错误,请安装缺少的依赖项。常见的依赖项包括python-future、python-empy、python-toml等。 4. 编译PX4 编译PX4可以通过以下命令进行: cd Firmware make px4_fmu-v3_default 5. 启动PX4 启动PX4可以通过以下命令进行: cd Firmware make px4_sitl_default 在启动过程中可能会出现一些错误,常见的错误包括端口被占用、缺少权限等。需要根据实际情况进行处理。 以上就是Ubuntu 18.04下搭建PX4环境的步骤,希望能对大家有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值