我正在处理将包含在主节点文件中的可执行文件。但是问题是,尽管我可以在PC中定义路径并使用打开文本文件或执行该文件,但是它对于团队中其他团队成员并不通用。从git拉出后必须更改代码。
我有以下命令:
os.chdir( "/home/user/epsilon/epsilon_catkin_ws/src/knowledge_source/sense_manager/pddl_files/")
os.system("./ff -p /home/user/epsilon/epsilon_catkin_ws/src/knowledge_source/sense_manager/pddl_files/ -o domain.pddl -f problem.pddl >
solution_path = "/home/user/epsilon/epsilon_catkin_ws/src/knowledge_source/sense_manager/pddl_files/solution.txt" solution_detail.txt")
由于该路径在我的笔记本电脑中是唯一的,因此每个人都需要进行更改。有没有办法使路径定义通用? (命令是该节点中存在的服务调用的一部分)。我正在使用rosrun运行节点
我尝试了以下模式,但不起作用:
os.chdir( "$(find knowledge_source)/sense_manager/pddl_files/")
我需要做一些额外的事情来使这项工作吗?knowledge_source是程序包的名称
有什么建议吗?
我认为您正在寻找rospkg和os组合以获取ros软件包中文件的路径。