Skip to content

Getting Started

Robot misbehaving? Open the Kangaroo Doctor first

http://kangaroo-5c:8001 shows what is wrong with kangaroo-5c and walks you through the fix. Open it before you read logs, open the Web Commander or run ethercat slaves by hand. See Kangaroo Doctor.

1. Set Up Your Development Environment

Follow the Development Environment guide to set up VS Code Dev Containers backed by the lab's Docker images. This is the recommended way to get a working ROS environment on your machine.

You'll also need network access — either on the Hainer LAN or connected via WireGuard VPN. See Network Topology.

Connection & Network

SSH

ssh -X pal@kangaroo-5c   # main computer
ssh -X pal@kangaroo-5m   # motion computer

Web interfaces

URL Description
http://kangaroo-5c:8001 Kangaroo Doctor — open first when the robot misbehaves
http://kangaroo-5c:8080 Web Commander — GUI for controllers and motions
http://kangaroo-5c:3000 Grafana — monitoring & sensor plots
http://10.68.0.5 Router

ROS Master (from Docker container)

export ROS_MASTER_URI=http://kangaroo-5c:11311
export ROS_IP=$(hostname -I | awk '{print $1}')
source /catkin_ws/devel/setup.bash

/etc/hosts (add once)

127.0.0.1       localhost
127.0.1.1       Qtalos-MS-7C37
172.26.7.1      talos-7c
172.26.7.2      talos-7m
172.26.7.5      talos-router
172.24.5.1      kangaroo-5c
172.24.5.2      kangaroo-5m
172.24.5.5      kangaroo-router

2. Check the Robot State: Kangaroo Doctor

The Kangaroo Doctor at http://kangaroo-5c:8001 is the place to find out what is wrong with the robot and how to fix it. Use it:

  • Before you start working: check that the page is green (healthy). Keep the tab open, the tab icon turns red when a problem occurs.
  • Whenever something fails (a controller does not start, full_homing is rejected, a motor does not move, a command times out): look at the doctor first, before you read logs, open the Web Commander or run ethercat slaves.

When the page shows a problem, it tells you the next step and gives you a button for it. Do the steps in the standard recovery order (restart deployer → e-stop power cycle → restart ros_bringup). Only if this does not fix the problem, continue with Known Problems.


General Information

Restart deployer

pal@kangaroo-5c:~$ pal_restart_deployer
Restarts the PAL deployer — reloads all default controllers.

If the robot misbehaves, use the Restart deployer button in the Kangaroo Doctor instead. It also tells you what to do if the restart does not fix the problem.

Show active controllers

rosservice call /controller_manager/list_controllers

The Kangaroo Doctor also shows the controller list, and you can start, stop, load and unload controllers there. If this call hangs or times out, the deployer can be stopped with an error while all motors still look OK. The doctor detects this.


1. Position Controller (base state)

roslaunch kangaroo_controller_configuration default_controllers.launch
  • Starts only the position controllers
  • No force/torque control
  • Safe starting state for homing

If the controllers do not start or change_controllers times out, check the Kangaroo Doctor.


2. Homing

rosrun play_motion run_motion full_homing

Run in a separate terminal after default_controllers is running.

Moves the robot to the defined home position. Always execute before starting force/WBC controllers.

If full_homing is rejected or the robot does not move, open the Kangaroo Doctor. It detects the usual causes (e.g. joint_state_controller not running) and offers Full homing and Restart ros_bringup buttons. The command line equivalent is rosrun kangaroo_doctor kangaroo_doctor.py homing.


3. Gravity Compensation (closed-loop force control, legs)

roslaunch kangaroo_controller_configuration gravity_compensation_legs_controller.launch
  • Activates closed-loop force control for the leg joints
  • Uses analytic DOB (Disturbance Observer) for gravity compensation
  • Robot can be moved passively (compliant behavior)

4. Kinematic WBC (Whole-Body Controller)

roslaunch kangaroo_wbc kangaroo_wbc.launch
  • Whole-body controller at the kinematic level
  • Coordinates all joints for stable standing/movement

5. MPC Walking

roslaunch pal_lip_mpc_actions kangaroo_reactive_walk_kinematic_controller.launch

Always start when the robot is standing on the ground!

  • MPC (Model Predictive Control) for reactive walking
  • LIP (Linear Inverted Pendulum) model

Typical Startup Sequence

1. Open http://kangaroo-5c:8001 (Kangaroo Doctor) and check that it is green
2. SSH into kangaroo-5c
3. pal_restart_deployer  (if needed)
4. Start default_controllers
5. Run full_homing
6. Start MPC Walking (only when robot is on the ground)

If a step fails or the robot behaves unexpectedly: stop, open the Kangaroo Doctor and follow the next step it suggests.