-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3976 from alonfaraj/ros2-wrapper
Add ROS2 wrapper
- Loading branch information
Showing
42 changed files
with
3,710 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
|
||
project(airsim_interfaces) | ||
|
||
# Default to C++14 | ||
if(NOT CMAKE_CXX_STANDARD) | ||
set(CMAKE_CXX_STANDARD 14) | ||
endif() | ||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") | ||
add_compile_options(-Wall -Wextra -Wpedantic) | ||
endif() | ||
|
||
find_package(ament_cmake REQUIRED) | ||
find_package(rosidl_default_generators REQUIRED) | ||
find_package(std_msgs REQUIRED) | ||
find_package(geometry_msgs REQUIRED) | ||
find_package(geographic_msgs REQUIRED) | ||
|
||
rosidl_generate_interfaces(${PROJECT_NAME} | ||
"msg/GimbalAngleEulerCmd.msg" | ||
"msg/GimbalAngleQuatCmd.msg" | ||
"msg/GPSYaw.msg" | ||
"msg/VelCmd.msg" | ||
"msg/VelCmdGroup.msg" | ||
"msg/CarControls.msg" | ||
"msg/CarState.msg" | ||
"msg/Altimeter.msg" | ||
"msg/Environment.msg" | ||
"srv/SetGPSPosition.srv" | ||
"srv/Takeoff.srv" | ||
"srv/TakeoffGroup.srv" | ||
"srv/Land.srv" | ||
"srv/LandGroup.srv" | ||
"srv/Reset.srv" | ||
"srv/SetLocalPosition.srv" DEPENDENCIES std_msgs geometry_msgs geographic_msgs | ||
) | ||
|
||
ament_export_dependencies(rosidl_default_runtime) | ||
ament_package() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
std_msgs/Header header | ||
float32 altitude | ||
float32 pressure | ||
float32 qnh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
std_msgs/Header header | ||
float32 throttle | ||
float32 brake | ||
float32 steering | ||
bool handbrake | ||
bool manual | ||
int8 manual_gear | ||
bool gear_immediate |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
std_msgs/Header header | ||
geometry_msgs/PoseWithCovariance pose | ||
geometry_msgs/TwistWithCovariance twist | ||
float32 speed | ||
int8 gear | ||
float32 rpm | ||
float32 maxrpm | ||
bool handbrake |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
std_msgs/Header header | ||
geometry_msgs/Vector3 position | ||
geographic_msgs/GeoPoint geo_point | ||
geometry_msgs/Vector3 gravity | ||
float32 air_pressure | ||
float32 temperature | ||
float32 air_density | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
float64 latitude | ||
float64 longitude | ||
float64 altitude | ||
float64 yaw |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
std_msgs/Header header | ||
string camera_name | ||
string vehicle_name | ||
float64 roll | ||
float64 pitch | ||
float64 yaw |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
std_msgs/Header header | ||
string camera_name | ||
string vehicle_name | ||
geometry_msgs/Quaternion orientation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
geometry_msgs/Twist twist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
airsim_interfaces/VelCmd vel_cmd | ||
string[] vehicle_names |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<?xml version="1.0"?> | ||
<package format="3"> | ||
<name>airsim_interfaces</name> | ||
<version>0.1.0</version> | ||
<description>Contains message and service definitions used by the examples.</description> | ||
<maintainer email="a@a.com">AAA</maintainer> | ||
<license>Apache License 2.0</license> | ||
|
||
<author email="a@a.com">AAA</author> | ||
|
||
<buildtool_depend>ament_cmake</buildtool_depend> | ||
|
||
<buildtool_depend>rosidl_default_generators</buildtool_depend> | ||
|
||
<depend>std_msgs</depend> | ||
<depend>geometry_msgs</depend> | ||
<depend>geographic_msgs</depend> | ||
|
||
<exec_depend>rosidl_default_runtime</exec_depend> | ||
|
||
<member_of_group>rosidl_interface_packages</member_of_group> | ||
|
||
<export> | ||
<build_type>ament_cmake</build_type> | ||
</export> | ||
</package> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
bool wait_on_last_task | ||
--- | ||
bool success |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
string[] vehicle_names | ||
bool wait_on_last_task | ||
--- | ||
bool success |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# string vehicle_name | ||
bool wait_on_last_task | ||
--- | ||
bool success |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
float64 latitude | ||
float64 longitude | ||
float64 altitude | ||
float64 yaw | ||
string vehicle_name | ||
--- | ||
#Response : return success=true, (if async=false && if setpoint reached before timeout = 30sec) || (if async=true && command sent to autopilot) | ||
bool success |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#Request : expects position setpoint via x, y, z | ||
#Request : expects yaw setpoint via yaw (send yaw_valid=true) | ||
float64 x | ||
float64 y | ||
float64 z | ||
float64 yaw | ||
string vehicle_name | ||
--- | ||
#Response : success=true - (if async=false && if setpoint reached before timeout = 30sec) || (if async=true) | ||
bool success | ||
string message |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
bool wait_on_last_task | ||
--- | ||
bool success |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
string[] vehicle_names | ||
bool wait_on_last_task | ||
--- | ||
bool success |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
project(airsim_ros_pkgs) | ||
|
||
find_package(rclcpp REQUIRED) | ||
find_package(nav_msgs REQUIRED) | ||
find_package(geographic_msgs REQUIRED) | ||
find_package(std_srvs REQUIRED) | ||
find_package(tf2_ros REQUIRED) | ||
find_package(tf2_sensor_msgs REQUIRED) | ||
find_package(rclpy REQUIRED) | ||
find_package(tf2 REQUIRED) | ||
find_package(image_transport REQUIRED) | ||
find_package(geometry_msgs REQUIRED) | ||
find_package(cv_bridge REQUIRED) | ||
find_package(tf2_geometry_msgs REQUIRED) | ||
find_package(sensor_msgs REQUIRED) | ||
find_package(mavros_msgs REQUIRED) | ||
find_package(rosidl_default_generators REQUIRED) | ||
find_package(ament_cmake REQUIRED) | ||
find_package(std_msgs REQUIRED) | ||
find_package(rosidl_typesupport_cpp REQUIRED) | ||
find_package(rosidl_default_runtime REQUIRED) | ||
find_package(airsim_interfaces REQUIRED) | ||
find_package(OpenCV REQUIRED) | ||
|
||
set(AIRSIM_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../) | ||
|
||
add_subdirectory("${AIRSIM_ROOT}/cmake/rpclib_wrapper" rpclib_wrapper) | ||
add_subdirectory("${AIRSIM_ROOT}/cmake/AirLib" AirLib) | ||
add_subdirectory("${AIRSIM_ROOT}/cmake/MavLinkCom" MavLinkCom) | ||
|
||
set(CMAKE_CXX_STANDARD 14) | ||
set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra -Wnoexcept -Wstrict-null-sentinel") | ||
set(CXX_EXP_LIB "-nostdinc++ -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -nodefaultlibs | ||
-l/usr/lib/x86_64-linux-gnu/libc++.so -l/usr/lib/x86_64-linux-gnu/libc++abi.so | ||
-lm -lc -lgcc_s -lgcc | ||
-lstdc++fs -fmax-errors=10") | ||
set(RPC_LIB_INCLUDES " ${AIRSIM_ROOT}/external/rpclib/rpclib-2.3.0/include") | ||
set(RPC_LIB rpc) | ||
message(STATUS "found RPC_LIB_INCLUDES=${RPC_LIB_INCLUDES}") | ||
|
||
set(INCLUDE_DIRS include | ||
${AIRSIM_ROOT}/AirLib/deps/eigen3 | ||
${AIRSIM_ROOT}/AirLib/include | ||
${RPC_LIB_INCLUDES} | ||
${AIRSIM_ROOT}/MavLinkCom/include | ||
${AIRSIM_ROOT}/MavLinkCom/common_utils | ||
${OpenCV_INCLUDE_DIRS} | ||
) | ||
include_directories(${INCLUDE_DIRS}) | ||
|
||
add_library(airsim_settings_parser src/airsim_settings_parser.cpp) | ||
target_link_libraries(airsim_settings_parser AirLib) | ||
|
||
add_library(pd_position_controller_simple src/pd_position_controller_simple.cpp) | ||
target_link_libraries(pd_position_controller_simple AirLib) | ||
ament_target_dependencies(pd_position_controller_simple | ||
rclcpp | ||
nav_msgs | ||
geometry_msgs | ||
airsim_interfaces | ||
) | ||
|
||
add_library(airsim_ros src/airsim_ros_wrapper.cpp) | ||
target_link_libraries(airsim_ros ${OpenCV_LIBS} yaml-cpp AirLib airsim_settings_parser) | ||
ament_target_dependencies(airsim_ros | ||
rclcpp | ||
sensor_msgs | ||
geometry_msgs | ||
nav_msgs | ||
image_transport | ||
tf2_ros | ||
cv_bridge | ||
airsim_interfaces | ||
) | ||
|
||
add_executable(airsim_node src/airsim_node.cpp) | ||
target_link_libraries(airsim_node airsim_ros AirLib) | ||
ament_target_dependencies(airsim_node | ||
rclcpp | ||
) | ||
|
||
add_executable(pd_position_controller_simple_node | ||
src/pd_position_controller_simple_node.cpp) | ||
target_link_libraries(pd_position_controller_simple_node | ||
pd_position_controller_simple airsim_ros AirLib) | ||
ament_target_dependencies(pd_position_controller_simple_node | ||
rclcpp | ||
) | ||
|
||
# rosidl_target_interfaces(airsim_node | ||
# ${PROJECT_NAME} "rosidl_typesupport_cpp") | ||
|
||
# rosidl_target_interfaces(pd_position_controller_simple_node | ||
# ${PROJECT_NAME} "rosidl_typesupport_cpp") | ||
|
||
install(TARGETS airsim_node pd_position_controller_simple_node | ||
DESTINATION lib/${PROJECT_NAME}) | ||
|
||
install(TARGETS airsim_ros pd_position_controller_simple | ||
ARCHIVE | ||
DESTINATION lib | ||
LIBRARY | ||
DESTINATION lib) | ||
|
||
install(FILES README.md DESTINATION share/${PROJECT_NAME}) | ||
|
||
install(DIRECTORY launch rviz DESTINATION share/${PROJECT_NAME}) | ||
|
||
|
||
|
||
ament_export_dependencies(rclcpp) | ||
ament_export_dependencies(nav_msgs) | ||
ament_export_dependencies(geographic_msgs) | ||
ament_export_dependencies(std_srvs) | ||
ament_export_dependencies(tf2_ros) | ||
ament_export_dependencies(tf2_sensor_msgs) | ||
ament_export_dependencies(rclpy) | ||
ament_export_dependencies(tf2) | ||
ament_export_dependencies(image_transport) | ||
ament_export_dependencies(geometry_msgs) | ||
ament_export_dependencies(cv_bridge) | ||
ament_export_dependencies(tf2_geometry_msgs) | ||
ament_export_dependencies(sensor_msgs) | ||
ament_export_dependencies(mavros_msgs) | ||
ament_export_dependencies(rosidl_default_generators) | ||
ament_export_dependencies(ament_cmake) | ||
ament_export_dependencies(std_msgs) | ||
ament_export_dependencies(rosidl_default_runtime) | ||
ament_export_dependencies(airsim_interfaces) | ||
|
||
ament_export_include_directories(${INCLUDE_DIRS}) | ||
ament_export_libraries(airsim_settings_parser pd_position_controller_simple | ||
airsim_ros) | ||
|
||
ament_package() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# airsim_ros_pkgs | ||
|
||
This page has moved [here](https://github.com/microsoft/AirSim/blob/master/docs/airsim_ros_pkgs.md). |
Oops, something went wrong.