[indemind binocular inertial camera debugging] comando não pode ser encontrado após sudo, problema de variável de ambiente

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 sudoou sudo suaguardar 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, sudoos 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

suAmbos os comandos e su -podem ser usados ​​para alternar usuários, mas existem algumas diferenças entre eles.

suO 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.

Acho que você gosta

Origin blog.csdn.net/kanhao100/article/details/129963820
Recomendado
Clasificación