Troubleshooting
Common issues and solutions for the autonomous navigation system.
LiDAR Issues
No Point Cloud Data
Symptoms:
/ouster/pointsor/livox/lidartopic not publishingEmpty point cloud visualizations
Solutions:
Check Network Connection
ping 169.254.16.143 # Ouster default IP ping 192.168.1.100 # Livox default IP
Verify Topic Publishing
Open
raisin_cliand connect to the robot (see Using raisin_cli for details):# In raisin_cli list # Check available servers and get server_id con <server_id> # Connect using server_id from list output list # List all available topics sub <topic> <time> # e.g., sub /ouster/points 10
Check IP Configuration
Ouster: Set
sensor_hostnameto correct IPLivox: Verify
lidar_configs.ipmatches sensor
Network Interface
Ensure computer IP is on same subnet as sensor
Check firewall allows UDP traffic
Point Cloud Distorted
Symptoms:
Twisted or warped point clouds
Points don’t align properly
Solutions:
Check LiDAR-IMU time synchronization
Verify extrinsic calibration (
extrinsic_T,extrinsic_R)Reduce robot motion during calibration
Check IMU data quality
FAST-LIO Issues
High Odometry Drift
Symptoms:
Robot position drifts over time
Map becomes inconsistent
Solutions:
Calibrate Extrinsics
mapping: extrinsic_est_en: true # Enable online calibration
Tune Noise Parameters
mapping: acc_cov: 0.1 # Increase if accelerometer noisy gyr_cov: 0.1 # Increase if gyroscope noisy
Check IMU Quality
Verify IMU is properly mounted
Check for vibrations or interference
SLAM Fails to Initialize
Symptoms:
No odometry output
/Odometry/basetopic not publishing
Solutions:
Verify Input Topics
Open
raisin_cliand check topic rates (see Using raisin_cli for connection details):# In raisin_cli list # Check available servers and get server_id con <server_id> # Connect using server_id from list output sub <topic> <time> # e.g., sub /ouster/points 10
Check Configuration
Ensure
lid_topicandimu_topicmatch actual topicsVerify
lidar_typematches sensor (1=Livox, 2=Velodyne, 3=Ouster)
Sufficient Motion
FAST-LIO needs initial motion to calibrate
Move robot slightly to trigger initialization
Autonomy Issues
Robot Doesn’t Move to Waypoint
Symptoms:
Waypoints set but robot stationary
No path published
Solutions:
Check Autonomy Mode
autonomyMode: true
Verify Odometry
Open
raisin_cliand check odometry (see Using raisin_cli for connection details):# In raisin_cli list # Check available servers and get server_id con <server_id> # Connect using server_id from list output sub <topic> <time> # e.g., sub /Odometry/base 10
Check Waypoint Service
Ensure waypoints were sent successfully
Verify waypoint coordinates are valid
Robot Avoids Valid Paths
Symptoms:
Robot stops unnecessarily
Valid terrain marked as obstacle
Solutions:
Adjust Height Thresholds
localPlanner: heightGapThre: 0.3 # Increase for rougher terrain obstacleHeightThre: 0.25
Tune Terrain Analysis
terrainAnalysis: minRelZ: -2.0 # Allow lower terrain maxRelZ: 1.0 # Allow higher terrain
Robot Moves Too Slow
Solutions:
Increase Speed Limits
maxSpeed: 4.0 autonomySpeed: 2.0
Adjust Slowdown Distance
pathFollower: slowDwnDisThre: 1.0 # Reduce to slow later
Map Window Issues
Map Tiles Not Loading
Symptoms:
Blank map background
Tiles fail to load
Solutions:
Check internet connectivity
Verify tile server URL is accessible
Clear tile cache and restart
Robot Position Not Updating
Symptoms:
Robot icon doesn’t move on map
Position stuck at origin
Solutions:
Verify odometry is publishing
Check coordinate frame settings (local vs GPS)
Ensure Map Window is subscribed to correct topics
General Tips
Using raisin_cli
raisin_cli is the command-line tool for monitoring and debugging the RAISIN system.
Connecting to Robot:
Open
raisin_cliin terminalUse
listto see available servers and their IDsConnect using the
server_id
# In raisin_cli
list # Shows available servers
Example output:
Server on IP ID Device Type Port
--------------------------------------------------------------------------------
Server 192.168.10.21 railab_raibo-2781268307830 raibo2%ouster32 d455_front 40121
Connect using the server_id:
con <server_id> # Connect using server_id from list
Note
The server_id (e.g., railab_raibo-2781268307830) is assigned dynamically and may change between sessions.
Always run list first to check the current server_id before connecting.
Common Commands (after connecting):
list # List all available topics
sub <topic_name> time # Subscribe to topic and show timing info
sub <topic_name> # Subscribe to topic and show data
Checking System Health
Use raisin_cli to verify system health:
# In raisin_cli
list # Check available servers and get server_id
con <server_id> # Connect using server_id from list output
list # List all available topics
sub <topic> <time> # e.g., sub /Odometry/base 10
Monitor System Load:
Check CPU usage isn’t maxed
Verify sufficient memory available
Logging
Enable detailed logging for debugging:
runtime_pos_log_enable: true
Check logs for error messages and warnings.
Getting Help
If issues persist:
Collect relevant log files
Note exact error messages
Document configuration files used
Record topic publication rates