我想创建一个ROS服务,当使用export JAVA_HOME=YOUR_JAVA_LOCATION
进行调用时,它将重新启动计算机。
这是我的回调代码:
$ source .bash_profile
$ echo $JAVA_HOME
但是,当我运行rosservice
(或服务称为任何名称)时,由于ROS和Python并未以def reboot_callback(self, cmd):
"""
Callback to reboot
"""
res = TriggerResponse()
res.success = True
res.message = "Rebooting"
os.system('reboot')
return res
的身份运行,我收到了rosservice call /reboot
错误并且需要管理员权限才能重新启动计算机。
答案 0 :(得分:1)
要具有从ROS节点重新启动计算机的正确特权,必须从root用户运行Permission Denied
和sudo
。
这是我的做法:
使用roscore
获取ROS设置文件和catkin_ws文件(rosrun
)
运行sudo su
和source /opt/ros/kinetick/setup.bash && source catkin_ws/devel/setup.bash
(如果有启动文件,则运行roscore
),现在可以调用服务了。
另一种方法是使用tmux。
在要重新启动的计算机上运行tmux
ssh到计算机并运行rosrun
运行您需要启动的任何程序,以尝试使用ros重新启动计算机,并且应该可以运行