[Documentation] [TitleIndex] [WordIndex

(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Description: This package is used to communicate between plutodrone and system through ROS. Drone will send the accelerometer, gyro, magneto and altitude data. You can subscribe to the roll, pitch and yaw values.

Tutorial Level: BEGINNER

Installation

pluto_drone Drona aviation

# Navigate to your catkin workspace
roscd <WORKSPACE_NAME>

# clone repository
git clone https://github.com/simmubhangu/pluto_drone.git


# Build the Package
catkin_make

Run Package

First connect to the drones wifi. Run roscore command and follow the step:

rosrun plutoserver data_via_rosservice.py

roslaunch plutoserver drone_comb.launch

Services

Topic

Keyboard keys to control the Drone

You can control your drone after lauching the drone_comb.launch. Type the following sequence to control the drone in particular coordinates.

NOTE: The key pressed will not be visible in the terminal.

Control Your Drone!

Moving around:
        i
   j    k    l
        m

k : Reset
a : Arm drone
d : Dis-arm drone
r : stop smoothly
w : increase height
s : decrease height

Control Commands (varies from 1000 to 2000)

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1500, rcYaw: 1500, rcThrottle: 1000, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1500, rcYaw: 1500, rcThrottle: 1000, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1000}"

# Increase Roll value to move forward with respect to x-axis

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1600, rcPitch: 1500, rcYaw: 1500, rcThrottle: 1500, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# Decrease Roll value to move backward with respect to x-axis

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1400, rcPitch: 1500, rcYaw: 1500, rcThrottle: 1500, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# Increase Pitch value to move forward/left with respect to y-axis

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1600, rcYaw: 1500, rcThrottle: 1500, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# Decrease Pitch value to move backward/right with respect to y-axis

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1400, rcYaw: 1500, rcThrottle: 1500, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# Increase Throttle value to move up with respect to z-axis

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1500, rcYaw: 1500, rcThrottle: 1600, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# Decrease Throttle value to move down with respect to z-axis

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1500, rcYaw: 1500, rcThrottle: 1400, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# Increase Yaw value to rotate in clockwise direction

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1500, rcYaw: 1600, rcThrottle: 1500, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

# decrease Yaw value to rotate in anti-clockwise direction

rostopic pub /drone_command plutodrone/PlutoMsg "{rcRoll: 1500, rcPitch: 1500, rcYaw: 1400, rcThrottle: 1500, rcAUX1: 0, rcAUX2: 0, rcAUX3: 0, rcAUX4: 1500}"

Multi Drone

Following is the procedure to control multiple drones within the same network

<!-- <node name="plutonode" type="plutonode" pkg="plutodrone"/> -->
<node name="plutoswarm" type="plutoswarm" pkg="plutodrone"/>

telnet 192.168.4.1

+++AT MODE 3

+++AT STA

all_ips.push_back("192.168.43.151");
all_ips.push_back("");

Get drone data: Pending

On-board Camera Drone

This is for the on-board camera variation of the Pluto drone ONLY. Following is the procedure to control the camera drone.

<node name="plutonode" type="plutonode" pkg="plutodrone"/>
<node name="plutocam" type="plutocam" pkg="plutodrone"/>

addr.sin_port = htons(9060);

addr.sin_addr.s_addr = inet_addr("192.168.0.1");

#define PORT 9060

NOTE: Multiple Plutos with onboard cameras cannot be used with PlutoSwarm. As per the developed hardware, provision for single Pluto is available.

Contact

Developed by e-Yantra at IIT bombay


CategoryCategory


2019-06-22 12:59