ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Unable to remotely run node from launchfile with launch machine tag

asked 2021-04-26 04:04:40 -0500

Mackou gravatar image

updated 2021-04-26 06:11:37 -0500

Hello,

  • My remote machine is running Ubuntu 18.04 on a ARM64 architecture and ROS has been cross compiled and the node I want to run is included there.
    On the remote machine I run my node like this :

source /home/nvidia/crosscompiled/ros/install_isolated/setup.bash && rosrun sekonix_camera_ut sekonix_camera_ut_node

On the remote the env variables ROS_IP and ROS_MASTER_URI are set and I can get the images from the remote node on my local machine with no problem.

  • My local machine is running Ubuntu 18.04 on a AMD64 architecture. Ros has been installed with APT and I have one package in my workspace : platform.

The local's machine ssh key is installed on the remote and I can ssh without password into the remote.

I want to be able to run the node directly from the local machine. So I made this launchfile :

<launch>
  <machine name="remote_machine"
           address="192.168.100.200"
           user="user"
           env-loader="/home/nvidia/crosscompiled/ros/install_isolated/setup.sh"
  />
  <node pkg="sekonix_camera_ut" type="sekonix_camera_ut_node" name="sekonix_camera_ut" />
</launch>

But when run the launchfile I get this error :

ERROR: cannot launch node of type [sekonix_camera_ut/sekonix_camera_ut_node]: sekonix_camera_ut
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [124]=/home/maxandre/catkin_pkg/src/tf_shifter
ROS path [125]=/home/maxandre/catkin_pkg/src/platform
ROS path [132]=/opt/ros/melodic/share

Do you have any idea what could be the problem ? Thanks !

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-04-26 06:11:00 -0500

Mackou gravatar image

updated 2021-04-26 11:08:48 -0500

How I solved my problem :

  • I added the attribute machine to the node tag :

    <node machine="nvidia_drive" pkg="sekonix_camera_ut" type="sekonix_camera_ut_node" name="sekonix_camera_ut" />
    
  • I had set the to my remote in the hosts file (The hostname has to be the same as the remote's hostname):

    #/etc/hosts local
    192.168.100.200 tegra-ubuntu
    
  • I had tp update paramiko on the local :

    sudo pip install paramiko --upgrade
    
  • I had to set the ROS env variables on the host :

    export ROS_HOSTNAME=192.168.100.100
    export ROS_MASTER_URI=http://192.168.100.100:11311
    
  • I had to make sure that the ssh server on my remote offered Ciphers that is compatible with paramiko (It's not compatible with aes256-gcm@openssh.com) :

    #/etc/ssh/sshd_config remote
    Ciphers aes256-ctr
    

Works fine now !

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2021-04-26 04:04:40 -0500

Seen: 109 times

Last updated: Apr 26 '21