Skip to content

Commit 488a877

Browse files
committed
ボール回り込みのときにボールの方向を向くように変更
1 parent 9356030 commit 488a877

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

crane_robot_skills/src/kick.cpp

+11-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ Kick::Kick(RobotCommandWrapperBase::SharedPtr & base)
139139
visualizer->add(text_builder.getSvgString());
140140
}
141141
command.setTargetPosition(ball_pos + (ball_pos - target).normalized() * 0.3)
142-
.lookAtFrom(target, ball_pos)
142+
.lookAt(ball_pos)
143143
.setTerminalVelocity(0.3);
144144
return Status::RUNNING;
145145
} else {
@@ -168,13 +168,22 @@ Kick::Kick(RobotCommandWrapperBase::SharedPtr & base)
168168
getAngle(target - robot()->pose.pos))) *
169169
ratio;
170170
Vector2 move_vec = getNormVec(move_direction);
171-
command.lookAtFrom(target, ball_pos)
171+
command.lookAt(ball_pos)
172172
.setDribblerTargetPosition(
173173
robot()->pose.pos + move_vec * 0.3 + world_model()->ball.vel * 0.4)
174174
// .setTerminalVelocity(world_model()->ball.vel.norm())
175175
.disableCollisionAvoidance()
176176
.disableBallAvoidance();
177177

178+
double current_target_angle = getAngle(ball_pos - robot()->pose.pos);
179+
double final_target_angle = getAngle(target - ball_pos);
180+
using boost::math::constants::degree;
181+
// しきい値以下ならキック方向の精度を高めるために最終方向を向く
182+
if (
183+
std::abs(getAngleDiff(current_target_angle, final_target_angle)) < 10. * degree<double>()) {
184+
command.setTargetTheta(final_target_angle);
185+
}
186+
178187
if (getParameter<bool>("chip_kick")) {
179188
command.kickWithChip(getParameter<double>("kick_power"));
180189
} else {

0 commit comments

Comments
 (0)