mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-09 14:27:02 +08:00
refactor: rename and replace GigE Action Command with Action Command functionality
This commit is contained in:
@@ -302,19 +302,19 @@ rclcpp_components_register_node(
|
||||
${PROJECT_NAME} PLUGIN "orbbec_camera::OBCameraNodeDriver" EXECUTABLE orbbec_camera_node
|
||||
)
|
||||
|
||||
add_library(gige_action_command_component SHARED src/gige_action_command_node.cpp)
|
||||
target_include_directories(gige_action_command_component PUBLIC ${COMMON_INCLUDE_DIRS})
|
||||
target_link_directories(gige_action_command_component PRIVATE ${ORBBEC_LIBS_DIR})
|
||||
target_link_libraries(gige_action_command_component
|
||||
add_library(action_command_component SHARED src/action_command_node.cpp)
|
||||
target_include_directories(action_command_component PUBLIC ${COMMON_INCLUDE_DIRS})
|
||||
target_link_directories(action_command_component PRIVATE ${ORBBEC_LIBS_DIR})
|
||||
target_link_libraries(action_command_component
|
||||
${orbbec_camera_msgs_TARGETS}
|
||||
OrbbecSDK
|
||||
rclcpp::rclcpp
|
||||
)
|
||||
orbbec_target_dependencies(gige_action_command_component rclcpp_components)
|
||||
orbbec_target_dependencies(action_command_component rclcpp_components)
|
||||
rclcpp_components_register_node(
|
||||
gige_action_command_component
|
||||
PLUGIN "orbbec_camera::GigEActionCommandNode"
|
||||
EXECUTABLE gige_action_command_node
|
||||
action_command_component
|
||||
PLUGIN "orbbec_camera::ActionCommandNode"
|
||||
EXECUTABLE action_command_node
|
||||
)
|
||||
|
||||
# Add nodes using the macro
|
||||
@@ -408,7 +408,7 @@ rclcpp_components_register_node(
|
||||
)
|
||||
|
||||
# Install rules
|
||||
install(TARGETS ${PROJECT_NAME} gige_action_command_component frame_latency start_benchmark
|
||||
install(TARGETS ${PROJECT_NAME} action_command_component frame_latency start_benchmark
|
||||
multi_save_rgbir ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib RUNTIME DESTINATION bin
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@ For command-line maintenance and diagnostic utilities, see the official
|
||||
| Source | Purpose | Experience Level | Usage Guide |
|
||||
| :---: | --- | :---: | --- |
|
||||
| [Multi-camera network](./multi_net_camera) | Launch multiple supported Orbbec network cameras. | ⭐️ | [EN](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/configuration/net_camera.html) / [中文](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/configuration/net_camera.html) |
|
||||
| [GigE Action Command](./gige_action_command) | Configure and trigger a Gemini 335Le camera group over GVCP. | ⭐️⭐️ | [EN](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/multi_camera/gige_action_command.html) / [中文](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/multi_camera/gige_action_command.html) |
|
||||
| [Action Command](./action_command) | Configure and trigger a Gemini 335Le camera group over GVCP. | ⭐️⭐️ | [EN](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/multi_camera/action_command.html) / [中文](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/multi_camera/action_command.html) |
|
||||
| [GMSL camera](./gmsl_multi_camera_sync) | Synchronize two GMSL-connected Gemini 330 Series cameras. | ⭐️⭐️ | [EN](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/multi_camera/gmsl_camera.html) / [中文](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/multi_camera/gmsl_camera.html) |
|
||||
| [Shared component container](./multi_camera_shared_container) | Load multiple Gemini 330 Series cameras into one component container. | ⭐️⭐️ | [EN](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/performance/efficient_intra_process_communication.html) / [中文](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/performance/efficient_intra_process_communication.html) |
|
||||
| [AE/AWB lock test](./ae_awb_lock) | Verify AE/AWB convergence, frame-metadata capture, and manual lock-in through ROS 2. | ⭐️⭐️ | [EN](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/4_application_guide/examples/ae_awb_lock.html) / [中文](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/4_application_guide/examples/ae_awb_lock.html) |
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Action Command
|
||||
|
||||
This example starts two Gemini 335Le cameras in Group Actions synchronization mode and one host-side Action Command sender.
|
||||
|
||||
## Before running
|
||||
|
||||
Use Gemini 335Le firmware 1.8.24 or later and Orbbec SDK 2.10.2 or later. Connect both cameras and the host to the same network, then set the two `net_device_ip` values in `multi_action_command.launch.py` to the camera IP addresses.
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera multi_action_command.launch.py
|
||||
```
|
||||
|
||||
## Full guide
|
||||
|
||||
[Action Command (English)](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/multi_camera/action_command.html) · [中文指南](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/multi_camera/action_command.html)
|
||||
+2
-2
@@ -41,8 +41,8 @@ def generate_launch_description():
|
||||
|
||||
action_command_node = Node(
|
||||
package="orbbec_camera",
|
||||
executable="gige_action_command_node",
|
||||
name="gige_action_command_node",
|
||||
executable="action_command_node",
|
||||
name="action_command_node",
|
||||
output="screen",
|
||||
)
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# GigE Action Command
|
||||
|
||||
This example starts two Gemini 335Le cameras in Group Actions synchronization mode and one host-side Action Command sender.
|
||||
|
||||
## Before running
|
||||
|
||||
Use Gemini 335Le firmware 1.8.24 or later and Orbbec SDK 2.10.2 or later. Connect both cameras and the host to the same network, then set the two `net_device_ip` values in `multi_gige_action_command.launch.py` to the camera IP addresses.
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera multi_gige_action_command.launch.py
|
||||
```
|
||||
|
||||
## Full guide
|
||||
|
||||
[GigE Action Command (English)](https://orbbec.github.io/OrbbecSDK_ROS2/en/source/camera_devices/5_advanced_guide/multi_camera/gige_action_command.html) · [中文指南](https://orbbec.github.io/OrbbecSDK_ROS2/zh/source/camera_devices/5_advanced_guide/multi_camera/gige_action_command.html)
|
||||
+2
-2
@@ -25,9 +25,9 @@
|
||||
|
||||
namespace orbbec_camera {
|
||||
|
||||
class GigEActionCommandNode : public rclcpp::Node {
|
||||
class ActionCommandNode : public rclcpp::Node {
|
||||
public:
|
||||
explicit GigEActionCommandNode(const rclcpp::NodeOptions& node_options = rclcpp::NodeOptions());
|
||||
explicit ActionCommandNode(const rclcpp::NodeOptions& node_options = rclcpp::NodeOptions());
|
||||
|
||||
private:
|
||||
void sendActionCommandCallback(
|
||||
+7
-7
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*******************************************************************************/
|
||||
|
||||
#include "orbbec_camera/gige_action_command_node.h"
|
||||
#include "orbbec_camera/action_command_node.h"
|
||||
|
||||
#include <chrono>
|
||||
#include <cstdint>
|
||||
@@ -54,16 +54,16 @@ bool getSystemTimeMilliseconds(uint64_t* milliseconds, std::string* error_messag
|
||||
|
||||
} // namespace
|
||||
|
||||
GigEActionCommandNode::GigEActionCommandNode(const rclcpp::NodeOptions& node_options)
|
||||
: Node("gige_action_command_node", node_options), context_(std::make_unique<ob::Context>()) {
|
||||
ActionCommandNode::ActionCommandNode(const rclcpp::NodeOptions& node_options)
|
||||
: Node("action_command_node", node_options), context_(std::make_unique<ob::Context>()) {
|
||||
context_->enableNetDeviceEnumeration(true);
|
||||
send_action_command_service_ = create_service<orbbec_camera_msgs::srv::SendActionCommand>(
|
||||
"~/send_action_command", std::bind(&GigEActionCommandNode::sendActionCommandCallback, this,
|
||||
"~/send_action_command", std::bind(&ActionCommandNode::sendActionCommandCallback, this,
|
||||
std::placeholders::_1, std::placeholders::_2));
|
||||
RCLCPP_INFO(get_logger(), "GigE Action Command service is ready");
|
||||
RCLCPP_INFO(get_logger(), "Action Command service is ready");
|
||||
}
|
||||
|
||||
void GigEActionCommandNode::sendActionCommandCallback(
|
||||
void ActionCommandNode::sendActionCommandCallback(
|
||||
const std::shared_ptr<orbbec_camera_msgs::srv::SendActionCommand::Request> request,
|
||||
std::shared_ptr<orbbec_camera_msgs::srv::SendActionCommand::Response> response) {
|
||||
if (!request) {
|
||||
@@ -169,4 +169,4 @@ void GigEActionCommandNode::sendActionCommandCallback(
|
||||
|
||||
} // namespace orbbec_camera
|
||||
|
||||
RCLCPP_COMPONENTS_REGISTER_NODE(orbbec_camera::GigEActionCommandNode)
|
||||
RCLCPP_COMPONENTS_REGISTER_NODE(orbbec_camera::ActionCommandNode)
|
||||
Reference in New Issue
Block a user