feat: add release-to-move TCP gizmo control in Webots
Add a native Webots marker for setting the active tool's TCP position and orientation. Dragging edits the preview; releasing the mouse submits one complete, checked joint trajectory with configured TCP speed limits. Unreachable targets reset the marker to the current TCP. Preserve coordinate, joint, and control-file commands through motion reservations and a controller action proxy. Give the gizmo lowest priority and finish its committed trajectory before dispatching queued regular commands, including waits longer than the former two-second service timeout. Place the patron TCP at its working end, 55.2 mm along local Z, and use the flange TCP when no tool is attached. Add digital_twin.tcp_gizmo configuration, ROS interfaces, launch integration, and regression coverage. Document operation, configuration, tool attachment, speed limits, and troubleshooting in both Russian and English. Validation: 42 Python tests and 8 C++ tests passed. Webots regressions covered one action per release, translation and rotation with and without a tool, unreachable targets, and ordinary commands waiting for gizmo completion.
This commit is contained in:
@@ -7,6 +7,9 @@ find_package(geometry_msgs REQUIRED)
|
||||
find_package(action_msgs REQUIRED)
|
||||
|
||||
rosidl_generate_interfaces(${PROJECT_NAME}
|
||||
"msg/GizmoCommand.msg"
|
||||
"msg/GizmoState.msg"
|
||||
"srv/MotionPriority.srv"
|
||||
"srv/MoveToPose.srv"
|
||||
"srv/MoveToNamedPose.srv"
|
||||
"action/MoveToPose.action"
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# One committed TCP target on mouse release, with generation from GizmoState.
|
||||
geometry_msgs/PoseStamped target
|
||||
uint64 epoch
|
||||
@@ -0,0 +1,6 @@
|
||||
# Actual TCP pose; enabled is false while any higher-priority motion owns control.
|
||||
geometry_msgs/PoseStamped actual
|
||||
bool enabled
|
||||
# Advances on rejection, controller completion, or higher-priority ownership.
|
||||
uint64 epoch
|
||||
string reason
|
||||
@@ -0,0 +1,7 @@
|
||||
# Acquire/renew or release a named high-priority lease. TTL uses wall time [s].
|
||||
string owner
|
||||
bool acquire
|
||||
float64 ttl
|
||||
---
|
||||
bool success
|
||||
string message
|
||||
Reference in New Issue
Block a user