roslaunch失败:无法启动节点

时间:2015-05-06 06:30:10

标签: beagleboneblack ros

我已经从here下载并编译了一些Ros个节点(只是为了获得更多信息)。我正尝试使用从该回购中获取的ROS file启动带有参数的五个launch节点。

执行source catkin_ws/devel_isolated/setup.bash并执行roslaunch crab.launch(上面链接中的启动文件)后,会出现下一个错误:

root@beaglebone:~# roslaunch crab.launch 
... logging to /root/.ros/log/4f6332fe-dbe2-11e3-86a8-7ec70b079d59/roslaunch-beaglebone-2067.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://beaglebone:58881/

SUMMARY
========

PARAMETERS
 * /clearance
 * /duration_ripple
 * /duration_tripod
 * /joint_lower_limit
 * /joint_upper_limit
 * /port_name
 * /robot_description
 * /rosdistro
 * /rosversion
 * /trapezoid_h
 * /trapezoid_high_radius
 * /trapezoid_low_radius

NODES
  /
    crab_body_kinematics (crab_body_kinematics/body_kinematics)
    crab_gait (crab_gait/gait_kinematics)
    crab_imu (crab_imu/imu_control)
    crab_leg_kinematics (crab_leg_kinematics/leg_ik_service)
    crab_maestro_controller (crab_maestro_controller/controller_sub)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
ERROR: cannot launch node of type [crab_leg_kinematics/leg_ik_service]: can't locate node [leg_ik_service] in package [crab_leg_kinematics]
ERROR: cannot launch node of type [crab_maestro_controller/controller_sub]: can't locate node [controller_sub] in package [crab_maestro_controller]
ERROR: cannot launch node of type [crab_body_kinematics/body_kinematics]: can't locate node [body_kinematics] in package [crab_body_kinematics]
ERROR: cannot launch node of type [crab_gait/gait_kinematics]: can't locate node [gait_kinematics] in package [crab_gait]
ERROR: cannot launch node of type [crab_imu/imu_control]: can't locate node [imu_control] in package [crab_imu]

我已根据其他类似问题的威胁建议重新安装软件包。

我也注意到了

1º-如果我将所有executables个节点移动到文件夹src/<package>/,我就可以执行roslaunch crab.launch。但我不想这样离开,不是正确的工作方式;)

其他信息:

2º-如果我执行,例如,source devel_isolated/<package>/setup.bash然后roslaunch crab.launch,我刚刚source - d的包工作并执行...(而另一个仍然没有“T)

3º-所以我source - d source devel_isolated/<package>/setup.bash再次尝试:这次没有人工作。

这导致认为问题是由ROS变量环境引起的:如果我在2º之后创建export | grep ROS,我可以看到包路径出现在$ROS_PATH - s中而其他的不是有:

root@beaglebone:~# export | grep ROS
declare -x ROS_DISTRO="hydro"
declare -x ROS_ETC_DIR="/opt/ros/hydro/etc/ros"
declare -x ROS_MASTER_URI="http://localhost:11311"
declare -x ROS_PACKAGE_PATH="/root/catkin_ws/src/crab_msgs:/root/catkin_ws/src/joy:/root/catkin_ws
/src/ps3joy:/root/catkin_ws/src/xacro:/root/catkin_ws/src/roslint:/root/catkin_ws/src/kdl_parser:/root/catkin_ws
/src/urdf:/root/catkin_ws/src/urdf_parser_plugin:/root/catkin_ws/src:/opt/ros/hydro/share:/opt/ros/hydro
/stacks:/root/ros_catkin_ws/install_isolated/share:/root/ros_catkin_ws/install_isolated/stacks"
declare -x ROS_ROOT="/opt/ros/hydro/share/ros"
declare -x ROS_TEST_RESULTS_DIR="/root/catkin_ws/build_isolated/crab_msgs/test_results"

root@beaglebone:~# source catkin_ws/devel_isolated/crab_imu/setup.bash
declare -x ROS_PACKAGE_PATH="/root/catkin_ws/src/crab_imu:/root/catkin_ws/src/crab_msgs:/root/catkin_ws
/src/joy:/root/catkin_ws/src/ps3joy:/root/catkin_ws/src/xacro:/root/catkin_ws/src/roslint:/root/catkin_ws       
/src/kdl_parser:/root/catkin_ws/src/urdf:/root/catkin_ws/src/urdf_parser_plugin:/root/catkin_ws/src:/opt   
/ros/hydro/share:/opt/ros/hydro/stacks:/root/ros_catkin_ws/install_isolated/share:/root/ros_catkin_ws
/install_isolated/stacks"
declare -x ROS_TEST_RESULTS_DIR="/root/catkin_ws/build_isolated/crab_imu/test_results"

似乎3º会覆盖之前执行的source ...,这意味着ROS_PACKAGE_PATH中的ROS_PACKAGE_PATH并未显示所有包装内容。

我也尝试使用export命令强制valueOf,但它不起作用。所以,我必须改变更多的环境变量,但不知道哪一个......

所以,我不知道我的诊断是否正确,如果是的话,我该怎么做才能纠正这个...希望我收集到足够的信息。

提前致谢!!

伊尼戈

1 个答案:

答案 0 :(得分:0)

设置文件的可执行位。您最有可能需要设置文件的可执行权限。

chmod +x filename.