Skip to content

Releases: Robots4Sustainability/Finite-State-Machine

Milestone-4

07 Apr 19:40
8ab4ad9

Choose a tag to compare

Overview

This release introduces the Door Disassembly workflow to the Finite State Machine. It significantly expands the system's capabilities with new workflow definition, sub nodes ,integrated safety mechanisms like collision detection, pose capture utilities, fsm diagram generation and a new centralized interfaces package for perception.

Key Features & Changes

  • Door Disassembly FSM (door_disassemble.fsm)(@ashleshp ):

    • Implemented a new comprehensive FSM definition explicitly for the door disassembly task.
    • Integrates seamlessly with other nodes like perception , raster scanner , collision detector , screwdriver handler , slip detector.
    • Wrench support currently disabled @jetcanine
    • Testing and Integration (@ashleshp and @jetcanine )
  • Screwdriver Manipulation (screwdriver_pick.py)(@jetcanine ):

    • Added dedicated ROS 2 nodes and routines to handle complex tool-picking.
    • Manages the precise manipulation logic required to grasp, probe, and utilize the screwdriver for disassembly operations.
  • Control Panel & Execution Management:(@jetcanine )

    • Introduced a new Control Panel interface.
    • Allows human operators to actively monitor the FSM execution state, with manual pause, resume, and abort controls.
  • Slip Detector(@jetcanine ) & Safety Guardian:(@ashleshp )

    • Implemented an Object Slip Detector to continuously monitor the grasp state during manipulation tasks.
    • Integrated a tf_collision_guardian.py node that automatically detects imminent collisions or slips and instantly triggers a safety halt via the Control Panel.
  • Pose Capturer Utility(@ashleshp ):

    • Added a new pose_capturer.py tool.
    • Allows operators to dynamically capture, save, and manage reference poses (home poses, pre-grasp poses) directly from the robot's current TF data, streamlining the setup of new workflows.
  • my_robot_interfaces Package:(@ashleshp )

    • Created a new dedicated my_robot_interfaces ROS 2 package to centralize custom action and service definitions.
    • Introduced the RunVision action interface, which the FSM and raster scanner now use to communicate uniformly with perception nodes.
  • Documentation(Readme and wiki) and Presentation: (@ashleshp and @jetcanine )

Contributors

@ashleshp
@jetcanine

Assets

Milestone-3

17 Dec 16:24

Choose a tag to compare

Release Notes - Pick Place FSM v0.0.3 (release-3)

Overview

This release consolidates the FSM logic into a Python implementation, integrates DSL-based FSM generation, complete pick place sequence tested with perception nodes

Key Features & Changes

1. Python Package

  • Removed C++ build targets (pick_place_fsm_mock, mock_servers_only) and dependencies (rclcpp, rclcpp_action) from CMakeLists.txt and package.xml.
  • The package now installs the Python scripts pick_place.py, error_handling.py, and the FSM definition modules directly.

2. DSL-Based FSM Integration

  • Integrated the auto-generated FSM logic from coord-dsl.
  • FSM definitions (pick_place_py.fsm) and generated Python code (fsm_pick_place.py) are now core parts of the package.

3. Pick-Place Error Handling Case 1 : Object slip detection

  • Object slip detection from the gripper during pick and place

Contributors and Discussions

Milestone 2

09 Oct 16:38
16fed85

Choose a tag to compare

  1. Developed an FSM flow diagram.
  2. Implemented a functional pick and place FSM based on the diagram.
  3. Built a mock server to enable testing without hardware.
  4. Verified functionality on the actual robot, successfully operates with the real hardware.
  5. Future Plan : Integrate with 'Perception' to receive real poses from the camera instead of the mock topic.

Contributions
@jetcanine
@ashleshp