无人机入门(一)位置与电机速度控制

无人机入门(一)

作为无人机入门PX4可能过于庞大,目前还没有支持ros-noetic, 而且PX4的底层框架我看也用到了ethz实验室的rotors,因此选用该模型作为入门首选。因为该包也没有完全更新至ros-noetic版本,所以需要进行小部分修改和调试,所以为了方便大家,我把我自己能够运行在该版本上的Gtihub地址搬上来了。大家如果有需要可以通过自行下载,遇到问题可以私信联系,或者在Github包的issue界面上提出来,我会经常去看。

环境安装(Simple Version)

我的测试环境是: Ubuntu20.04 ROS-Noetic 版本,所以如果是上述版本的话,可以通过上面说的直接从我的代码库中进行下载安装,命令如下:

$ mkdir -p rotors_ws/src
$ cd rotors_ws/src
$ git clone https://github.com/MingshanHe/rotors_demo.git

如果git clone太慢,我建议将该命令换成以下命令重新试一下:

$ git clone https://gitee.com/heming-mountain/rotors_demo.git

安装好以后通过该命令安装依赖文件,由于每个系统版本以及安装好的工具不同所以大同小异:

$ chmod +x requirment.sh
$ sudo ./requirment.sh

​ 安装好各种依赖以后就可以顺顺利利的编译工程文件了,命令如下:

$ cd ..
$ catkin_make

编译成功后就可以进入第二部运行程序了,如果没有编译成功,非常推荐大家把错误贴到Github Issues界面,我会经常去看并回答,也方便其他遇到此问题的人进行查阅和修改。也推荐大家留言评论和私信。

通过发布速度的方式控制无人机电机速度

首先,需要启动Gazebo将无人机模型载入其中进行仿真,其xacro,urdf,.gazebo文件都已经封装好了,所以只需要直接运行``mav.launch`文件即可,并启动控制点击速度发布的节点,运行命令如下:

$ roslaunch rotors_gazebo mav.launch
$ rosrun control_develop pub_velocity 	

上面两个命令分别在不同的终端下运行,需要注意的是,第二个终端运行 pub velocity 的时候,要记得按照程序中编写好的不再输入是输入n正常推出,可能会出现ctrl+c无法正常退出,最后用ctrl+z结束的,这里我是非常不推荐用第二种,因为这只是治标不治本,多次使用会导致Memory存储过大,可以通过ps命令查看后杀死对应的进程。下面以GIF格式展示。
在这里插入图片描述
在这里插入图片描述

通过键盘来控制无人机位置

首先,启动mav_hovering_example.launch文件,里面包括了位置控制代码和一些控制参数,具体可以参照该launch文件。接着,就可以通过启动编译好的cpp文件来对无人机进行通过键盘的位置控制了,具体命令如下所示:

$ roslaunch rotors_gazebo mav_hovering_example.launch 
$ rosrun control_develop keyboard_control

这一部分,没有需要注意的,只要是能够正常运行就可以完成位置控制了,欢迎大家来尝试。

在这里插入图片描述

后续会对无人机多机和扫图建模进行研究,谢谢大家支持。

猜你喜欢

转载自blog.csdn.net/weixin_42139267/article/details/114416543