ubuntu18+jetson nano +px4+ros <——>QGC+ubuntu20+ros(关于仿真和实物运行的持续记录心得)

持续更新......

写在前面:

(1)如果存在rosdep问题参考Ubuntu20.04ROS rosdep update超时失败解决方法_npu2018302257的博客-CSDN博客

(2)如果存在一些github.com或者是raw.githubusercontent.com等其他一些好像网络的问题,在这个网页搜索,并以xxx.xxx.xxx.xxx github.com的格式写入 sudo gedit /etc/hosts

sudo /etc/init.d/networking restart

多个地点Ping服务器,网站测速 - 站长工具

(3)如果git clone 的时候出现failed之类的可以该一下dns:sudo gedit /etc/resolv.conf
改为以下,再刷新一下dns服务
nameserver 8.8.8.8
nameserver 114.114.114.114

(4)提前配置静态ip,后续可以摆脱ip动态分配带来的不便

一、仿真环境

my QGC env:双系统下的ubuntu20+ros noetic(anaconda也可以装一个)

(巨人的肩膀):PX4 User Guide

XTDrone使用文档 · 语雀          

1. 安装QGC

QGC - QGroundControl - Drone Control

2.仿真步骤,还参考了:

【无人机】PX4,ROS,Ubuntu20仿真运行_lunei的博客-CSDN博客

整理:

最先安装GeographicLib,时间很长,失败了就多试几次!!

wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh

sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这步很慢
 # 安装px4 的仿真配置
 git clone https://github.com/PX4/Firmware.git

 git checkout v1.11.3

 cd Firmware

 git submodule update --init --recursive #中断了就重复这一句

 cd Tools/setup

 sudo ./ubuntu.sh #pip安装会慢,可以编辑一下该文件,在pip 安装那一行末尾加 -i
 # https://pypi.tuna.tsinghua.edu.cn/simple

 
 #安装mavros
 cd 

 sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
  
 sudo apt-get install python3-catkin-tools python3-rosinstall-generator -y
 
 rosinstall_generator --rosdistro noetic mavlink | tee /tmp/mavros.rosinstall
 
 rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall
 
 rosinstall_generator --upstream-development mavros | tee -a /tmp/mavros.rosinstall

 mkdir -p ~/catkin_ws/src
 
 cd ~/catkin_ws

 catkin init

 wstool init src

 wstool merge -t src /tmp/mavros.rosinstall

 wstool update -t src -j16

 rosdep install --from-paths src --ignore-src -y

 catkin build

 source devel/setup.bash #可以写到~/.bashrc 中
 #尝试仿真小例子
 cd src
 
 catkin_create_pkg offboard_pkg roscpp std_msgs geometry_msgs mavros_msgs
 
 cd offboard_pkg/src

 gedit offboard_node.cpp#网上一搜就有

 cd ..
 
 gedit CMakeLists.txt
 #add_executable(offboard_node src/offboard_node.cpp)
 #target_link_libraries(offboard_node ${catkin_LIBRARIES})
 
 cd ~/catkin_ws
 catkin build
 catkin init
 source devel/setup.bash

cd /Firmware

make px4_sitl gazebo_iris
roscore
 
 
打开QGroundControl
 
新开终端执行
 
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
 
 
#roslaunch mavros px4.launch fcu_url:="udp://:14540@192.168.1.196:14557"



rosrun offboard_pkg offboard_node

offboard 测试起飞 

二、实物

主要搭建框架(参考px4 user guide):从ground station和vehicle来记录:

Ground station:

经过仿真的环境,基本环境已经搭建好了

vehicle

(1)查看固件是否需要重新刷新

若原本就是px4就不需要刷新<跳过这一小段> ,我的飞控pixhawk  2.4.8一开始刷固件是APM,许多px4的参数都没有,px4固件在这https://github.com/PX4/PX4-Autopilot/releases/tag/v1.11.0

所以需要重新刷px4固件,还不能刷太新的,会有问题,步骤参考,入门视频20分钟入门,利用QGC下载px4固件、校准传感器,注意事项_哔哩哔哩_bilibili:或者加载固件 | PX4 自动驾驶用户指南

点击选择advanced setting的最后一项,加载固件(我的是realse版本):px4fmu-v2-1.9.0.px4

烧录后对每一项进行校准,使得summury 的灯都是绿的。

注意会遇到的错误(在Qgc显示diconnect的时候,可以尝试重启电脑或者是重新烧录固件<diconnect 也可以烧录固件的>):如果仍然不能解锁可以连接地面站看看有啥报错

如果报错mag#0 fail uncalibrated :说明传感器校准有误,重新校准即可。校准选项有4个,分别为accel、gyro、mag、level、airspeed(加速计、陀螺仪、磁罗盘、水平仪和空速计)。

解锁的时候记得打开安全开关。

    完成后可以装桨测试一下,下面还是要拿桨的。

  

(2)机载板配置:jetsonnano ,一开始配置环境的时候连上鼠标键盘,其中视频对我的帮助很大https://www.youtube.com/watch?v=Brkk0ZmnGgs

连线:按照视频的步骤,连接pixhawk 2.4.8 的telem2 端口到串口pin8、10、gnd引脚,其中接口可以自己焊一个。rx连tx,tx连rx ,共地,因为烧录的是realense版本,在QGC需要对px4 参数SYS_COMPANION设置为921600,打开telem2串口传输设置。

 

连接之后,修改/dev/ttyTHS1权限,用cat看看有没有乱码传过来 ,波特率是可以通过usb或者数传连接地面站进行修改的。

launch设置:jetsonnano上装的是ubuntu18系统+ros,其中mavros已经安装

在/opt/ros/melodic/share/mavros中的launch中,复制px4.launch中,新建一个mypx4.launch,对"fcu_url"与“gcs_url"进行修改。

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

	<arg name="fcu_url" default="/dev/ttyTHS1:921600" />
	<arg name="gcs_url" default="udp://@192.168.0.108:14550" /> <!--QGC-->
	<arg name="tgt_system" default="1" />
	<arg name="tgt_component" default="1" />
	<arg name="log_output" default="screen" />
	<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/px4_pluginlists.yaml" />
		<arg name="config_yaml" value="$(find mavros)/launch/px4_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="log_output" value="$(arg log_output)" />
		<arg name="fcu_protocol" value="$(arg fcu_protocol)" />
		<arg name="respawn_mavros" default="$(arg respawn_mavros)" />
	</include>
</launch>

测试:(注意,开始测试的时候先不要装桨)

(1)ros主从机设置

参考:ROS主从机配置_月夕花晨KaCa的博客-CSDN博客

一遍成功的ROS主从机详细配置_zhanghm1995的博客-CSDN博客_ros主从机设置

这里的主机指的是:ground station

(2)ground station 启动roscore

         ssh连接jeston nano,sudo adduser $USER xxx,并在开放串口的权限,roslaunch启动 mypx4.launch,在电脑端可以发现地面站已经被连接了,若没有连接上查看launch文件的ip地址是否对应,其次检查QGC下的application Setting下的udp link端口设置,rostopic echo /mavros/state 应该可以看到这些,如果看不到,检查master端下从机的hostname和ip。

 (务必在gps信号良好的时候)接管切换测试:打开安全开关,解锁,打开offboard 模式(如果没有gps信号地面站会显示拒绝打开,这可能是因为EKF2_GPS_CHECK 参数设置),有错误提示但是能飞。

 地面站端电脑,开启键盘控制节点,键盘接管,可以控制后,关闭节点,关闭offboard模式,回到遥控接管,上锁,查看日志有啥问题。

 

 运行过程终端报错:遥控器切换的,但是如果是程序控制的话是没有影响

failsafe enabled: no offboard  (PX4 has a number of safety features to protect and recover your vehicle if something goes wrong)

错误整理:OMG,真的有些错误困扰了我很多天或这很多个小时,但是真的一下子就解决了!!!! 

1. offboard 模式突然进不去

 这时候,我怀疑了很多很多,因为是有提示CMD:Unexpected command 176, result 1

 我查了好多,没查到结果,最后我检查了一下发现是网络配置问题。超级注意修改一下/etc/hosts文件,主从机的配置问题!

2.FCU: Preflight Fail: High Accelerometer Bias
     不用多查了,直接对Accelerometer重新进行标定

3. imu帧率提高失败

      刷了1.9固件之后发现,飞控传回来的imu帧率只有十帧,用mavlink也没有提升上去。

不用多查了,串口参数配置问题,mav_0_config=102,mav_0_mode=0

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值