Skip to content

Commit

Permalink
feat(operation_mode_transition_manager): support ad api (#1535)
Browse files Browse the repository at this point in the history
* feat(operation_mode_transition_manager): support ad api

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* fix: merge operation mode state message

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* feat(autoware_ad_api_msgs): define operation mode interface

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* fix: add message

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* Update common/autoware_ad_api_msgs/operation_mode/msg/OperationModeState.msg

Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>

* Update common/autoware_ad_api_msgs/operation_mode/msg/OperationModeState.msg

Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>

* feat: apply field name change

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* feat: move adapi message

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* feat: change message type

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* fix: fix build error

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* fix: fix error message

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* WIP

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* feat: add compatibility

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* fix: fix operation mode change when disable autoware control

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

* fix: fix operation mode change when autoware control is disabled

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>

Signed-off-by: Takagi, Isamu <isamu.takagi@tier4.jp>
Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com>
  • Loading branch information
isamu-takagi and kenji-miyake authored Nov 10, 2022
1 parent e00783b commit c7c078a
Show file tree
Hide file tree
Showing 24 changed files with 1,002 additions and 881 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,50 +17,53 @@

#include <autoware_adapi_v1_msgs/msg/response_status.hpp>

#include <stdexcept>
#include <exception>
#include <string>

namespace component_interface_utils
{

class ServiceException : public std::runtime_error
class ServiceException : public std::exception
{
public:
using ResponseStatus = autoware_adapi_v1_msgs::msg::ResponseStatus;
using ResponseStatusCode = ResponseStatus::_code_type;

ServiceException(ResponseStatusCode code, const std::string & message)
: std::runtime_error(message)
ServiceException(ResponseStatusCode code, const std::string & message, bool success = false)
{
success_ = success;
code_ = code;
message_ = message;
}

template <class T>
void set(T & status) const
{
status.success = false;
status.code = code_;
status.message = what();
status.message = message_;
}

ResponseStatus status() const
{
ResponseStatus status;
status.success = false;
status.code = code_;
status.message = what();
status.message = message_;
return status;
}

private:
bool success_;
ResponseStatusCode code_;
std::string message_;
};

class ServiceUnready : public ServiceException
{
public:
explicit ServiceUnready(const std::string & message)
: ServiceException(ResponseStatus::SERVICE_UNREADY, message)
: ServiceException(ResponseStatus::SERVICE_UNREADY, message, false)
{
}
};
Expand All @@ -69,7 +72,7 @@ class ServiceTimeout : public ServiceException
{
public:
explicit ServiceTimeout(const std::string & message)
: ServiceException(ResponseStatus::SERVICE_TIMEOUT, message)
: ServiceException(ResponseStatus::SERVICE_TIMEOUT, message, false)
{
}
};
Expand All @@ -78,7 +81,25 @@ class TransformError : public ServiceException
{
public:
explicit TransformError(const std::string & message)
: ServiceException(ResponseStatus::TRANSFORM_ERROR, message)
: ServiceException(ResponseStatus::TRANSFORM_ERROR, message, false)
{
}
};

class ParameterError : public ServiceException
{
public:
explicit ParameterError(const std::string & message)
: ServiceException(ResponseStatus::PARAMETER_ERROR, message, false)
{
}
};

class NoEffectWarning : public ServiceException
{
public:
explicit NoEffectWarning(const std::string & message)
: ServiceException(ResponseStatus::NO_EFFECT, message, true)
{
}
};
Expand Down
5 changes: 3 additions & 2 deletions control/operation_mode_transition_manager/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

ament_auto_add_library(operation_mode_transition_manager_node SHARED
src/operation_mode_transition_manager.cpp
src/state.cpp
src/compatibility.cpp
src/data.cpp
src/node.cpp
src/state.cpp
)

rclcpp_components_register_node(operation_mode_transition_manager_node
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/**:
ros__parameters:
transition_timeout: 3.0
frequency_hz: 10.0
engage_acceptable_limits:
allow_autonomous_in_stopped: true # no check if the velocity is zero, always allowed.
Expand Down

This file was deleted.

This file was deleted.

Loading

0 comments on commit c7c078a

Please sign in to comment.