Skip to content

Dagobert's Network

Denise Ratasich edited this page Dec 21, 2016 · 3 revisions

Please do not change the basic networking settings (several students and employees use the rovers). However, you can propose and implement better solutions in consultation with Denise.

Connect to dagobert

dagobert runs Ubuntu with ROS and provides an access point when started. Denise manages the accounts and connection details (SSID, fixed IP, personal username and password) -> contact for account creation.

Connect to dagobert's SSID and ssh to the rover.

Setup ROS network between your notebook and dagobert

It is more convenient to run your developed nodes on your own notebook and just start the Pioneer driver on the rover (communicate with the rover directly via ROS). This way you don't have to develop on the rover directly, i.e., you don't need an internet connection, you don't have to copy/pull code, the rover remains "clean", etc.

For that to work you need to be able to ssh dagobert and ssh your-notebook vice versa.

  • Select a static IP for your notebook.
  • Add dagobert to your /etc/hosts file and add your-notebook to the /etc/hosts of the rover.
  • Add dagobert and your username to your ssh config, e.g. (you can choose a specific ssh-key-pair by setting IdentityFile .ssh/id_rsa):
Host your-notebook
    HostName your-notebook
    User your-username-on-your-notebook
  • Exchange ssh-keys such that you can ssh without password-prompt. Unfortunately, ROS connections can only be established with RSA keys (known_hosts error).
    • If you already connected to the rover, by default the ECDSA key is added to the known_hosts in ~/.ssh. You have to remove these keys with ssh-keygen -R "dagobert" or ssh-keygen -R "dagobert-ip-address".
    • Then copy your notebook's public key using rsa: ssh-copy-id -i /path/to/id_rsa.pub -oHostKeyAlgorithms='ssh-rsa' dagobert. You should be asked to verify the RSA fingerprint. If there occurs another warning you may have missed to delete a key in known_hosts. You may have to ssh first (with rsa) and then copy the id.
    • The public key of your notebook should now be in the .ssh/authorized_keys file of your account on dagobert.
    • Perform the same for dagobert vice versa, i.e., generate a rsa-key on dagobert (ssh-keygen -t rsa -b 4096 without password), call ssh-copy-id to your-notebook.

See also ROS on multiple machines and ROS network setup.

Test ROS network between your notebook and dagobert

The pioneer_teleop package in this repository includes a launch file to control the robot via your notebook (keyboard). It starts the p2os driver on the rover which controls the motors given velocity commands (ROS topic cmd_vel).

Clone the repository in your catkin workspace (typically, ~/catkin_ws/src/) and build it. Connect to the rover's WLAN and execute the launch file on your notebook (this will run the ROS master, teleoperation and additional nodes on your notebook and only the driver on the robot):

$ roslaunch pioneer_teleop drive.launch notebook:=your-notebook robot:=dagobert robot-distro:=hydro robot-port:=/dev/ttyS0