A reminder of things to do before releasing a 1.0.0 release.
TODO:
Namespace
I would propose these changes to better align with BehaviorTree.CPP:
namespace BT {
namespace MTC {
template <typename T = Any>
class SetMTCProperties : public SyncActionNode
{
public:
SetMTCProperties(const std::string& name, const NodeConfig& config)
: SyncActionNode(name, config) {}
NodeStatus tick() override {}
static PortsList providedPorts() {}
};
} // namespace MTC
template <>
inline MTC::SharedProperty<int> convertFromString<MTC::SharedProperty<int>>(StringView str)
{
MTC::SharedProperty<int> output = std::make_shared<int>(convertFromString<int>(str));
return output;
}
} // namespace BT
BT Ports
When moving a stage is it an Input or a Bidirectional Port ? Because the blackboard value is set to nullptr we should set the port to Bidirectional.
Halting an MTC Task::plan()
This PlanMTCTask BT node is derived from the ThreadedAction which makes planning in another thread. To be reactive, the plan must hbe preemptable. To this end, 2 PR's where submitted/merged to reduce the time it takes to preempt a task. But there are still some cases where an MTC stage is planning something long where it cannot be preempted.
A reminder of things to do before releasing a
1.0.0release.TODO:
set+configureInitFrom+exposeTo)GroupPlannerVectorin the BT. Or create a new class.thread-safe. Documentation.BT PlanMTCTaskby checking theisHaltRequested. Documentation. Probably needs a PR in MTC to add a callback in the plan method.Namespace
I would propose these changes to better align with BehaviorTree.CPP:
BT Ports
When moving a stage is it an Input or a Bidirectional Port ? Because the blackboard value is set to nullptr we should set the port to
Bidirectional.Halting an MTC Task::plan()
This PlanMTCTask BT node is derived from the ThreadedAction which makes planning in another thread. To be reactive, the plan must hbe preemptable. To this end, 2 PR's where submitted/merged to reduce the time it takes to preempt a task. But there are still some cases where an MTC stage is planning something long where it cannot be preempted.