Recovery Procedures
This guide provides step-by-step recovery procedures for various system failures in the RCR Common Robotics Platform.
Emergency Recovery
Immediate Actions
Emergency Stop
Press physical emergency stop button
Turn off main power switch
Assess the situation safely
Safety Check
Ensure robot is in safe location
Check for any damage
Verify no immediate hazards
Documentation
Note what happened
Record error messages
Document system state
System Recovery Procedures
1. Complete System Restart
Procedure:
Power off robot completely
Wait 10 seconds
Power on robot
Launch system
Verify all components
Commands:
# Power off
sudo shutdown -h now
# Power on and launch
ros2 launch common_platform launch_robot.launch.py
2. Software Recovery
Restart ROS2 Nodes:
# Kill all ROS2 nodes
ros2 daemon stop
ros2 daemon start
# Restart launch file
ros2 launch common_platform launch_robot.launch.py
Reset Configuration:
# Reset to default configuration
cp config/default/* config/
# Restart system
ros2 launch common_platform launch_robot.launch.py
3. Hardware Recovery
Check Connections:
Power off robot
Check all cable connections
Verify power connections
Test sensor connections
Power on and test
Reset Hardware:
# Reset USB devices
sudo modprobe -r usb_storage
sudo modprobe usb_storage
# Reset I2C bus
sudo modprobe -r i2c_dev
sudo modprobe i2c_dev
Component-Specific Recovery
Power System Recovery
Battery Issues:
Check battery voltage
Verify charging system
Test under load
Replace if necessary
Power Supply Issues:
Check power connections
Verify voltage levels
Test power distribution
Replace faulty components
Motor System Recovery
Motor Driver Recovery:
Check driver connections
Verify power supply
Test driver functionality
Replace if necessary
Encoder Recovery:
Check encoder wiring
Verify encoder counts
Test encoder resolution
Replace if necessary
Sensor Recovery
LiDAR Recovery:
Check USB connection
Verify power supply
Test serial communication
Restart LiDAR node
Camera Recovery:
Check USB connection
Verify power supply
Test video device
Restart camera node
IMU Recovery:
Check I2C connection
Verify power supply
Test I2C communication
Restart IMU node
Data Recovery
Log Recovery
System Logs:
# Check system logs
journalctl -u ros2
journalctl -u robot
# Save important logs
journalctl -u ros2 > /tmp/ros2_recovery.log
ROS2 Logs:
# Check ROS2 logs
ros2 log list
ros2 log show
# Save ROS2 logs
ros2 log save /tmp/ros2_logs
Configuration Recovery
Backup Configuration:
# Backup current configuration
cp -r config/ config_backup_$(date +%Y%m%d_%H%M%S)/
# Restore from backup
cp -r config_backup_YYYYMMDD_HHMMSS/* config/
Reset to Defaults:
# Reset configuration
git checkout config/
Network Recovery
Communication Recovery
USB Recovery:
# Reset USB subsystem
sudo modprobe -r usb_storage
sudo modprobe usb_storage
# Check USB devices
lsusb
Serial Recovery:
# Check serial devices
ls /dev/tty*
# Reset serial ports
sudo chmod 666 /dev/ttyUSB0
Network Recovery:
# Restart network
sudo systemctl restart networking
# Check network status
ip addr show
Performance Recovery
System Performance
Resource Recovery:
# Check system resources
htop
df -h
free -h
# Clean up if needed
sudo apt autoremove
sudo apt autoclean
Process Recovery:
# Kill problematic processes
sudo pkill -f ros2
sudo pkill -f robot
# Restart system
ros2 launch common_platform launch_robot.launch.py
Memory Recovery
Memory Issues:
# Check memory usage
free -h
# Clear memory cache
sudo sync
sudo echo 3 > /proc/sys/vm/drop_caches
Recovery Verification
System Verification
Component Check:
# Check all nodes
ros2 node list
# Check all topics
ros2 topic list
# Check all services
ros2 service list
Functionality Test:
# Test sensors
ros2 topic echo /${ROS_NAME}/scan
ros2 topic echo /${ROS_NAME}/camera/image_raw
ros2 topic echo /${ROS_NAME}/imu/data
# Test motors
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{}"
Performance Verification
System Performance:
# Check system load
uptime
htop
# Check disk usage
df -h
# Check network
ping google.com
Prevention
Regular Maintenance
Daily Checks:
Visual inspection
Check connections
Verify data quality
Weekly Checks:
System performance
Log analysis
Configuration backup
Monthly Checks:
Full system test
Component inspection
Performance review
Monitoring
System Monitoring:
Monitor system resources
Check for errors
Track performance
Health Checks:
Implement health checks
Monitor sensor data
Track system status
Recovery Documentation
Recovery Log
Document Recovery:
Date and time
What failed
Recovery steps taken
Results
Lessons learned
Update Procedures:
Update recovery procedures
Document new issues
Improve recovery process
For common issues, see Common Issues For error codes, see Error Codes For troubleshooting, see Troubleshooting