Gazebo 시뮬레이터에서 AR drone 2.0 명령 조작
AR drone 2.0의 실제 기계를 얻었습니다.
우선 시뮬레이터 환경에서 자동 제어 프로그램을 짜려고 합니다만 내 성질상 스스로 한 것만 기억이 좋지 않습니다.
사람에게 공유하거나 설명하는 과정에서 이해를 포함해 나가는 (그렇지 않으면 그렇지 않으면 질이 오르지 않는) 일이 많기 때문에
검증한 내용을 메모해 순서를 정리해 갑니다.
흥미롭다고 생각해 주거나 선구자 쪽이 계시면
이르지 않는 점 등 교수해 주시면 고맙습니다.
잘 조립하면 실제 기계로 테스트하고 싶기 때문에
히로시마 대학의 공학부라든지 캠퍼스에서 테스트 받을 수 있는 허가를 받을 수 없는가 사안중입니다.
히로시마 근처에서 실기 테스트 할 수 있는 농지나 광장이나 협력자가 계시면 더욱 기쁘다.
환경
OS는 우분투 14.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
파이썬 코드에서의 사용
takeoff.py 같은 이름의 파일에 아래 코드를
copipe.
#!/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
무인 항공기가 이륙했습니다.
참고 페이지
ar drone autonomy 공식 사이트
드론 조작 명령은 여기를 읽었습니다.
AR drone 2.0 Simulator 위키페이지
A.R. Drone 2.0을 시뮬레이터로 이동 (ubuntu)
Gazebo simulator 튜토리얼
ROS(Robot Operating System)에 대해서는 본가의 페이지를 봐 주세요. .
ROS 공식
Reference
이 문제에 관하여(Gazebo 시뮬레이터에서 AR drone 2.0 명령 조작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/manjiroukeigo/items/c019ac33ea6ece2b06de
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Gazebo 시뮬레이터에서 AR drone 2.0 명령 조작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/manjiroukeigo/items/c019ac33ea6ece2b06de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)