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_homingis rejected, a motor does not move, a command times out): look at the doctor first, before you read logs, open the Web Commander or runethercat 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
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_controllersis 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.