Skip to content

Commit ff6b2ae

Browse files
authored
Merge pull request #281 from 321Aurora/fixed-for-wheel-speed
Achieve fixed front friction wheel speed for hero
2 parents d3dfcac + e5cd624 commit ff6b2ae

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

rm_common/include/rm_common/decision/command_sender.h

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,8 @@ class ShooterCommandSender : public TimeStampCommandSenderBase<rm_msgs::ShootCmd
381381
nh.getParam("wheel_speed_16", wheel_speed_16_);
382382
nh.getParam("wheel_speed_18", wheel_speed_18_);
383383
nh.getParam("wheel_speed_30", wheel_speed_30_);
384+
nh.param("wheel_speed_offset_front", wheel_speed_offset_front_, 0.0);
385+
nh.param("wheel_speed_offset_back", wheel_speed_offset_back_, 0.0);
384386
nh.param("speed_oscillation", speed_oscillation_, 1.0);
385387
nh.param("extra_wheel_speed_once", extra_wheel_speed_once_, 0.);
386388
nh.param("deploy_wheel_speed", deploy_wheel_speed_, 410.0);
@@ -484,6 +486,8 @@ class ShooterCommandSender : public TimeStampCommandSenderBase<rm_msgs::ShootCmd
484486
void sendCommand(const ros::Time& time) override
485487
{
486488
msg_.wheel_speed = getWheelSpeedDes();
489+
msg_.wheels_speed_offset_front = getFrontWheelSpeedOffset();
490+
msg_.wheels_speed_offset_back = getBackWheelSpeedOffset();
487491
msg_.hz = heat_limit_->getShootFrequency();
488492
TimeStampCommandSenderBase<rm_msgs::ShootCmd>::sendCommand(time);
489493
}
@@ -495,16 +499,22 @@ class ShooterCommandSender : public TimeStampCommandSenderBase<rm_msgs::ShootCmd
495499
double getWheelSpeedDes()
496500
{
497501
setSpeedDesAndWheelSpeedDes();
498-
if (deploy_flag_)
502+
if (hero_flag_)
499503
{
500-
return deploy_wheel_speed_ + total_extra_wheel_speed_;
504+
if (deploy_flag_)
505+
return deploy_wheel_speed_;
506+
return wheel_speed_des_;
501507
}
502508
return wheel_speed_des_ + total_extra_wheel_speed_;
503509
}
504510
void setDeployState(bool flag)
505511
{
506512
deploy_flag_ = flag;
507513
}
514+
void setHeroState(bool flag)
515+
{
516+
hero_flag_ = flag;
517+
}
508518
bool getDeployState()
509519
{
510520
return deploy_flag_;
@@ -550,13 +560,29 @@ class ShooterCommandSender : public TimeStampCommandSenderBase<rm_msgs::ShootCmd
550560
}
551561
}
552562
}
563+
double getFrontWheelSpeedOffset()
564+
{
565+
wheels_speed_offset_front_ = wheel_speed_offset_front_;
566+
return wheels_speed_offset_front_;
567+
}
568+
double getBackWheelSpeedOffset()
569+
{
570+
wheels_speed_offset_back_ = wheel_speed_offset_back_;
571+
return wheels_speed_offset_back_;
572+
}
553573
void dropSpeed()
554574
{
555-
total_extra_wheel_speed_ -= extra_wheel_speed_once_;
575+
if (hero_flag_)
576+
wheel_speed_offset_front_ -= extra_wheel_speed_once_;
577+
else
578+
total_extra_wheel_speed_ -= extra_wheel_speed_once_;
556579
}
557580
void raiseSpeed()
558581
{
559-
total_extra_wheel_speed_ += extra_wheel_speed_once_;
582+
if (hero_flag_)
583+
wheel_speed_offset_front_ += extra_wheel_speed_once_;
584+
else
585+
total_extra_wheel_speed_ += extra_wheel_speed_once_;
560586
}
561587
void setArmorType(uint8_t armor_type)
562588
{
@@ -577,6 +603,8 @@ class ShooterCommandSender : public TimeStampCommandSenderBase<rm_msgs::ShootCmd
577603
double speed_10_{}, speed_15_{}, speed_16_{}, speed_18_{}, speed_30_{}, speed_des_{}, speed_limit_{};
578604
double wheel_speed_10_{}, wheel_speed_15_{}, wheel_speed_16_{}, wheel_speed_18_{}, wheel_speed_30_{},
579605
wheel_speed_des_{}, last_bullet_speed_{}, speed_oscillation_{};
606+
double wheel_speed_offset_front_{}, wheel_speed_offset_back_{};
607+
double wheels_speed_offset_front_{}, wheels_speed_offset_back_{};
580608
double track_armor_error_tolerance_{};
581609
double track_buff_error_tolerance_{};
582610
double untrack_armor_error_tolerance_{};
@@ -586,6 +614,7 @@ class ShooterCommandSender : public TimeStampCommandSenderBase<rm_msgs::ShootCmd
586614
double total_extra_wheel_speed_{};
587615
double deploy_wheel_speed_{};
588616
bool auto_wheel_speed_ = false;
617+
bool hero_flag_{};
589618
bool deploy_flag_ = false;
590619
rm_msgs::TrackData track_data_;
591620
rm_msgs::GimbalDesError gimbal_des_error_;

rm_msgs/msg/ShootCmd.msg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@ uint8 SPEED_30M_PER_SECOND = 5
1212
uint8 mode
1313
float64 wheel_speed
1414
float64 hz
15+
float64 wheels_speed_offset_front
16+
float64 wheels_speed_offset_back
1517
time stamp

0 commit comments

Comments
 (0)