Questão 1
Reportar erro
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
resolver
source /home/kanhao100/IMSEE-SDK/ros/devel/setup.zsh
Questão 2
Reportar erro
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
analise de problemas
Este problema é causado pela falta de privilégios de root. O SDK da câmera indemind precisa de privilégios de root para rodar (muito sem palavras), então você precisa adicionar sudo
ou sudo su
aguardar o comando
Questão 3
Reportar erro
O comando não existe após a execução com privilégios de root
kanhao100@ubuntu-x86 ~ % sudo roslaunch imsee_ros_wrapper start.launch
[sudo] kanhao100 的密码:
sudo: roslaunch:找不到命令
analise de problemas
Esse problema é causado por problemas com variáveis de ambiente. Em geral, sudo
os comandos usam as variáveis de ambiente do usuário raiz, não as variáveis de ambiente do usuário atual. Esse problema ocorre se a variável de ambiente do usuário atual já contiver o caminho necessário, mas a variável de ambiente do usuário raiz não.
O exemplo ilustra a diferença entre o ambiente raiz e o ambiente normal do usuário:
kanhao100@ubuntu-x86 ~ % cmake -version
cmake version 3.17.0
kanhao100@ubuntu-x86 ~ % sudo cmake -version
cmake version 3.10.2
correr:
sudo -E roslaunch <package> <launch_file>
Este comando usará as variáveis de ambiente do usuário atual para executar o comando roslaunch, resolvendo assim o problema que o comando não pode ser encontrado.
Se ainda avisar que o comando não pode ser encontrado
Os caminhos podem ser adicionados editando o arquivo de configuração do sudo. Abra um terminal e digite o seguinte comando:
sudo visudo
Isso abre o arquivo de configuração sudo. Adicione as seguintes linhas no final do arquivo:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/ros/melodic/bin"
Onde /opt/ros/melodic/bin é o caminho onde o roslaunch está localizado. Salve e saia do arquivo e tente executar o comando novamente.
Se você não conhece o caminho onde o comando está localizado, pode usar o seguinte comando para encontrá-lo:
which roslaunch
Isso mostrará o caminho onde o comando está localizado.
Questão 4
Reportar erro
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
analise de problemas
Especula-se que ainda seja um problema de variáveis de ambiente. Embora roslaunch tenha sido adicionado ao caminho confiável na questão 3 anterior, ele ainda precisa de variáveis de ambiente relacionadas ao interpretador Python durante a execução. Essas variáveis de ambiente também podem ter mudado.
Solução final:
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
Ambos os comandos e su -
podem ser usados para alternar usuários, mas existem algumas diferenças entre eles.
su
O comando é para alternar usuários, mas não alterna totalmente para as variáveis de ambiente do novo usuário. Ou seja, ele preserva as variáveis de ambiente do usuário atual em vez de usar as variáveis de ambiente do novo usuário. Isso pode causar problemas, como um erro de comando não encontrado ao usar o comando de um novo usuário.
su -
O comando também é usado para alternar usuários, mas alterna completamente para as variáveis de ambiente do novo usuário. Ou seja, ele usa as variáveis de ambiente do novo usuário em vez de preservar as variáveis de ambiente do usuário atual. Isso evita problemas com comandos não encontrados e garante que as variáveis de ambiente corretas sejam usadas para executar o comando.