Skip to content

RL在ros控制器中无法推理 #81

@spiderman0806

Description

@spiderman0806

博主您好,感谢开源,我想在此项目中单独创建一个控制器部署强化学习,遇到了一些问题,用的ubuntu20.04, ROS1,libtorch的cpu2.4.1版本(和模型pytorch版本对应),控制器中代码如下:
`
LeggedControllerRL::LeggedControllerRL() { }

bool LeggedControllerRL::init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &controller_nh) { }

void LeggedControllerRL::starting(const ros::Time& time) {
load_policy();
}

void LeggedControllerRL::update(const ros::Time& time, const ros::Duration& period) {
get_action();
}

void LeggedControllerRL::load_policy(){
deviceType_ = torch::kCPU;
std::string model_path_tmp = "/home/legged_control_/src/legged_control_/legged_controllers/policy/policy_1.pt";
model_ = torch::jit::load(model_path_tmp);
model_.to(deviceType_);
model_.to(torch::kFloat32);
model_.eval();
}

void LeggedControllerRL::get_action(){
torch::NoGradGuard no_grad;
torch::Tensor action_temp11;
torch::Tensor temp11 = torch::ones({1, 87}).to(torch::kFloat32).to(deviceType_); // 87 is the observation size
action_temp11 = model_.forward({temp11}).toTensor();
}

LeggedControllerRL::~LeggedControllerRL() {
}
`

cmakelist中:

`find_package(Torch REQUIRED PATHS "/home/libtorch_cpu/libtorch")
set(CMAKE_CXX_STANDARD 17)

add_library(${PROJECT_NAME}
src/LeggedController.cpp
src/LeggedController_RL.cpp
)

target_link_libraries(${PROJECT_NAME}
${catkin_LIBRARIES}
${pinocchio_LIBRARIES}
${TORCH_LIBRARIES}
)
`

运行到推理这一步 action_temp11 = model_.forward({temp11}).toTensor()会报错:
malloc(): invalid size (unsorted)
Aborted (core dumped)
但在main函数单独运行该部分代码可以正常推理,打印输出

int main(int argc, char** argv) { while(1){ std::string model_path = "/home/legged_control_/src/legged_control_/legged_controllers/policy/policy_1.pt"; torch::jit::script::Module model = torch::jit::load(model_path); torch::Tensor temp = torch::ones({1, 87}).to(torch::kFloat32).to(torch::kCPU); torch::Tensor action_temp = model.forward({temp}).toTensor(); std::cout << action_temp << std::endl; } }
期待您的回复

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions