ERROR: cannot launch node - can't locate node
Hi! I'm trying to run a launcher to spawn turtles and to make them move. I have two files in the src
directory: kill_turtle2.cpp
and explore.cpp
. I also have a message named RobotPose.msg
. Here is the launcher code:
<launch>
<param name="nTurtle" value="3" />
<node pkg="turtlesim" type="turtlesim_node" name="simulator" />
<node pkg="esercizio_4" type="exploration" args="myturtle1 3 3 1" name="turtlenode" launch-prefix="xterm -bg Teal -geometry 120x31+10+10 -e "/>
<node pkg="esercizio_4" type="kill_turtle2" name="mykiller" />
<node pkg="esercizio_4" type="exploration" args="myturtle2 9 8 1" name="turtlenode2" launch-prefix="xterm -bg Teal -geometry 120x31+210+110 -e "/>
<node pkg="esercizio_4" type="exploration" args="myturtle3 4 5 1" name="turtlenode3" launch-prefix="xterm -bg Teal -geometry 120x31+410+210 -e "/>
</launch>
And here is my CMakeLists.txt:
cmake_minimum_required(VERSION 2.8.3)
project(esercizio_4)
## Compile as C++11, supported in ROS Kinetic and newer
add_compile_options(-std=c++11)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
roscpp
rospy
std_msgs
message_generation
)
# Generate messages in the 'msg' folder
add_message_files(
FILES
RobotPose.msg
)
# Generate added messages and services with any dependencies listed here
generate_messages(
DEPENDENCIES
geometry_msgs std_msgs
)
catkin_package(
CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs message_runtime
)
## Specify additional locations of header files
## Your package locations should be listed before other locations
include_directories(
# include
${catkin_INCLUDE_DIRS}
)
## Declare a C++ executable
## With catkin_make all packages are built within a single CMake context
## The recommended prefix ensures that target names across packages don't collide
add_executable(turtle_exploration src/exploration.cpp)
add_executable(kill_turtle2 src/kill_turtle2.cpp)
## Specify libraries to link a library or executable target against
target_link_libraries(turtle_exploration ${catkin_LIBRARIES})
target_link_libraries(kill_turtle2 ${catkin_LIBRARIES})
catkin_make
works fine, and I also have added export ROS_PACKAGE_PATH=~/catkin_ws/src:$ROS_PACKAGE_PATH
and source ~catkin_ws/devel/setup.bash
to my bashrc file. The problem is that when I run the launcher, I see the five nodes in the first list, but then I get the following error:
ERROR: cannot launch node of type [esercizio_4/exploration]: can't locate node [exploration] in package [esercizio_4]
So, two nodes work as they should, but the other three don't. Does anyone know how to fix this? I read many answers to this kind of question but I din't got any results. Thank you.
PS: I'm using ROS Kinetic.
The
type
of your exploration node should beturtle_exploration
instead ofexploration
. Look at yourCMakeLists.txt
where you define theturtle_exploration
executable.Ohw, was it so easy? It works now, thank you.