Skip to content

Commit

Permalink
Merge branch 'develop' into follow_me
Browse files Browse the repository at this point in the history
  • Loading branch information
Shakthi Prashanth committed Nov 28, 2017
2 parents 2894a14 + 440f6e2 commit 4d4b6ca
Show file tree
Hide file tree
Showing 12 changed files with 96 additions and 31 deletions.
5 changes: 5 additions & 0 deletions CMakeLists.txt
Expand Up @@ -160,6 +160,11 @@ target_link_libraries(dronecore
${curl_lib}
tinyxml2
)
if (MSVC)
target_link_libraries(dronecore
ws2_32
)
endif()

# cmake should check for C++11
set_property(TARGET dronecore PROPERTY CXX_STANDARD 11)
Expand Down
42 changes: 42 additions & 0 deletions appveyor.yml
Expand Up @@ -61,6 +61,48 @@ build_script:
) else (
cmake --build . --target install --config Release
)
- cd ..
- cd example\takeoff_land
- md build
- cd build
- cmake .. -G "Visual Studio 15 2017 Win64"
- if "%configuration%"=="Debug" (
cmake --build . --config Debug
) else (
cmake --build . --config Release
)
- cd ..\..\..
- cd example\fly_mission
- md build
- cd build
- cmake .. -G "Visual Studio 15 2017 Win64"
- if "%configuration%"=="Debug" (
cmake --build . --config Debug
) else (
cmake --build . --config Release
)
- cd ..\..\..
- cd example\offboard_velocity
- md build
- cd build
- cmake .. -G "Visual Studio 15 2017 Win64"
- if "%configuration%"=="Debug" (
cmake --build . --config Debug
) else (
cmake --build . --config Release
)
- cd ..\..\..
- cd example\transition_vtol_fixed_wing
- md build
- cd build
- cmake .. -G "Visual Studio 15 2017 Win64"
- if "%configuration%"=="Debug" (
cmake --build . --config Debug
) else (
cmake --build . --config Release
)
- cd ..\..\..


test: on

Expand Down
3 changes: 3 additions & 0 deletions core/tcp_connection.cpp
Expand Up @@ -7,7 +7,10 @@
#include <arpa/inet.h>
#include <errno.h>
#include <unistd.h> // for close()
#else
#pragma comment(lib, "Ws2_32.lib") // Without this, Ws2_32.lib is not included in static library.
#endif

#include <cassert>

#ifndef WINDOWS
Expand Down
1 change: 1 addition & 0 deletions core/udp_connection.cpp
Expand Up @@ -12,6 +12,7 @@
#include <winsock2.h>
#include <Ws2tcpip.h> // For InetPton
#undef SOCKET_ERROR // conflicts with ConnectionResult::SOCKET_ERROR
#pragma comment(lib, "Ws2_32.lib") // Without this, Ws2_32.lib is not included in static library.
#endif

#include <cassert>
Expand Down
2 changes: 2 additions & 0 deletions example/fly_mission/CMakeLists.txt
Expand Up @@ -6,6 +6,8 @@ if(NOT MSVC)
add_definitions("-std=c++11 -Wall -Wextra -Werror")
else()
add_definitions("-std=c++11 -WX -W2")
include_directories(${CMAKE_SOURCE_DIR}/../../install/include)
link_directories(${CMAKE_SOURCE_DIR}/../../install/lib)
endif()

add_executable(fly_mission
Expand Down
3 changes: 3 additions & 0 deletions example/offboard_velocity/CMakeLists.txt
Expand Up @@ -6,6 +6,9 @@ if(NOT MSVC)
add_definitions("-std=c++11 -Wall -Wextra -Werror")
else()
add_definitions("-std=c++11 -WX -W2")
add_definitions("-D_USE_MATH_DEFINES") # For M_PI
include_directories(${CMAKE_SOURCE_DIR}/../../install/include)
link_directories(${CMAKE_SOURCE_DIR}/../../install/lib)
endif()

add_executable(offboard
Expand Down
3 changes: 3 additions & 0 deletions example/takeoff_land/CMakeLists.txt
Expand Up @@ -6,6 +6,8 @@ if(NOT MSVC)
add_definitions("-std=c++11 -Wall -Wextra -Werror")
else()
add_definitions("-std=c++11 -WX -W2")
include_directories(${CMAKE_SOURCE_DIR}/../../install/include)
link_directories(${CMAKE_SOURCE_DIR}/../../install/lib)
endif()

add_executable(takeoff_and_land
Expand All @@ -15,3 +17,4 @@ add_executable(takeoff_and_land
target_link_libraries(takeoff_and_land
dronecore
)

2 changes: 2 additions & 0 deletions example/transition_vtol_fixed_wing/CMakeLists.txt
Expand Up @@ -6,6 +6,8 @@ if(NOT MSVC)
add_definitions("-std=c++11 -Wall -Wextra -Werror")
else()
add_definitions("-std=c++11 -WX -W2")
include_directories(${CMAKE_SOURCE_DIR}/../../install/include)
link_directories(${CMAKE_SOURCE_DIR}/../../install/lib)
endif()

add_executable(transition_vtol_fixed_wing
Expand Down
3 changes: 2 additions & 1 deletion grpc/python_client/CMakeLists.txt
Expand Up @@ -5,6 +5,7 @@ include(FindPythonInterp REQUIRED)
add_custom_target(pydronecore ALL)

set(plugins_dir ${CMAKE_SOURCE_DIR}/grpc/server/plugins)
set(plugins_list action mission telemetry)

if(${PYTHONINTERP_FOUND})
set(proto_dir ${CMAKE_SOURCE_DIR}/grpc/proto)
Expand All @@ -27,7 +28,7 @@ if(${PYTHONINTERP_FOUND})
-I ${plugins_dir}/${plugin}
--python_out=.
--grpc_python_out=.
${plugins_dir}${plugin}/${plugin}.proto
${plugins_dir}/${plugin}/${plugin}.proto
DEPENDS ${plugins_dir}/${plugin}/${plugin}.proto
)
endforeach()
Expand Down
17 changes: 9 additions & 8 deletions grpc/python_client/async_client.py
Expand Up @@ -10,6 +10,8 @@
import action_pb2_grpc
import telemetry_pb2 as dc_telemetry
import telemetry_pb2_grpc
from google.protobuf import empty_pb2
import threading

class Colors:
BLUE = "\033[34m"
Expand All @@ -21,8 +23,7 @@ def wait_until(status):

def print_altitude(telemetry_stub, stop):
for i, position in enumerate(
telemetry_stub.TelemetryPositionSubscription(
dc_telemetry.TelemetryEmpty())):
telemetry_stub.TelemetryPositionSubscription(empty_pb2.Empty())):
# Position updates with SITL are too fast, we skip 9/10.
if i % 10 == 0:
print(Colors.BLUE, end="")
Expand All @@ -43,27 +44,27 @@ def run():
t = threading.Thread(target=print_altitude, args=(telemetry_stub, t_stop))
t.start()

arm_result = stub.Arm.future(dc.Empty())
arm_result = action_stub.Arm.future(empty_pb2.Empty())
arm_result = wait_until(arm_result)
if arm_result.result == dc.ActionResult.Result_SUCCESS:
if arm_result.result == dc_action.ActionResult.SUCCESS:
print("arming ok")
else:
print("arming failed: " + arm_result.result_str)

time.sleep(2)

takeoff_result = stub.TakeOff.future(dc.Empty())
takeoff_result = action_stub.TakeOff.future(empty_pb2.Empty())
takeoff_result = wait_until(takeoff_result)
if takeoff_result.result == dc.ActionResult.Result_SUCCESS:
if takeoff_result.result == dc_action.ActionResult.SUCCESS:
print("takeoff ok")
else:
print("takeoff failed: " + takeoff_result.result_str)

time.sleep(5)

land_result = stub.Land.future(dc.Empty())
land_result = action_stub.Land.future(empty_pb2.Empty())
land_result = wait_until(land_result)
if land_result.result == dc.ActionResult.Result_SUCCESS:
if land_result.result == dc_action.ActionResult.SUCCESS:
print("landing ok")
else:
print("landing failed: " + land_result.result_str)
Expand Down
31 changes: 16 additions & 15 deletions grpc/python_client/fly_mission.py
Expand Up @@ -12,6 +12,7 @@
import action_pb2_grpc
import mission_pb2 as dc_mission
import mission_pb2_grpc
from google.protobuf import empty_pb2


thread_status = True
Expand All @@ -33,73 +34,73 @@ def run():

mission_items = []

mission_items.append(dc.MissionItem(
mission_items.append(dc_mission.MissionItem(
latitude_deg=47.398170327054473,
longitude_deg=8.5456490218639658,
relative_altitude_m=10,
speed_m_s=5,
is_fly_through=False,
gimbal_pitch_deg=20,
gimbal_yaw_deg=60,
camera_action=dc.MissionItem.CameraAction_NONE))
camera_action=dc_mission.MissionItem.NONE))

mission_items.append(dc.MissionItem(
mission_items.append(dc_mission.MissionItem(
latitude_deg=47.398241338125118,
longitude_deg=8.5455360114574432,
relative_altitude_m=10,
speed_m_s=2,
is_fly_through=True,
gimbal_pitch_deg=0,
gimbal_yaw_deg=-60,
camera_action=dc.MissionItem.CameraAction_TAKE_PHOTO))
camera_action=dc_mission.MissionItem.TAKE_PHOTO))

mission_items.append(dc.MissionItem(
mission_items.append(dc_mission.MissionItem(
latitude_deg=47.398139363821485,
longitude_deg=8.5453846156597137,
relative_altitude_m=10,
speed_m_s=5,
is_fly_through=True,
gimbal_pitch_deg=-45,
gimbal_yaw_deg=0,
camera_action=dc.MissionItem.CameraAction_START_VIDEO))
camera_action=dc_mission.MissionItem.START_VIDEO))

mission_items.append(dc.MissionItem(
mission_items.append(dc_mission.MissionItem(
latitude_deg=47.398058617228855,
longitude_deg=8.5454618036746979,
relative_altitude_m=10,
speed_m_s=2,
is_fly_through=False,
gimbal_pitch_deg=-90,
gimbal_yaw_deg=30,
camera_action=dc.MissionItem.CameraAction_STOP_VIDEO))
camera_action=dc_mission.MissionItem.STOP_VIDEO))

mission_items.append(dc.MissionItem(
mission_items.append(dc_mission.MissionItem(
latitude_deg=47.398100366082858,
longitude_deg=8.5456969141960144,
relative_altitude_m=10,
speed_m_s=5,
is_fly_through=False,
gimbal_pitch_deg=-45,
gimbal_yaw_deg=-30,
camera_action=dc.MissionItem.CameraAction_START_PHOTO_INTERVAL))
camera_action=dc_mission.MissionItem.START_PHOTO_INTERVAL))

mission_items.append(dc.MissionItem(
mission_items.append(dc_mission.MissionItem(
latitude_deg=47.398001890458097,
longitude_deg=8.5455576181411743,
relative_altitude_m=10,
speed_m_s=5,
is_fly_through=False,
gimbal_pitch_deg=0,
gimbal_yaw_deg=0,
camera_action=dc.MissionItem.CameraAction_STOP_PHOTO_INTERVAL))
camera_action=dc_mission.MissionItem.STOP_PHOTO_INTERVAL))

mission_stub.SendMission(dc.Mission(mission_items=mission_items))
mission_stub.SendMission(dc_mission.Mission(mission_items=mission_items))
time.sleep(1)

action_stub.Arm(dc.Empty())
action_stub.Arm(empty_pb2.Empty())
time.sleep(1)

future_status = mission_stub.StartMission.future(dc_mission.MissionEmpty())
future_status = mission_stub.StartMission.future(empty_pb2.Empty())
t = Thread(target=wait_func, args=(future_status,))
t.start()

Expand Down
15 changes: 8 additions & 7 deletions grpc/python_client/sync_client.py
Expand Up @@ -7,30 +7,31 @@
#import dronecore_pb2_grpc
import action_pb2 as dc_action
import action_pb2_grpc
from google.protobuf import empty_pb2

def run():
channel = grpc.insecure_channel('0.0.0.0:50051')
# stub = dronecore_pb2_grpc.DroneCoreRPCStub(channel)
action_stub = action_pb2_grpc.ActionRPCStub(channel)
action_stub = action_pb2_grpc.ActionRPCStub(channel)

arm_result = action_stub.Arm(dc.Empty())
if arm_result.result == dc.ActionResult.SUCCESS:
arm_result = action_stub.Arm(empty_pb2.Empty())
if arm_result.result == dc_action.ActionResult.SUCCESS:
print("arming ok")
else:
print("arming failed: " + arm_result.result_str)

time.sleep(2)

takeoff_result = action_stub.TakeOff(dc.Empty())
if takeoff_result.result == dc.ActionResult.SUCCESS:
takeoff_result = action_stub.TakeOff(empty_pb2.Empty())
if takeoff_result.result == dc_action.ActionResult.SUCCESS:
print("takeoff ok")
else:
print("takeoff failed: " + takeoff_result.result_str)

time.sleep(5)

land_result = action_stub.Land(dc.Empty())
if land_result.result == dc.ActionResult.SUCCESS:
land_result = action_stub.Land(empty_pb2.Empty())
if land_result.result == dc_action.ActionResult.SUCCESS:
print("landing ok")
else:
print("landing failed: " + land_result.result_str)
Expand Down

0 comments on commit 4d4b6ca

Please sign in to comment.