赞
踩
电脑环境:ubuntu20.04+ros-noetic
本次通过这个开源仓库学习无人机轨迹跟踪,并在px4提供的gazebo仿真环境跟踪圆形轨迹。
由于本人是无人机外行,没碰过无人机,上了一门无人机运动规划课,突然看见了大疆的无人飞行挑战赛,第一个比赛需要无人机快速穿过几个给定位置和朝向的圈,由于知道无人机怎么跟踪控制,尤其是不知道yaw角怎么弄,虽然轨迹规划出来了但是跟踪不了,然后规划和控制传轨迹也不太清楚,因为大家都不在意这个比赛,就被搁置了几个月。
最近我决定要把轨迹跟踪做出来,看到了很多开源的代码,知道了几何控制(Geometric tracking control),本篇就是用的几何控制,所以需要运行并学习一下。
运行不难,但是在过程中会有一些报错,卡了我很久,尤其是ubuntu20.04安装px4仿真环境,那下面就开始吧。
对于工程师科学上网和英语还是很重要的是吧!
1 克隆px4源码
不需要建立ros工作空间,直接克隆到家目录就可。
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
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
但是我安装的前一天他把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
运行结果如下:
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 建立工作空间克隆源代码
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
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
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
运行结果如图所示:
还有能调参数的窗口
接下来就看代码了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。