在机器人的控制器中,通常定制/cmd_vel消息以执行上层的运动控制命令。发布/odom消息以给上层提供准确的机器人运动状态。
param 同getParam 但会提供一个默认值,当找不到对应的参数项时。
而getParam 根据key 获取对应的string value,然后作为出参返回。
对于Command只是提供了一个命令集,约定只是命令ID这样的内容,而这些也是串口数据的格式,底层单板依据此来判断命令。具体调用仍然在arduqbo_driver中实现。
nh.param("controllers/"+name+"/topic", topic, std::string("cmd_vel"));
nh.param("controllers/"+name+"/odom_topic", odom_topic, std::string("odom"));
nh.param("controllers/"+name+"/rate", rate_, 15.0);
nh.param("controllers/"+name+"/tf_odom_broadcast", is_odom_broadcast_enabled_, true);
twist_sub_ = nh.subscribe<geometry_msgs::Twist>(topic, 1, &CBaseController::twistCallback, this);
odom_pub_ = nh.advertise<nav_msgs::Odometry>(odom_topic, 1);
stall_unlock_service_ = nh