<launch>
<node pkg="ego_planner" name="take_off_land" type="take_off_land" output="screen">
<param name="take_off_land/drone_sum" value="2" type="int"/>// <!--局部参数-->
</node>
</launch>
int drone_sum_;//全局变量
int main(int argc, char** argv) {
ros::init(argc, argv, "take_off_land");
ros::NodeHandle nh("~"); //nh是局部命名空间
nh.param("take_off_land/drone_sum", drone_sum_, 1);
std::cout<<"drone_sum_: "<<drone_sum_<<std::endl;//drone_sum_ = 2
}
<launch>
<node pkg="ego_planner" name="take_off_land" type="take_off_land" output="screen">
<param name="take_off_land/drone_sum" value="2" type="int"/>// <!--局部参数-->
</node>
</launch>
int drone_sum_;//全局变量
int main(int argc, char** argv) {
ros::init(argc, argv, "take_off_land");
ros::NodeHandle nh; //nh是全局命名空间
nh.param("take_off_land/drone_sum", drone_sum_, 1);
std::cout<<"drone_sum_: "<<drone_sum_<<std::endl;//drone_sum_ = 1
}
//在全局命名空间下,要提取局部命名空间下的参数,需要添加node name
<launch>
<node pkg="ego_planner" name="take_off_land" type="take_off_land" output="screen">
<param name="take_off_land/drone_sum" value="2" type="int"/>// <!--局部参数-->
</node>
</launch>
int drone_sum_;//全局变量
int main(int argc, char** argv) {
ros::init(argc, argv, "take_off_land");
ros::NodeHandle nh; //nh是全局命名空间
nh.param("take_off_land/take_off_land/drone_sum", drone_sum_, 1);
std::cout<<"drone_sum_: "<<drone_sum_<<std::endl;//drone_sum_ = 2
}
-----------------------------------分隔线----------------------------------------
//在全局命名空间下,要提取局部命名空间下的参数,需要添加node name,这时候的node name依旧是take_off_land,与加入的命名空间无关
<launch>
<group ns="UAV1">//加入命名空间
<node pkg="ego_planner" name="take_off_land" type="take_off_land" output="screen">
<param name="take_off_land/drone_sum" value="2" type="int"/>// <!--局部参数-->
</node>
</group>
</launch>
int drone_sum_;//全局变量
int main(int argc, char** argv) {
ros::init(argc, argv, "take_off_land");
ros::NodeHandle nh; //nh是全局命名空间
nh.param("take_off_land/take_off_land/drone_sum", drone_sum_, 1);
std::cout<<"drone_sum_: "<<drone_sum_<<std::endl;//drone_sum_ = 2
}
<param name="take_off_land/drone_sum" value="2" type="int"/>// <!--全局参数-->
<launch>
<node pkg="ego_planner" name="take_off_land" type="take_off_land" output="screen">
</node>
</launch>
int drone_sum_;//全局变量
int main(int argc, char** argv) {
ros::init(argc, argv, "take_off_land");
ros::NodeHandle nh; //nh是全局命名空间
nh.param("take_off_land/drone_sum", drone_sum_, 1);
std::cout<<"drone_sum_: "<<drone_sum_<<std::endl;//drone_sum_ = 2
}
<param name="take_off_land/drone_sum" value="2" type="int"/>// <!--全局参数-->
<launch>
<node pkg="ego_planner" name="take_off_land" type="take_off_land" output="screen">
</node>
</launch>
int drone_sum_;//全局变量
int main(int argc, char** argv) {
ros::init(argc, argv, "take_off_land");
ros::NodeHandle nh("~"); //nh是局部命名空间
nh.param("take_off_land/drone_sum", drone_sum_, 1);
std::cout<<"drone_sum_: "<<drone_sum_<<std::endl;//drone_sum_ = 2
}
补充:
1. 使用ros::NodeHandle nh("~"),发布的话题名字为:节点名字+话题名字
2. 使用ros::NodeHandle nh,发布的话题名字为:话题名字

1万+

被折叠的 条评论
为什么被折叠?



