Skip to content

Latest commit

 

History

History
193 lines (149 loc) · 9.14 KB

old_dev_log.md

File metadata and controls

193 lines (149 loc) · 9.14 KB

KNOWN BUGS:

  • Mios limitation violation can randomly happen. (maybe because of the mogen_p2p plugin)
  • RCLCPP_INFO macro cannot print element of std::vector(segmentation fault).(Not solved yet. This bug is found in ros2 foxy.)
  • time delay in mios_reader (to be verified).(Solved by FILO message queue).
  • velocity limits are always violated with node Contact in the tree. (10082023)(Inconsistency in ActionPhase enumerator of kios/mios)
  • mios cannot build at personal laptop (ubuntu 22.04).
  • The reactive sequence should not be used with more than one async action node. (error msg see below)

DEVELOPER'S PLAN:

  • Add new node Planner for high level planning.
  • Wrap the xml generating code in the context of BT.
  • Apply lifecycle node to tree node etc.

Development Log:

  • 06.11.2023

    • Added coach, planner, action tuner. Added the necessary interfaces.

    • Built up the architecture surrounding the coach for planning and tuning.

    • Adjusted the communication schema.

    • PSEUDO CODE SHOWS THE BASIC PROCESS OF PLANNING AND TUNING BASED ON BEHAVIOR TREE.

  • 25.10.2023

    • KIOS is of version 1.0 now.
    • Removed the deprecated/discarded code.
    • Add Nullspace strategy in mios.
    • Add Tool/Gripper grasp/release atomic skills.
    • Add Tool/Gripper pick/place compound skills.
    • Add unified logger.
  • 18.10.2023

    • Add TOOL_GRASP skill. TOOL_RELEASE SKILL USER STOP STATUS CHECK
  • 16.10.2023

    • Add a behavior tree generator in python (kios_py).
    • Add tool change skills (TOOL_LOAD, TOOL_UNLOAD). The need of grasp when grasping the objects with the tool box.
  • 10.10.2023

    1. All the necessary skills (mps) that are necessary for insertion are all loaded in kios now. Including:
    • joint_move
    • cartesian_move
    • gripper_force
    • gripper_move
    • contact
    • wiggle The need of a compact form for actions
  • 02.10.2023

    1. The base class should be divided into different variances.
  • 01.10.2023

    1. The the main frame has been finished. Now mios can receive the request but end without any error message. find the reason.
    2. Be careful when changing the ActionPhaseContext: only the necessary part should be preserved.
    3. TO REMOVE: "action context" should not appear in mios skill request context.
  • 25.09.2023

    1. Added object grounding part in tree_root. Now when the tree is generated by xml, the objects needed by action nodes can be set.

    The next step is to change the code in tactician and commander to enable skill commands of the new format.

  • 23.09.2023

    1. The service ArchiveActionRequest is realized now.
    2. The crucial question: how should the "object" be grounded in a object-centric robot system?
  • 22.09.2023

    1. The problem is fixed (reason unclear). TODO: the action archive client on the tree node side and the parameter fetch function in tactician.
  • 20.09.2023

    1. bas_alloc problem: when DefaultActionContext member variable, the available memory is not enough for the variable and the program quit. After defining it with ptr the problem still exists and leads to a segmentation fault when calling the ptr.
  • 19.09.2023

    1. Der Class DefaultActionContext wird falsch definiert. Der fehler sieht wie folgende aus:
    terminate called after throwing an instance of 'std::length_error'
    what():  basic_string::_M_create

    Der Fehler hat noch nicht behandelt worden.

  • 05.09.2023

    1. Removed the insertable entity in action context. Removed the corresponding part in mios (precondition).
  • 04.09.2023

    1. Added node elaborations.
    2. Sorted out the tree generation code in tree_root.cpp.
    3. Fixed the Bug in commander. Now the program can exit with SIGTERM.
  • 03.09.2023

    1. Fixed the bug in action node switching in the tree. (undefined behavior without bool return.)
  • 01.09.2023:

    1. Added CartesianMove and JointMove into ActionPhase. Added corresponding motion primitives and action nodes. Completed the ActionContext and CommandContext.

    (BB: THIS PART IS NOT TESTED YET.)

    1. Updated all the print lines in ws_client and tree_node into spdlog format.
    2. Updated Json command format. Approach, Contact and Wiggle are now demo ActionPhases. More general action phases should be added in the future.

    WARNNING BE AWARED THAT YOU FORGET SOMETHING IN ACTIONCONTEXT AND SKILLPARAMETER!!!!

  • 30.08.2023:

    1. The bug in mongo_reader is fixed. Now tree_node can fetch the object dictionary by sending GetObjectRequest service call to mongo reader.
    2. Add MiosState and SensorState in data types. Added updating methods to them and TaskState. Now update methods can be invoked by passing corresponding msg.
    3. Completed the condition nodes HasObject and AtPosition. Enabled object check and distance check. Now these condition nodes are strongly related to user-specified actions according to provided action name.
    4. Tested the Fallback and Sequence of BT with current condition and action nodes. Now the TaxInsertion skill in mios can be perfectly reproduced by kios.
  • 29.08.2023:

    1. Changed the msg TaskState into nested msg type with MiosState and SensorState.
    2. Restored all code in branch dump. reset branch BBbranch for debug.
  • 28.08.2023:

    1. Added mongo_reader cpp node. The old python node is discarded from now.
    2. Added mongo_client lib and object master class. Merged Object and Parameters from mios.
    3. Successfully read the objects from mongoDB.
    4. Fixed conan dependency management problem. Now the mongocxx and eigen can be sourced from conan.
  • 27.08.2023:

    1. Added send_and_check method to ws_client. Now commander can handle the response from mios.
    2. Added request handling method in commander. Now commander is enabled to stop mios skill execution when a success is invoked on kios side.
    3. Added tree phase to switch action request and tree state. Now tactician can conduct tree phase check and stay in the same phase with tree node.
  • 26.08.2023:

    1. BehaviorTree.CPP library changed. In reactivesequence, the error of multiple nodes return running is disabled now.
    2. Validated the sequence action execution. The execution flow of kios is validated.
  • 24.08.2023:

    1. Refactored Poco udp with boost.asio.
    2. Fixed the segmentation fault bug in tactician. ---“啊?”
    3. Added SwitchTreePhase Server. Now nodes can invoke tree phase switch out of the tree_node.
  • 23.08.2023:

    1. Added template class HyperMetaNode. Sorted up the behavior_tree dir and create new condition nodes.
    2. Added RunOnce method in template class.
    3. Moved the udp of mios_reader into a new thread to run receive method. The new udp receiver in python is also thread safe.
    4. Upgraded messenger. Now all the callbacks are in the same mutually exclusive callback group. This should make the R/W process in the publisher and subscriptions thread-safe.
    5. Optimized subscription callbacks with moving assignment.
  • 22.08.2023:

    1. Updated the BBGeneralSkill. Imported kios_utils and kios_communication libs. Changed all data_types into kios_utils types.
    2. Added thread-safe udp sender in kios_communication.
    3. Added necessary tree phase switch parts in BBGeneralSkill.
  • 21.08.2023:

    1. Refactored all the tree node. Moved all basic methods into meta node. Removed all data types and linked the behavior_tree lib to kios_utils.
  • 20.08.2023:

    1. Refactored and upgraded tactician and tree_node.
    2. Removed ActionContext in behavior_tree lib. All data types are now defined in kios_utils lib.
    3. Changed the communication between tree_node and tactician. Now the action phase switch is detected in tree_node and tactician should be informed with SwitchActionRequest srv. TreeState msg (pub sub) is discarded (turn off) for now.
  • 19.08.2023:

    1. Moved ws_client lib to kios_communication. add thread safe udp lib relying on Poco.
    2. Added new enum TreeState for mios-kios state synchronization. The concept is elaborated in * Running Process
    3. Added udp socket in tree_node. Add more method for tree phase switch (UNFINISHED).
  • 18.08.2023:

    1. Added Poco. Add new udp receiver in mios_reader.
  • 17.08.2023:

    1. Added thread-safe data type.
  • 16.08.2023:

    1. BUG of velocity limit violation fixed. (flag error in tactician)
    2. Added new CLI: turn_on and turn_off. Realized with ros2xxx.api
  • 15.08.2023:

    1. BUG of Action Phase inconsistency fixed.
    2. CLI teach_object test succeeded.
  • 14.08.2023:

    1. Realized mongo_reader in kios_py.
    2. DEBUG: action_name is empty. check task module in mios.
    3. Fixed auto-fill error in CLI.
    4. Added CLI service TeachObjectService in commander. Add CLI_node in kios_cli to enable service call.
  • 13.08.2023:

    1. Added kios_cli for inplementing command line interface. Add a test method "say".
    2. Added mongoDB source file.
  • 10.08.2023:

    1. Context inconsistency with mios fixed. Now a single command execution along with mios is possible.
    2. Bugs in tactician, commander and tree_node are fixed.
    3. New launch file debug_launch.py added for debugging.
    4. Added new library kios_utils for containing common data structure.
  • 07.08.2023:

    1. Changed the project name into KIOS. The old name bt_mios_ros2 is discarded.
    2. Added README.md.