ロボットへの制御パケットの見直し #372
-
現状の制御パケットhttps://github.com/ibis-ssl/crane/blob/develop/crane_sender/include/crane_sender/robot_packet.hpp struct RobotCommand
{
uint8_t HEADER;
uint8_t CHECK;
float VEL_LOCAL_SURGE;
float VEL_LOCAL_SWAY;
float VISION_GLOBAL_X;
float VISION_GLOBAL_Y;
float VISION_GLOBAL_THETA;
float TARGET_GLOBAL_X;
float TARGET_GLOBAL_Y;
float BALL_GLOBAL_X;
float BALL_GLOBAL_Y;
float TARGET_GLOBAL_THETA;
bool LOCAL_FEEDBACK_ENABLE;
bool LOCAL_KEEPER_MODE_ENABLE;
bool IS_ID_VISIBLE;
bool STOP_FLAG;
bool IS_DRIBBLER_UP;
float KICK_POWER;
float DRIBBLE_POWER;
bool CHIP_ENABLE;
operator RobotCommandSerialized() const;
};
struct RobotCommandSerialized
{
enum class Address {
// HEADER,
CHECK,
VEL_LOCAL_SURGE_HIGH,
VEL_LOCAL_SURGE_LOW,
VEL_LOCAL_SWAY_HIGH,
VEL_LOCAL_SWAY_LOW,
VISION_GLOBAL_THETA_HIGH,
VISION_GLOBAL_THETA_LOW,
TARGET_GLOBAL_THETA_HIGH,
TARGET_GLOBAL_THETA_LOW,
KICK_POWER,
DRIBBLE_POWER,
LOCAL_FLAGS,
BALL_GLOBAL_X_HIGH,
BALL_GLOBAL_X_LOW,
BALL_GLOBAL_Y_HIGH,
BALL_GLOBAL_Y_LOW,
VISION_GLOBAL_X_HIGH,
VISION_GLOBAL_X_LOW,
VISION_GLOBAL_Y_HIGH,
VISION_GLOBAL_Y_LOW,
TARGET_GLOBAL_X_HIGH,
TARGET_GLOBAL_X_LOW,
TARGET_GLOBAL_Y_HIGH,
TARGET_GLOBAL_Y_LOW,
SIZE
}; LocalFlagの内容 uint8_t local_flags = 0x00;
local_flags |= (IS_ID_VISIBLE << 0);
local_flags |= (LOCAL_KEEPER_MODE_ENABLE << 1);
local_flags |= (STOP_FLAG << 2);
local_flags |= (LOCAL_FEEDBACK_ENABLE << 3);
local_flags |= (IS_DRIBBLER_UP << 4); |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 30 replies
-
制御モードをいくつか用意したいモード変数と自由記述スペースを確保して、モードによってAI側からロボットの動作モードを切り替えられるようにしたい。
自由記述スペース、8つじゃ足りないか?(floatなら4つ分くらい) |
Beta Was this translation helpful? Give feedback.
-
軌道追従がうまく出来るようにロボットに情報を渡したい今だと目標点を渡しているだけなのでもっと軌道追従しやすいように情報を渡したい。 |
Beta Was this translation helpful? Give feedback.
-
速度指令値をグローバル座標系にする?どっかのタイミングでこの話が出た気がするけど、結局、座標系が違うだけで同じ値になるので意味ない気がしてきた。 |
Beta Was this translation helpful? Give feedback.
-
ヨー方向についてもう少し情報を増やす今は角度指定のみだが、速度や加速度や追従モードなど追加する 角速度指定 (レイテンシチェック)今はロボット側でレイテンシチェックモードを作り、角速度一定で回転させているが、開始が面倒なので普通に制御コマンドで角速度一定で回転させられたほうが良いかも。 角度追従の優先度切り替え (角度優先 or 移動優先)シュートしたい場合などはロボットの向きは指令値どおりであってほしい。 角加速度(?)変更ボールプレースメントなど、機敏さよりも滑らかさが重視されるときに角加速度を下げたい。 ヨー角度ゲイン(各加速度)を与えて、滑らかさや追従優先度を切り替えられると良いかも。 |
Beta Was this translation helpful? Give feedback.
-
開発方針とりあえず考えてみた コマンド拡張使い方はともかく、とりあえずデータ量だけ拡張しておく? 制御モード(ロボット側)最終的にどうするかはともかく、小機能単位で実装する 制御モード(AI側)状況によって、ロボット側がなにを優先して動くべきかを考えられればいいかも? |
Beta Was this translation helpful? Give feedback.
-
ロボットの制御以外のデータ追加でなにかあるといいかもしれない 使いそうなデータ |
Beta Was this translation helpful? Give feedback.
-
ロボットに与えるパラメーターの追加速度指令モードで加速度も与えるようにする? |
Beta Was this translation helpful? Give feedback.
グワッグワッグワッ