天天看点

FileNotFoundError turtlebot3 gazebo dqn models

在调试turtlebot3 machine learning的时候,启动py的时候出现这个错误:

一度以为搞不下去了,结果自己灵机一动,发现原来是路径的问题,果断去找根源文件,turtlebot3_dqn/turtlebot3_dqn/dqn_gazebo/dqn_gazebo.py,在Line 46行,原因是turtlebot3_ws里面的目录路径和py文件里面不对应,导致model.sdf炸不到,原来是:

self.entity_dir_path = self.entity_dir_path.replace(
'turtlebot3_machine_learning/turtlebot3_dqn/turtlebot3_dqn/dqn_gazebo',
'turtlebot3_simulations/turtlebot3_gazebo/models/turtlebot3_dqn_world/goal_box')
           

修改成:

self.entity_dir_path = self.entity_dir_path.replace(
'turtlebot3_machine_learning/turtlebot3_dqn/turtlebot3_dqn/dqn_gazebo',
'turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models/turtlebot3_dqn_world/goal_box')
           

详细参见:

https://github.com/shanpenghui/turtlebot3_fixed.git
           

假如出现这个错误:

Traceback (most recent call last):
  File "/home/sph/turtlebot3_ws/install/turtlebot3_dqn/lib/turtlebot3_dqn/dqn_gazebo", line 33, in <module>
    sys.exit(load_entry_point('turtlebot3-dqn==2.0.0', 'console_scripts', 'dqn_gazebo')())
  File "/home/sph/turtlebot3_ws/install/turtlebot3_dqn/lib/python3.6/site-packages/turtlebot3_dqn/dqn_gazebo/dqn_gazebo.py", line 158, in main
    dqn_gazebo = DQNGazebo(args)
  File "/home/sph/turtlebot3_ws/install/turtlebot3_dqn/lib/python3.6/site-packages/turtlebot3_dqn/dqn_gazebo/dqn_gazebo.py", line 48, in __init__
    self.entity = open(self.entity_path, 'r').read()
FileNotFoundError: [Errno 2] No such file or directory: '/home/sph/turtlebot3_ws/install/turtlebot3_dqn/lib/python3.6/site-packages/turtlebot3_dqn/dqn_gazebo/model.sdf'
           

原因是编译的时候只是复制,相关链接没配置好,在colcon build的时候添加–symlink-install选项就好,Use symlinks instead of copying files where possible

应该重新用下面指令去编译:

colcon build --symlink-install
           

继续阅读