微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ROS Launcher文件导致roslaunch错误

如何解决ROS Launcher文件导致roslaunch错误

我有一个正在尝试的ROS项目。我具有以下文件夹结构:

catkin_ws
  - src
    - beginner_tutorials
      - src
        - listener.cpp
        - talker.cpp
      - config
        - config.conf
      - launch
        - my.launch
      - srv
        - ModifyText.srv
      - CMakeLists.txt

假设我在catkin_ws中有其他文件夹,例如devel等,

这是CMakeLists.txt的样子:

cmake_minimum_required(VERSION 2.8.3)
project(beginner_tutorials)

## Find catkin and any catkin packages
find_package(catkin required COMPONENTS roscpp rospy std_msgs genmsg)

## Declare ROS messages and services
#add_message_files(FILES Num.msg)
add_service_files(FILES modifyText.srv)

## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)

## Declare a catkin package
catkin_package()

## Build talker and listener
include_directories(include ${catkin_INCLUDE_Dirs})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker beginner_tutorials_generate_messages_cpp)

add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener beginner_tutorials_generate_messages_cpp)

现在,当我尝试使用如下启动器文件启动监听器和发话器时,出现以下错误

joesan@joesan-InfinityBook-S-14-v5:~/Projects/ros-projects/catkin_ws$ roslaunch beginner_tutorials my.launch
... logging to /home/joesan/.ros/log/4df614ca-ebaa-11ea-b08a-3fbc143c4e1a/roslaunch-joesan-InfinityBook-S-14-v5-7071.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://joesan-InfinityBook-S-14-v5:37169/

SUMMARY
========

ParaMETERS
 * /rosdistro: noetic
 * /rosversion: 1.15.8

NODES
  /
    listener (beginner_tutorials/listener)
    talker (beginner_tutorials/talker)

ROS_MASTER_URI=http://localhost:11311

process[talker-1]: started with pid [7085]
RLException: Roslaunch got a 'No such file or directory' error while attempting to run:

gnome-terminal -e /home/joesan/Projects/ros-projects/catkin_ws/devel/lib/beginner_tutorials/listener __name:=listener __log:=/home/joesan/.ros/log/4df614ca-ebaa-11ea-b08a-3fbc143c4e1a/listener-2.log

Please make sure that all the executables in this command exist and have
executable permission. This is often caused by a bad launch-prefix.
The traceback for the exception was written to the log file
[ INFO] [1598893286.274250713]: hello world 0
[talker-1] killing on exit
[listener-2] killing on exit

以下是我的启动文件my.launch的内容

<launch>
    <env name="ROSCONSOLE_CONfig_FILE"
         value="$(find beginner_tutorials)/config/config.conf"/>
    <arg name = "frequency" default = "10" />
    <node pkg = "beginner_tutorials"
          type = "talker"
          name = "talker"
          output = "screen"
          args="$(arg frequency)"/>
    
    <node pkg = "beginner_tutorials"
          type = "listener"
          name = "listener"
          output = "screen"
          launch-prefix = "gnome-terminal -e"/>
</launch>

我可以看到在devel文件夹中,二进制文件的位置如下:

joesan@joesan-InfinityBook-S-14-v5:~/Projects/ros-projects/catkin_ws/devel/lib$ cd beginner_tutorials/
drwxrwxr-x joesan joesan     4 KB Mon Aug 31 18:44:39 2020  .
drwxrwxr-x joesan joesan     4 KB Mon Aug 31 18:44:37 2020  ..
.rwxrwxr-x joesan joesan 327.3 KB Mon Aug 31 18:44:39 2020  listener
.rwxrwxr-x joesan joesan 190.1 KB Mon Aug 31 18:44:39 2020  talker

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。