Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

スキルシステムのアップデート #90

Merged
merged 44 commits into from
Feb 1, 2024
Merged
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a3d61fd
今日のログ
HansRobo Jan 29, 2024
3ef276f
取り敢えずRobotCommandをSkillとして一通り追加
HansRobo Jan 29, 2024
827410d
インクルード用便利ファイルskills.hppを追加
HansRobo Jan 29, 2024
781274e
共通インタフェース設計
HansRobo Jan 29, 2024
20c7b65
SkillBaseクラスに名前付きパラメータを追加
HansRobo Jan 29, 2024
c8b7769
SkillBase::runにパラメータの受け口を追加
HansRobo Jan 29, 2024
6b0c7bb
今日のログ
HansRobo Jan 30, 2024
e68c9a8
SkillBaseにパラメータ用関数を追加
HansRobo Jan 30, 2024
c1e68fe
Idleスキルのパラメータ対応
HansRobo Jan 30, 2024
598d03c
GetBallContactスキルのパラメータ対応
HansRobo Jan 30, 2024
228b7ac
MoveToGeometryスキルのパラメータ対応
HansRobo Jan 30, 2024
f12c1d7
MoveWithBallスキルのパラメータ対応
HansRobo Jan 30, 2024
1c35e41
TurnAroundPointスキルのパラメータ対応
HansRobo Jan 30, 2024
f8002fa
フォーマット
HansRobo Jan 30, 2024
057d230
既存スキルのパラメータ対応終わり!!!
HansRobo Jan 30, 2024
7a119b2
スペルチェッカー対応
HansRobo Jan 30, 2024
42f8a8e
UIアップデート
HansRobo Jan 31, 2024
c623377
WIP
HansRobo Jan 31, 2024
99e80ed
フォーマット
HansRobo Jan 31, 2024
b559d7e
名前空間
HansRobo Jan 31, 2024
559a7a0
スキルのセットアップ
HansRobo Jan 31, 2024
8788000
ベーススキル追加
HansRobo Jan 31, 2024
2444b29
UIのための調整
HansRobo Jan 31, 2024
63ed933
フォーマット
HansRobo Jan 31, 2024
e480232
タスク実行に関するロジックを調整
HansRobo Jan 31, 2024
060d8ed
不要なコードを削除
HansRobo Jan 31, 2024
a291c38
フォーマット
HansRobo Jan 31, 2024
6c151a2
cspellエラーを修正
HansRobo Feb 1, 2024
248889e
編集禁止設定
HansRobo Feb 1, 2024
7914e24
TurnAroundPointスキルのパラメータ対応
HansRobo Feb 1, 2024
a273f17
MoveWithBallスキルのパラメータ対応
HansRobo Feb 1, 2024
6c79390
TurnAroundPointスキルのパラメータセッター
HansRobo Feb 1, 2024
0eecbc9
MoveWithBallスキルのパラメータセッター
HansRobo Feb 1, 2024
400a01d
ball_placement_with_skill_planner.hppの修正
HansRobo Feb 1, 2024
9a07e49
LookAt系スキルの追加
HansRobo Feb 1, 2024
44c3979
複合系スキルの追加
HansRobo Feb 1, 2024
dcef875
フォーマット
HansRobo Feb 1, 2024
70009c9
スキルの名前の形式を統一
HansRobo Feb 1, 2024
1f68ed3
Sleepスキルを追加
HansRobo Feb 1, 2024
86a326a
スキルの実行結果をログに流す
HansRobo Feb 1, 2024
566a6b0
スキルを毎フレームリセットしてしまうバグを修正
HansRobo Feb 1, 2024
75521e5
テーブルのリセットがうまくいかないバグを修正
HansRobo Feb 1, 2024
3529aa2
ボタンの遷移を修正
HansRobo Feb 1, 2024
b31d801
フォーマット
HansRobo Feb 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
取り敢えずRobotCommandをSkillとして一通り追加
HansRobo committed Jan 29, 2024
commit 3ef276f07e849c5e4774ee2b32ed3bcfababe9a4
4 changes: 3 additions & 1 deletion crane_robot_skills/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -17,7 +17,9 @@ find_package(rclcpp_components REQUIRED)
ament_auto_find_build_dependencies()

ament_auto_add_library(${PROJECT_NAME}_component SHARED
src/robot_skills.cpp)
src/robot_skills.cpp
src/robot_command_as_skill.cpp
)

#rclcpp_components_register_nodes(${PROJECT_NAME}_component "crane::WorldModelPublisherComponent")

Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// Copyright (c) 2023 ibis-ssl
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.

#ifndef CRANE_ROBOT_SKILLS__ROBOT_COMMAND_AS_SKILL_HPP_
#define CRANE_ROBOT_SKILLS__ROBOT_COMMAND_AS_SKILL_HPP_

#include <crane_geometry/eigen_adapter.hpp>
#include <crane_robot_skills/skill_base.hpp>

namespace crane
{

#define DEFINE_SKILL_COMMAND(name) \
class Cmd##name : public SkillBase<> \
{ \
public: \
explicit Cmd##name(uint8_t id, std::shared_ptr<WorldModelWrapper> & world_model); \
}

DEFINE_SKILL_COMMAND(KickWithChip);
DEFINE_SKILL_COMMAND(KickStraight);
DEFINE_SKILL_COMMAND(Dribble);
DEFINE_SKILL_COMMAND(SetVelocity);
DEFINE_SKILL_COMMAND(SetTargetPosition);
DEFINE_SKILL_COMMAND(SetDribblerTargetPosition);
DEFINE_SKILL_COMMAND(SetTargetTheta);
DEFINE_SKILL_COMMAND(StopHere);
DEFINE_SKILL_COMMAND(DisablePlacementAvoidance);
DEFINE_SKILL_COMMAND(EnablePlacementAvoidance);
DEFINE_SKILL_COMMAND(DisableBallAvoidance);
DEFINE_SKILL_COMMAND(EnableBallAvoidance);
DEFINE_SKILL_COMMAND(DisableCollisionAvoidance);
DEFINE_SKILL_COMMAND(EnableCollisionAvoidance);
DEFINE_SKILL_COMMAND(DisableGoalAreaAvoidance);
DEFINE_SKILL_COMMAND(EnableGoalAreaAvoidance);
DEFINE_SKILL_COMMAND(SetGoalieDefault);
DEFINE_SKILL_COMMAND(EnableBallCenteringControl);
DEFINE_SKILL_COMMAND(EnableLocalGoalie);
DEFINE_SKILL_COMMAND(SetMaxVelocity);
DEFINE_SKILL_COMMAND(SetMaxAcceleration);
DEFINE_SKILL_COMMAND(SetMaxOmega);
DEFINE_SKILL_COMMAND(SetTerminalVelocity);

} // namespace crane
#endif // CRANE_ROBOT_SKILLS__ROBOT_COMMAND_AS_SKILL_HPP_
66 changes: 66 additions & 0 deletions crane_robot_skills/src/robot_command_as_skill.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Copyright (c) 2024 ibis-ssl
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.

#include <crane_robot_skills/robot_command_as_skill.hpp>

namespace crane
{

#define ONE_FRAME_IMPLEMENTATION(name, method) \
Cmd##name::Cmd##name(uint8_t id, std::shared_ptr<WorldModelWrapper> & world_model) \
: SkillBase<>("Cmd" #name, id, world_model, DefaultStates::DEFAULT) \
{ \
addStateFunction( \
DefaultStates::DEFAULT, \
[this]( \
const std::shared_ptr<WorldModelWrapper> & world_model, \
const std::shared_ptr<RobotInfo> & robot, \
crane::RobotCommandWrapper & command) -> SkillBase::Status { \
command.method; \
return SkillBase::Status::SUCCESS; \
}); \
}

#define ETERNAL_IMPLEMENTATION(name, method) \
Cmd##name::Cmd##name(uint8_t id, std::shared_ptr<WorldModelWrapper> & world_model) \
: SkillBase<>("Cmd" #name, id, world_model, DefaultStates::DEFAULT) \
{ \
addStateFunction( \
DefaultStates::DEFAULT, \
[this]( \
const std::shared_ptr<WorldModelWrapper> & world_model, \
const std::shared_ptr<RobotInfo> & robot, \
crane::RobotCommandWrapper & command) -> SkillBase::Status { \
command.method; \
return SkillBase::Status::RUNNING; \
}); \
}

ONE_FRAME_IMPLEMENTATION(KickWithChip, kickWithChip(0.5))
ONE_FRAME_IMPLEMENTATION(KickStraight, kickStraight(0.5))
ONE_FRAME_IMPLEMENTATION(Dribble, dribble(0.5))
ONE_FRAME_IMPLEMENTATION(SetVelocity, setVelocity(0.0, 0.0))
ONE_FRAME_IMPLEMENTATION(SetTargetPosition, setTargetPosition(Point(0.0, 0.0)))
ONE_FRAME_IMPLEMENTATION(SetDribblerTargetPosition, setDribblerTargetPosition(Point(0.0, 0.0)))
ONE_FRAME_IMPLEMENTATION(SetTargetTheta, setTargetTheta(0.0))
ONE_FRAME_IMPLEMENTATION(StopHere, stopHere())
ONE_FRAME_IMPLEMENTATION(DisablePlacementAvoidance, disablePlacementAvoidance())
ONE_FRAME_IMPLEMENTATION(EnablePlacementAvoidance, enablePlacementAvoidance())
ONE_FRAME_IMPLEMENTATION(DisableBallAvoidance, disableBallAvoidance())
ONE_FRAME_IMPLEMENTATION(EnableBallAvoidance, enableBallAvoidance())
ONE_FRAME_IMPLEMENTATION(DisableCollisionAvoidance, disableCollisionAvoidance())
ONE_FRAME_IMPLEMENTATION(EnableCollisionAvoidance, enableCollisionAvoidance())
ONE_FRAME_IMPLEMENTATION(DisableGoalAreaAvoidance, disableGoalAreaAvoidance())
ONE_FRAME_IMPLEMENTATION(EnableGoalAreaAvoidance, enableGoalAreaAvoidance())
ONE_FRAME_IMPLEMENTATION(SetGoalieDefault, setGoalieDefault())
ONE_FRAME_IMPLEMENTATION(EnableBallCenteringControl, enableBallCenteringControl())
ONE_FRAME_IMPLEMENTATION(EnableLocalGoalie, enableLocalGoalie())
ONE_FRAME_IMPLEMENTATION(SetMaxVelocity, setMaxVelocity(0.0))
ONE_FRAME_IMPLEMENTATION(SetMaxAcceleration, setMaxAcceleration(0.0))
ONE_FRAME_IMPLEMENTATION(SetMaxOmega, setMaxOmega(0.0))
ONE_FRAME_IMPLEMENTATION(SetTerminalVelocity, setTerminalVelocity(0.0))

} // namespace crane