1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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公式サイト]
(http://ardrone-autonomy.readthedocs.io/en/latest/commands.html)

ドローン操作のコマンドはこちらを読みました
[AR drone 2.0 Simulator ウィキページ]
(http://wiki.coins-lab.org/index.php?title=Simulation_of_AR_Parrot_2)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?