Support for AR-Drone LED animation as a service added. Not tested.
Esse commit está contido em:
@@ -12,3 +12,4 @@
|
|||||||
*.a
|
*.a
|
||||||
/nbproject/private/
|
/nbproject/private/
|
||||||
Makefile
|
Makefile
|
||||||
|
/build/CMakeFiles/
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#include "ardrone_driver.h"
|
#include "ardrone_driver.h"
|
||||||
#include "teleop_twist.h"
|
#include "teleop_twist.h"
|
||||||
#include "video.h"
|
#include "video.h"
|
||||||
|
#include "ardrone_autonomy/LedAnim.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -21,6 +22,7 @@ ARDroneDriver::ARDroneDriver()
|
|||||||
toggleCam_service = node_handle.advertiseService("ardrone/togglecam", toggleCamCallback);
|
toggleCam_service = node_handle.advertiseService("ardrone/togglecam", toggleCamCallback);
|
||||||
toggleNavdataDemo_service = node_handle.advertiseService("ardrone/togglenavdatademo", toggleNavdataDemoCallback);
|
toggleNavdataDemo_service = node_handle.advertiseService("ardrone/togglenavdatademo", toggleNavdataDemoCallback);
|
||||||
setCamChannel_service = node_handle.advertiseService("ardrone/setcamchannel",setCamChannelCallback );
|
setCamChannel_service = node_handle.advertiseService("ardrone/setcamchannel",setCamChannelCallback );
|
||||||
|
setLedAnimation_service = node_handle.advertiseService("ardrone/setledanimation", setLedAnimationCallback);
|
||||||
// setEnemyColor_service = node_handle.advertiseService("/ardrone/setenemycolor", setEnemyColorCallback);
|
// setEnemyColor_service = node_handle.advertiseService("/ardrone/setenemycolor", setEnemyColorCallback);
|
||||||
// setHullType_service = node_handle.advertiseService("/ardrone/sethulltype", setHullTypeCallback);
|
// setHullType_service = node_handle.advertiseService("/ardrone/sethulltype", setHullTypeCallback);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ private:
|
|||||||
ros::Subscriber land_sub;
|
ros::Subscriber land_sub;
|
||||||
image_transport::ImageTransport image_transport;
|
image_transport::ImageTransport image_transport;
|
||||||
image_transport::CameraPublisher image_pub;
|
image_transport::CameraPublisher image_pub;
|
||||||
image_transport::CameraPublisher hori_pub;
|
image_transport::CameraPublisher hori_pub;
|
||||||
image_transport::CameraPublisher vert_pub;
|
image_transport::CameraPublisher vert_pub;
|
||||||
|
|
||||||
ros::Publisher navdata_pub;
|
ros::Publisher navdata_pub;
|
||||||
@@ -35,6 +35,7 @@ private:
|
|||||||
ros::ServiceServer toggleCam_service;
|
ros::ServiceServer toggleCam_service;
|
||||||
ros::ServiceServer toggleNavdataDemo_service;
|
ros::ServiceServer toggleNavdataDemo_service;
|
||||||
ros::ServiceServer setCamChannel_service;
|
ros::ServiceServer setCamChannel_service;
|
||||||
|
ros::ServiceServer setLedAnimation_service;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Orange Green : 1
|
* Orange Green : 1
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include "teleop_twist.h"
|
#include "teleop_twist.h"
|
||||||
|
#include "ardrone_autonomy/LedAnim.h"
|
||||||
|
|
||||||
inline float max(float a, float b) { return a > b ? a : b; }
|
inline float max(float a, float b) { return a > b ? a : b; }
|
||||||
inline float min(float a, float b) { return a < b ? a : b; }
|
inline float min(float a, float b) { return a < b ? a : b; }
|
||||||
@@ -22,6 +23,11 @@ int32_t detect_indoor_hull = 0;
|
|||||||
int32_t detect_disable_placeholder = 0;
|
int32_t detect_disable_placeholder = 0;
|
||||||
int32_t detect_enable_placeholder = 1;
|
int32_t detect_enable_placeholder = 1;
|
||||||
|
|
||||||
|
const LED_ANIMATION_IDS ledAnimMap[14] = {
|
||||||
|
BLINK_GREEN_RED, BLINK_GREEN, BLINK_RED, BLINK_ORANGE,
|
||||||
|
SNAKE_GREEN_RED, FIRE, STANDARD, RED, GREEN, RED_SNAKE,BLANK,
|
||||||
|
LEFT_GREEN_RIGHT_RED, LEFT_RED_RIGHT_GREEN, BLINK_STANDARD};
|
||||||
|
|
||||||
bool toggleNavdataDemoCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
|
bool toggleNavdataDemoCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
|
||||||
{
|
{
|
||||||
set_navdata_demo_value ^= 1;
|
set_navdata_demo_value ^= 1;
|
||||||
@@ -50,6 +56,13 @@ bool toggleCamCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Respo
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool setLedAnimationCallback(ardrone_autonomy::LedAnim::Request& request, ardrone_autonomy::LedAnim::Response& response)
|
||||||
|
{
|
||||||
|
LED_ANIMATION_IDS anim_id = ledAnimMap[request.type];
|
||||||
|
ardrone_at_set_led_animation(anim_id, request.freq, request.duration);
|
||||||
|
response.result = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// Older rostopic callback function for toggling Cam
|
// Older rostopic callback function for toggling Cam
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <std_msgs/Empty.h>
|
#include <std_msgs/Empty.h>
|
||||||
#include <std_srvs/Empty.h>
|
#include <std_srvs/Empty.h>
|
||||||
#include <ardrone_autonomy/CamSelect.h>
|
#include <ardrone_autonomy/CamSelect.h>
|
||||||
|
#include <ardrone_autonomy/LedAnim.h>
|
||||||
|
|
||||||
#define _EPS 1.0e-6
|
#define _EPS 1.0e-6
|
||||||
|
|
||||||
@@ -20,6 +21,7 @@ void takeoffCallback(const std_msgs::Empty &msg);
|
|||||||
bool setCamChannelCallback(ardrone_autonomy::CamSelect::Request& request, ardrone_autonomy::CamSelect::Response& response);
|
bool setCamChannelCallback(ardrone_autonomy::CamSelect::Request& request, ardrone_autonomy::CamSelect::Response& response);
|
||||||
bool toggleCamCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
|
bool toggleCamCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
|
||||||
bool toggleNavdataDemoCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
|
bool toggleNavdataDemoCallback(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
|
||||||
|
bool setLedAnimationCallback(ardrone_autonomy::LedAnim::Request& request, ardrone_autonomy::LedAnim::Response& response);
|
||||||
|
|
||||||
//All global drone configs that should be sent on init
|
//All global drone configs that should be sent on init
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# 0 : BLINK_GREEN_RED
|
||||||
|
# 1 : BLINK_GREEN
|
||||||
|
# 2 : BLINK_RED
|
||||||
|
# 3 : BLINK_ORANGE
|
||||||
|
# 4 : SNAKE_GREEN_RED
|
||||||
|
# 5 : FIRE
|
||||||
|
# 6 : STANDARD
|
||||||
|
# 7 : RED
|
||||||
|
# 8 : GREEN
|
||||||
|
# 9 : RED_SNAKE
|
||||||
|
# 10: BLANK
|
||||||
|
# 11: LEFT_GREEN_RIGHT_RED
|
||||||
|
# 12: LEFT_RED_RIGHT_GREEN
|
||||||
|
# 13: BLINK_STANDARD
|
||||||
|
uint8 type
|
||||||
|
|
||||||
|
# In Hz
|
||||||
|
float32 freq
|
||||||
|
|
||||||
|
# In Seconds
|
||||||
|
uint8 duration
|
||||||
|
|
||||||
|
---
|
||||||
|
bool result
|
||||||
Referência em uma Nova Issue
Bloquear um usuário