Conversation
This reverts commit bf0272c7c381058510fc34034e6e5c7dd9baf389.
Updated instructions to run the Eddie interface and modified commands for starting the FSM and publishing perception data.
Added a reference to detailed steps for running the robot setup.
There was a problem hiding this comment.
Pull request overview
This PR transitions the pick-and-place FSM implementation from a C++ mock client to a Python-based FSM with integrated slip detection and service-based reference capture. The changes introduce a new ROS2 service definition, refactor the FSM to use Python with DSL-generated code, add gripper slip detection capabilities, and update the build configuration to support Python executables and interface generation.
Key Changes:
- Replaced C++ FSM mock implementation with Python FSM using DSL-generated state machine
- Added slip detection node with service-based reference capture mechanism
- Introduced
CaptureReference.srvservice definition for coordinating gripper state monitoring
Reviewed changes
Copilot reviewed 43 out of 62 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| srv/CaptureReference.srv | New service definition for capturing gripper reference position |
| src/pick_place_fsm_mock.cpp | Refactored C++ FSM to integrate with DSL-generated state machine |
| src/pick_place.py | New Python FSM implementation with comprehensive state management and action client integration |
| src/mock_servers_only.cpp | Removed mock server implementation |
| src/error_handling.py | New gripper slip detection node with service-based reference capture |
| package.xml | Updated dependencies to support Python execution and interface generation |
| CMakeLists.txt | Reconfigured build to generate interfaces and install Python executables |
| how_to_run.md | Added comprehensive setup and execution instructions |
| README.md | Added project overview and FSM documentation |
| include/pick_place_py.fsm | New FSM definition file for DSL code generation |
| include/fsm_pick_place.py | Auto-generated Python FSM implementation from DSL |
Comments suppressed due to low confidence (2)
src/pick_place.py:1
- The methods
arm_goal_responseandarm_resulton lines 362-388 are duplicates of the private methods_arm_goal_responseand_arm_resultdefined earlier (lines 335-360). This code duplication should be removed to improve maintainability. Remove these duplicate methods and ensure all callers use the private underscore-prefixed versions.
src/error_handling.py:1 - The filename
error_handling.pydoes not accurately reflect the module's purpose, which is gripper slip detection. The module should be renamed togripper_slip_detector.pyto match the class nameGripperSlipDetectorand improve code clarity.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| **OR** | ||
|
|
||
| ```bash | ||
| ros2 topic pub --once /object_pose geometry_msgs/msg/PoseStamped "{header: {frame_id: 'eddie_right_arm_camera_link'}, pose: {position: {x: 0.0, y: 0.0, z: 0.4}, orientation: {}}}" |
There was a problem hiding this comment.
The example command publishes a pose with an empty orientation quaternion, which is invalid. A valid quaternion should have w: 1.0 for no rotation. Update the command to include orientation: {w: 1.0} to provide a valid example.
| ros2 topic pub --once /object_pose geometry_msgs/msg/PoseStamped "{header: {frame_id: 'eddie_right_arm_camera_link'}, pose: {position: {x: 0.0, y: 0.0, z: 0.4}, orientation: {}}}" | |
| ros2 topic pub --once /object_pose geometry_msgs/msg/PoseStamped "{header: {frame_id: 'eddie_right_arm_camera_link'}, pose: {position: {x: 0.0, y: 0.0, z: 0.4}, orientation: {w: 1.0}}}" |
Added section on object slip detection, detailing reference capture and motion check processes.
Added command for object slip detection in README.
|
@jetcanine your object slip detection code should not be in this repo |
No description provided.