当前位置:   article > 正文

mavros_controllers_mavros轨迹

mavros轨迹

1 简介

电脑环境:ubuntu20.04+ros-noetic
本次通过这个开源仓库学习无人机轨迹跟踪,并在px4提供的gazebo仿真环境跟踪圆形轨迹。
由于本人是无人机外行,没碰过无人机,上了一门无人机运动规划课,突然看见了大疆的无人飞行挑战赛,第一个比赛需要无人机快速穿过几个给定位置和朝向的圈,由于知道无人机怎么跟踪控制,尤其是不知道yaw角怎么弄,虽然轨迹规划出来了但是跟踪不了,然后规划和控制传轨迹也不太清楚,因为大家都不在意这个比赛,就被搁置了几个月。
最近我决定要把轨迹跟踪做出来,看到了很多开源的代码,知道了几何控制(Geometric tracking control),本篇就是用的几何控制,所以需要运行并学习一下。
运行不难,但是在过程中会有一些报错,卡了我很久,尤其是ubuntu20.04安装px4仿真环境,那下面就开始吧。
对于工程师科学上网和英语还是很重要的是吧!

2 安装px4仿真环境

1 克隆px4源码
不需要建立ros工作空间,直接克隆到家目录就可。

git clone https://github.com/PX4/PX4-Autopilot.git --recursive
  • 1

2 按照px4提供的用户手册编译运行gazebo
他提供的运行命令如下:

cd <PX4-Autopilot_clone>
DONT_RUN=1 make px4_sitl_default gazebo
source ~/catkin_ws/devel/setup.bash    # (optional)
source Tools/simulation/gazebo/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo/sitl_gazebo
roslaunch px4 posix_sitl.launch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

但是我安装的前一天他把gazebo文件夹改名成了gazebo-classic,所以按照他这个source和export是会报错的,launch gazebo就找不到PATH,所以应该按下面的命令操作(可能以后px4会更新文档):

cd PX4-Autopilot
DONT_RUN=1 make px4_sitl_default gazebo
source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic
roslaunch px4 posix_sitl.launch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果如下:
image.png
3 运行gazebo报错
gzserver: symbol lookup error: /home/jiaxier/PX4-Autopilot/build/px4_sitl_default/build_gazebo-classic/libgazebo_mavlink_interface.so: undefined symbol: _ZN8mav_msgs4msgs17CommandMotorSpeedC1Ev
可能会报这个错,但是刚才我重新安装运行没有报错,如果报这个错了,那就:

cd PX4-Autopilot
make clean
DONT_RUN=1 make px4_sitl_default gazebo
  • 1
  • 2
  • 3

反正我就是这么解决的。

3 运行mavros_controller

1 建立工作空间克隆源代码

mkdir -p mav_control_ws/src
cd mav_control_ws/
catkin init
catkin config --merge-devel
cd src
wstool init //用wstool可以安装一些依赖,可以apt安装一下wstool
git clone https://github.com/Jaeyoung-Lim/mavros_controllers
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2 通过wstool安装依赖并编译

cd ~/mav_control_ws
wstool merge -t src src/mavros_controllers/dependencies.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y --rosdistro $ROS_DISTRO
catkin build  
  • 1
  • 2
  • 3
  • 4
  • 5

3 source两个工作空间,launch gazebo控制无人机跟踪圆形轨迹

cd PX4-Autopilot
source ~/mav_control_ws/devel/setup.bash
source Tools/simulation/gazebo-classic/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/simulation/gazebo-classic/sitl_gazebo-classic
roslaunch geometric_controller sitl_trajectory_track_circle.launch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果如图所示:
image.png
还有能调参数的窗口image.png
接下来就看代码了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/604792
推荐阅读
相关标签
  

闽ICP备14008679号