SSH Connection to the Robot#

SSH (Secure Shell) is a network protocol that allows you to open a remote terminal session on the robot over an encrypted connection. It gives you direct access to the robot’s file system and lets you execute commands as if you were sitting at a local terminal — without needing a monitor or keyboard attached to the robot.

The robot can be reached either by its IP address or its hostname, depending on how your machine is connected to it.

Connecting to the Robot#

The default SSH user is pal and the password.

Via Ethernet Cable#

When your machine is connected directly to the robot with an Ethernet cable, the robot is reachable at the fixed IP address 10.68.0.1:

ssh pal@10.68.0.1

Via the Robot’s Access Point#

When your machine is connected to the Wi-Fi access point broadcast by the robot, the robot is also reachable at 10.68.0.1:

ssh pal@10.68.0.1

Via Hostname#

If the hostname of the robot is configured on your development machine (see Configure the Hostname below), you can connect using the robot’s hostname directly. For Kangaroo the hostname follows the pattern kangaroo-<id>, for example:

ssh pal@kangaroo-3c

Tip

Using the hostname is more convenient than the IP address — it keeps working even if the network configuration changes, and it makes your commands easier to read and share.

Configure the Hostname#

To avoid typing the IP address every time, add the robot’s hostname to the /etc/hosts file on your development machine. Open the file with a text editor (requires sudo):

sudo nano /etc/hosts

Add the following line, replacing the hostname with your robot’s actual hostname:

10.68.0.1   kangaroo-3c

Save the file. From this point on you can SSH into the robot using the hostname:

ssh pal@kangaroo-3c

Note

The /etc/hosts file maps hostnames to IP addresses locally on your machine. This change only affects your own machine — it does not modify anything on the robot.

Connecting via ROS 2#

SSH gives you a terminal on the robot itself, but you will often want to interact with the robot’s ROS 2 graph directly from your development machine instead, for example to run ros2 topic echo or open RViz locally. The pal connection command, provided by the pal_connection_cli package, sets up a ROS 2 session for this without relying on multicast discovery, so it works over almost any network topology reachable via SSH above (Ethernet cable, access point or LAN). The only requirement is that your machine and the robot have mutual IP visibility.

pal connection start#

Running pal connection start opens a new bash session configured with the Cyclone DDS settings needed to talk to the robot’s ROS 2 graph over a chosen network interface.

Arguments:

  • robot_address: The IP address or the DNS-solvable hostname of the robot.

  • network_interface: Network interface to use for the connection.

  • ros_domain_id: The ROS_DOMAIN_ID being used by the robot.

Usage:

pal connection start [robot_address] [network_interface] [ros_domain_id]

Examples of usage:

pal connection start
pal connection start kangaroo-3c
pal connection start 10.68.0.1 eth0 10

Tip

All three arguments are optional. If any of them is missing, the CLI asks for it interactively. Also it can automatically select the fastest available network interface and will warn you if it cannot detect the requested ROS_DOMAIN_ID on the robot.

Note

The connection only affects the new bash session that is opened, it does not change the ROS 2 configuration of your regular shell. Exiting that session (e.g. with exit or Ctrl+D) ends the connection.

See Also#