LoginSignup
1
1

More than 5 years have passed since last update.

Gazeboシミュレーターで AR drone 2.0をコマンド操作する

Last updated at Posted at 2016-10-30

Hadoopにドローンから収集した画像を蓄積する事を目標に
AR drone 2.0の実機を入手しました。

まずはシミュレーター環境で自動制御のプログラムを組もうと思いますが僕の性質上、自分でやっただけの事は覚えが良くなく
人に共有したり説明する過程で理解を含めていく(というかそうじゃないと質が上がらない)事が多いので
検証した内容をメモして手順を整理していきます。
面白いと思っていただけたり、先駆者の方がいらっしゃれば
至らない点等ご教授いただけますと有り難いです。

上手く組めたら実機でテストもしたいので
広島大学の工学部とかキャンパスでテストさせてもらう許可を頂けないか思案中です。
広島近辺で実機テスト出来る農地や広場や協力者がいらっしゃれば更に嬉しい。

環境
OSはUbuntu14.04で
GPUはGerforce GTX960の環境です。

ROSとシミューレーターの設定は下記
参考ページ手順に従い設定済みなので参考ページをご参照下さい。

Gazeboシミュレーターでテスト環境起動

$roslaunch cvg_sim_gazebo ardrone_testworld.launch

ドローン離陸

$rostopic pub -1 /ardrone/takeoff std_msgs/Empty

ドローン着陸

$rostopic pub -1 /ardrone/land std_msgs/Empty

リセット(らしい、初期配置に戻るかと思ったらそうでもなかったので不明)

$ rostopic pub -1 /ardrone/reset std_msgs/Empty

停止(ホバリング)

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{line: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

前進

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 1.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

後退

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: -1.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

左前進

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: 1.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

右前進

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: -1.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

反時計周り旋回

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 1.0}}

時計周り旋回

$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: -1.0}}'

カメラ切り替え

$ rosservice call /ardrone/togglecam

カメラ出力

$ rosrun image_view image_view image:=/ardrone/image_raw

フロントカメラ映像

$ rosrun image_view image_view image:=/ardrone/front/image_raw

ボトムカメラ映像

rosrun image_view image_view image:=/ardrone/bottom/image_raw

高度計

rostopic echo /sonar_height

ナビ情報の取得

rostopic echo /ardrone/navdata

pythonコードでの利用

takeoff.pyのような名前のファイルに下記のコードを
コピペします。

 #!/usr/bin/env python
import rospy
from std_msgs.msg import String
from std_msgs.msg import Empty

def takeoff():
pub = rospy.Publisher("ardrone/takeoff", Empty, >queue_size=10 )
rospy.init_node('takeoff', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
pub.publish(Empty())
rate.sleep()

if name == 'main':
try:
takeoff()
except rospy.ROSInterruptException:
pass

シミュレーターを起動して実行すると離陸します。
$ rosrun drone_application takeoff.py

ドローンが離陸しました。

Screenshot from 2016-10-30 15:42:34.png

参考ページ

ar drone autonomy公式サイト

ドローン操作のコマンドはこちらを読みました
AR drone 2.0 Simulator ウィキページ

A.R. Drone 2.0をシミュレータで動かす(ubuntu)

Gazebo simulator チュートリアル

ROS(Robot Operating System)については本家のページをご覧下さい。。
ROS公式

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1