问题1
报错
kanhao100@ubuntu-x86 ~ % roslaunch imsee_ros_wrapper start.launch
RLException: [start.launch] is neither a launch file in package [imsee_ros_wrapper] nor is [imsee_ros_wrapper] a launch file name
The traceback for the exception was written to the log file
解决
source /home/kanhao100/IMSEE-SDK/ros/devel/setup.zsh
问题2
报错
kanhao100@ubuntu-x86 ~ % roslaunch imsee_ros_wrapper start.launch
... logging to /home/kanhao100/.ros/log/f3bd5ef2-d2f4-11ed-ba51-f09e4ab0090f/roslaunch-ubuntu-x86-8178.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://ubuntu-x86:36885/
SUMMARY
========
PARAMETERS
* /imsee/imsee_wrapper_node/enable_depth: False
* /imsee/imsee_wrapper_node/enable_detector: False
* /imsee/imsee_wrapper_node/enable_disparity: False
* /imsee/imsee_wrapper_node/enable_point: False
* /imsee/imsee_wrapper_node/enable_rectified: False
* /imsee/imsee_wrapper_node/framerate: 50
* /imsee/imsee_wrapper_node/imu_frequency: 100
* /imsee/imsee_wrapper_node/resolution_index: 1
* /rosdistro: melodic
* /rosversion: 1.14.13
NODES
/imsee/
imsee_wrapper_node (imsee_ros_wrapper/imsee_wrapper_node)
ROS_MASTER_URI=http://localhost:11311
process[imsee/imsee_wrapper_node-1]: started with pid [8193]
[ INFO] [1680618804.215470243]: Initializing nodelet with 8 worker threads.
Module Parameters Load Fail!
[imsee/imsee_wrapper_node-1] process has died [pid 8193, exit code -11, cmd /home/kanhao100/IMSEE-SDK/ros/devel/lib/imsee_ros_wrapper/imsee_wrapper_node __name:=imsee_wrapper_node __log:=/home/kanhao100/.ros/log/f3bd5ef2-d2f4-11ed-ba51-f09e4ab0090f/imsee-imsee_wrapper_node-1.log].
log file: /home/kanhao100/.ros/log/f3bd5ef2-d2f4-11ed-ba51-f09e4ab0090f/imsee-imsee_wrapper_node-1*.log
[imsee/imsee_wrapper_node-1] restarting process
process[imsee/imsee_wrapper_node-1]: started with pid [8222]
[ INFO] [1680618814.521321294]: Initializing nodelet with 8 worker threads.
Module Parameters Load Fail!
[imsee/imsee_wrapper_node-1] process has died [pid 8222, exit code -11, cmd /home/kanhao100/IMSEE-SDK/ros/devel/lib/imsee_ros_wrapper/imsee_wrapper_node __name:=imsee_wrapper_node __log:=/home/kanhao100/.ros/log/f3bd5ef2-d2f4-11ed-ba51-f09e4ab0090f/imsee-imsee_wrapper_node-1.log].
log file: /home/kanhao100/.ros/log/f3bd5ef2-d2f4-11ed-ba51-f09e4ab0090f/imsee-imsee_wrapper_node-1*.log
问题分析
该问题是由于没有root权限导致的,indemind相机这个SDK需要root权限才能运行(就很无语),因此需要加上sudo
,或者sudo su
等命令
问题3
报错
使用root权限运行后出现命令不存在
kanhao100@ubuntu-x86 ~ % sudo roslaunch imsee_ros_wrapper start.launch
[sudo] kanhao100 的密码:
sudo: roslaunch:找不到命令
问题分析
这个问题是由于环境变量的问题导致的。一般来说,sudo
命令会使用root用户的环境变量,而不是当前用户的环境变量。如果当前用户的环境变量中已经包含了需要的路径,但是root用户的环境变量中没有包含,就会出现这个问题。
实例说明root环境和普通用户环境的区别:
kanhao100@ubuntu-x86 ~ % cmake -version
cmake version 3.17.0
kanhao100@ubuntu-x86 ~ % sudo cmake -version
cmake version 3.10.2
运行:
sudo -E roslaunch <package> <launch_file>
这个命令会使用当前用户的环境变量来运行roslaunch命令,从而解决了找不到命令的问题。
如果还是提示找不到命令
可以通过编辑sudo的配置文件来添加路径。打开终端并输入以下命令:
sudo visudo
这会打开sudo配置文件。在文件末尾添加以下行:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/ros/melodic/bin"
其中/opt/ros/melodic/bin为roslaunch所在的路径。保存并退出文件,然后尝试再次运行命令。
如果你不知道命令所在的路径,可以使用以下命令来查找:
which roslaunch
这会显示命令所在的路径。
问题4
报错
kanhao100@ubuntu-x86 ~ % sudo -E roslaunch imsee_ros_wrapper start.launch
Traceback (most recent call last):
File "/opt/ros/melodic/bin/roslaunch", line 34, in <module>
import roslaunch
ImportError: No module named roslaunch
问题分析
推测还是环境变量的问题,在前面问题3中虽然将roslaunch加入了可信赖路径,但是其在执行的过程中还是需要Python解释器相关的环境变量,这些环境变量可能也发生了变化。
最后解决方案:
kanhao100@ubuntu-x86 ~ % sudo su -
root@ubuntu-x86:~# source /home/kanhao100/IMSEE-SDK/ros/devel/setup.bash
root@ubuntu-x86:~# roslaunch imsee_ros_wrapper start.launch
su
和su -
命令都可以用于切换用户,但它们之间有一些区别。
su
命令是用于切换用户的,但是它不会完全切换到新用户的环境变量。也就是说,它会将当前用户的环境变量保留下来,而不是使用新用户的环境变量。这可能会导致一些问题,例如在使用新用户的命令时,可能会出现找不到命令的错误。
su -
命令也用于切换用户,但是它会完全切换到新用户的环境变量。也就是说,它会使用新用户的环境变量,而不是保留当前用户的环境变量。这样可以避免找不到命令的问题,并确保使用正确的环境变量来运行命令。