Ros如何在.cpp可执行文件中启动或关闭某一节点

前言:

     今天,亲爱的peter同学在调试机器人时发现了一个问题(机器人的周围一圈突然多出障碍物时,局部代价地图会形成一圈的代价层,他会导致move_base节点出现报错,就算是障碍物消失后也会如此),所以他希望能在程序(.cpp文件中)判断是否出现此类情况从而做到在程序中杀死move_base进程,再利用launch文件的重生属性做到重启。

实现方式:

   废话不多说,直接上干货。经过一系列的头脑风暴和网络人肉爬虫后,找到了这个函数  system();直接起飞。

具体用法如下:

ros::init(argc,argv,"joy");
ros::NodeHandle n;
system("rosnode kill /turtlesim");//杀死小乌龟这个节点

这个""中间对应的就是你终端的命令。就像下图:

 运行节点和终端的结果相同,如下:

 扩展:

       有了这个基础,我感觉在终端可以实现的功能在这个函数里面都能实现一样,如 rostopic list   rosrun pkg node 之类常用的命令感觉都可以做到,大家可以试一试哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值