usage & demo

This commit is contained in:
Ronaldson Bellande 2024-03-28 19:54:22 -04:00
parent da54b3af2d
commit 4f82c33a84
4 changed files with 118 additions and 1 deletions

View File

@ -1 +1,3 @@
# Web-ROS-API # Bellande Web ROS/ROS2 API
## - Functionality is to use Bellande API and Models for different functionality related to computer science

View File

@ -0,0 +1,39 @@
cmake_minimum_required(VERSION 3.8)
project(ros_web_api_bellande_step)
## Compile as C++11, supported in ROS Kinetic and newer
add_compile_options(-std=c++11)
# Find ROS
if($ENV{ROS_VERSION} EQUAL 1)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
)
else()
find_package(ament_cmake REQUIRED COMPONENTS
rclcpp
rclpy
)
endif()
if($ENV{ROS_VERSION} EQUAL 1)
catkin_package(
INCLUDE_DIRS
LIBRARIES ${PROJECT_NAME}
CATKIN_DEPENDS
roscpp
rospy
)
endif()
# Install Python scripts, configuration files, and launch files
if($ENV{ROS_VERSION} EQUAL "1")
install(PROGRAMS src/bellande_step_api_2d.py DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})
install(DIRECTORY config/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config)
install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch)
elseif($ENV{ROS_VERSION} EQUAL "2")
install(PROGRAMS src/bellande_step_api_2d.py DESTINATION lib/${PROJECT_NAME})
install(DIRECTORY config/ DESTINATION share/${PROJECT_NAME}/config)
install(DIRECTORY launch/ DESTINATION share/${PROJECT_NAME}/launch)
endif()

View File

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<package format="3">
<name>ros_web_api_bellande_step</name>
<version>0.0.1</version>
<description>Bellande ROS/ROS2 package with a JSON config file for making HTTP requests</description>
<author email="ronaldsonbellande@gmail.com">Ronaldson Bellande</author>
<maintainer email="ronaldsonbellande@gmail.com">Ronaldson Bellande</maintainer>
<license>Apache License 2.0</license>
<buildtool_depend condition="$ROS_VERSION == 1">catkin</buildtool_depend>
<build_depend condition="$ROS_VERSION == 1">roscpp</build_depend>
<build_depend condition="$ROS_VERSION == 1">rospy</build_depend>
<build_export_depend condition="$ROS_VERSION == 1">roscpp</build_export_depend>
<build_export_depend condition="$ROS_VERSION == 1">rospy</build_export_depend>
<exec_depend condition="$ROS_VERSION == 1">roscpp</exec_depend>
<exec_depend condition="$ROS_VERSION == 1">rospy</exec_depend>
<buildtool_depend condition="$ROS_VERSION == 2">ament_cmake</buildtool_depend>
<build_depend condition="$ROS_VERSION == 2">rclcpp</build_depend>
<build_depend condition="$ROS_VERSION == 2">rclpy</build_depend>
<build_export_depend condition="$ROS_VERSION == 2">rclcpp</build_export_depend>
<build_export_depend condition="$ROS_VERSION == 2">rclpy</build_export_depend>
<exec_depend condition="$ROS_VERSION == 2">rclcpp</exec_depend>
<exec_depend condition="$ROS_VERSION == 2">rclpy</exec_depend>
<export>
</export>
</package>

View File

@ -0,0 +1,39 @@
import json
import requests
import os
# Get the parameters from the launch file
x1 = float(os.getenv('x1'))
y1 = float(os.getenv('y1'))
x2 = float(os.getenv('x2')) # Read x2 from launch file
y2 = float(os.getenv('y2')) # Read y2 from launch file
limit = int(os.getenv('limit'))
# URL and endpoint path
url = "https://bellanderoboticssensorsresearchinnovationcenter-kot42qxp.b4a.run"
endpoint_path = "/api/Bellande_Step/bellande_step_2d"
# JSON payload
payload = {
"node0": {"x": x1, "y": y1},
"node1": {"x": x2, "y": y2}
}
# Headers
headers = {
'accept': 'application/json',
'Content-Type': 'application/json'
}
# Make POST request
try:
response = requests.post(
url + endpoint_path + '?limit=' + str(limit),
json=payload,
headers=headers
)
response.raise_for_status() # Raise an error for unsuccessful responses
data = response.json()
print("Next Step:", data['next_step'])
except requests.exceptions.RequestException as e:
print("Error:", e)