@@ -32,6 +32,7 @@ void InferenceNode::load_config() {
3232 this ->declare_parameter <std::vector<double >>(" clip_cmd" , std::vector<double >{});
3333 this ->declare_parameter <std::vector<double >>(" joint_default_angle" , std::vector<double >{});
3434 this ->declare_parameter <std::vector<double >>(" joint_limits" , std::vector<double >{});
35+ this ->declare_parameter <float >(" gravity_z_upper" , -0.5 );
3536
3637
3738 this ->get_parameter (" model_name" , model_name_);
@@ -65,6 +66,7 @@ void InferenceNode::load_config() {
6566 this ->get_parameter (" clip_cmd" , clip_cmd_);
6667 this ->get_parameter (" joint_default_angle" , joint_default_angle_);
6768 this ->get_parameter (" joint_limits" , joint_limits_);
69+ this ->get_parameter (" gravity_z_upper" , gravity_z_upper_);
6870
6971
7072 model_path_ = std::string (ROOT_DIR) + " models/" + model_name_;
@@ -96,6 +98,7 @@ void InferenceNode::load_config() {
9698 print_vector<double >(" clip_cmd" , clip_cmd_);
9799 print_vector<double >(" joint_default_angle" , joint_default_angle_);
98100 print_vector<double >(" joint_limits" , joint_limits_);
101+ RCLCPP_INFO (this ->get_logger (), " gravity_z_upper: %f" , gravity_z_upper_);
99102}
100103
101104void InferenceNode::subs_joy_callback (const std::shared_ptr<sensor_msgs::msg::Joy> msg) {
@@ -147,11 +150,16 @@ void InferenceNode::subs_joy_callback(const std::shared_ptr<sensor_msgs::msg::Jo
147150 if (use_interrupt_ || use_beyondmimic_) {
148151 if (msg->buttons [4 ] == 1 && msg->buttons [4 ] != last_button4_) {
149152 if (use_interrupt_){
153+ is_running_.store (false );
154+ RCLCPP_INFO (this ->get_logger (), " Inference paused" );
155+ std::this_thread::sleep_for (std::chrono::milliseconds (50 ));
150156 is_interrupt_.store (!is_interrupt_.load ());
157+ std::this_thread::sleep_for (std::chrono::milliseconds (50 ));
151158 RCLCPP_INFO (this ->get_logger (), " Interrupt mode %s" , is_interrupt_.load () ? " enabled" : " disabled" );
152159 }
153- if (use_beyondmimic_){
160+ else if (use_beyondmimic_){
154161 is_running_.store (false );
162+ RCLCPP_INFO (this ->get_logger (), " Inference paused" );
155163 std::this_thread::sleep_for (std::chrono::milliseconds (50 ));
156164 is_beyondmimic_.store (!is_beyondmimic_.load ());
157165 bool is_beyondmimic = is_beyondmimic_.load ();
@@ -170,10 +178,10 @@ void InferenceNode::subs_joy_callback(const std::shared_ptr<sensor_msgs::msg::Jo
170178 std::fill (active_ctx_->output_buffer .begin (), active_ctx_->output_buffer .end (), 0 .0f );
171179 std::fill (act_.begin (), act_.end (), 0 .0f );
172180 std::fill (last_act_.begin (), last_act_.end (), 0 .0f );
181+ std::fill (joint_torques_.begin (), joint_torques_.end (), 0 .0f );
173182 is_first_frame_ = true ;
174183 motion_frame_ = 0 ;
175184 std::this_thread::sleep_for (std::chrono::milliseconds (50 ));
176- is_running_.store (true );
177185 RCLCPP_INFO (this ->get_logger (), " Beyondmimic mode %s" , is_beyondmimic ? " enabled" : " disabled" );
178186 }
179187 }
0 commit comments