问题描述
我想创建一个python ros2节点,它从一个csv文件中读取一些数据然后使用它,这个csv文件放在ros2 python节点旁边的目录:workspace/src/ 当我从这个目录运行这个节点时它工作正常,但是当我使用 colcon build 构建 pkg 并使用 ros2 run 解决方案是在我打开 csv 时输入完整路径 但我在这里的问题是如何不能使用完整路径并仍然使其工作,当我使用 colcon build 工作时,我的节点在哪里被复制,或者我可以使用哪些特定于 ros2 的内部变量 #with open("/home/ali/Engineering/ITI/low_speed_self_driving_vehicles/ROS_lectures/GWS/src/iti_lab_9/iti_lab_9/turtle_commands.csv",'r',newline='') as csvfile:
with open("turtle_commands.csv",newline='') as csvfile:
csvread = csv.reader(csvfile,delimiter=',')
next(csvread)
for row in csvread:
self.linear_x.append(float(row[0]))
self.angular_z.append(float(row[1]))
self.index=0
解决方法
因为当您启动包时,启动路径很可能不在 csv 旁边。
您可以将此添加到您的脚本中
import os
def path_script():
_path = os.path.dirname(os.path.abspath(__file__))
_path = _path.replace('\\','/')
return _path
path_script()
检查一下。