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: TheROS_DOMAIN_IDbeing 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.