我想要创建一个python ros2节点,它从csv文件中读取一些数据,然后使用它,这个csv文件被放在ros2 python节点旁边的dirctory /src//中。
当我从这个目录运行这个节点时,它可以正常工作,但是当我使用colcon构建并使用ros2运行 运行这个节点时,它不会产生错误,不会产生这样的文件或目录。
当我打开csv时,解决方案是放置完整的路径。
但是我在这里的问题是,如何不能使用完整的路径并且仍然使其工作,当我使用colcon构建工作时,我的节点在哪里被复制,或者我可以使用哪些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",'r', 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发布于 2021-07-05 07:06:24
因为当您启动包时,启动路径很可能不在csv旁边。
您可以将此添加到脚本中。
import os
def path_script():
_path = os.path.dirname(os.path.abspath(__file__))
_path = _path.replace('\\', '/')
return _path
path_script()去检查一下。
https://stackoverflow.com/questions/67604804
复制相似问题