实验要求
使用装有尖刺的 Parrot Bebop 无人机在 100X60m 的区域内寻找红色气球并刺破
配置要求
硬件配置:笔记本电脑;Bebop四旋翼无人机
系统环境:Ubuntu16.04(尽量使用双系统)
软件工具(此时无需安装):ROS(kinetic 版本)、parrot2、yolov3(ROS是一款为机器人设计的系统框架,parrot2无人机提供ROS的开发通信环境bebop_autonomy、darknet yolov3是深度学习的目标检测框架)
安装
安装ROS Kinetic: https://blog.csdn.net/wangguchao/article/details/81044558
安装依赖包: sudo apt-get install build-essential python-rosdep python-catkin-tools
项目地址
https://github.com/wuxiangfei0011/drone-pricked-red-ball
操作流程
拷贝无人机代码 bebop_ws 到 home 目录下
PC 端连接 parrot2 发出的 wifi:Bebop2-040384(可能略有区别)
执行如下流程(按下 Ctrl+Alt+T 打开终端、按下 Ctrl+C 关闭终端)
打开终端并输入:
(下载项目代码)
git clone https://github.com/wuxiangfei0011/drone-pricked-red-ball.git
(进入 bebop_ws 文件夹)
cd bebop_ws
(编译项目)
catkin_make
(打开 .bashrc 文件)
gedit ~/.bashrc
在打开的 .bashrc 文件最后一行输入:
source ~/bebop_ws/devel/setup.bash
关闭文件 .bashrc
关闭终端
打开新终端并输入:source ~/.bashrc
关闭终端
打开新终端窗口
(登录无人机)
终端中输入:roslaunch bebop_tools bebop_nodelet_iv.launch
打开新终端窗口
(开启摄像头识别气球)
终端中输入:rosrun bebop_driver img_trans.py
打开新终端窗口
(起飞开始识别扎气球)
终端中输入:rostopic pub -1 bebop/takeoff std_msgs/Empty
(停止无人机扎球)
关闭“起飞开始识别扎气球”终端:按键 Ctrl + C
打开新终端窗口
(无人机降落)
终端中输入:rostopic pub -1 bebop/land std_msgs/Empty
无人机其他控制命令
Parrot bebop2 运行命令
roslaunch bebop_driver bebop_node.launch 登录
roslaunch bebop_tools bebop_nodelet_iv.launch
rostopic pub -1 bebop/reset std_msgs/Empty 紧急停止
rostopic pub -1 bebop/land std_msgs/Empty 降落
rostopic pub -1 bebop/takeoff std_msgs/Empty 起飞
rostopic pub -1 bebop/cmd_vel geometry_msgs/Twist --'[2.0,0.0,0.0]' '[0.0,0.0,1.8]' 以z轴为中心,每秒旋转1.8rad
source ~/bebop_ws/devel/setup.bash 启动工作空间
roslaunch bebop_driver bebop_node.launch 节点启动
rosrun bebop_driver teleop_twist_keyboard.py 键盘启动
参考
- Documentation: http://bebop-autonomy.readthedocs.io/
- ROS wiki page: http://wiki.ros.org/bebop_autonomy
- Support: ROS Q&A (tag: bebop_autonomy)
- Code API: http://docs.ros.org/indigo/api/bebop_autonomy/html
- ROS与Bebop入门教程: https://www.ncnynl.com/category/ros-bebop/
- https://blog.csdn.net/u011591807/article/details/106219893/