Ray Cast Example
The ray cast service calculates intersection points between a ray and various data sources on the robot. This example program shows how to use this API.
Understanding Spot Programming
For your best learning experience, please use the Quickstart Guide found in the SDK’s docs/python directory. That will help you get your Python programming environment set up properly.
Setup Dependencies
This example requires the bosdyn API and client to be installed, and must be run using python3. Using pip, these dependencies can be installed using:
python3 -m pip install -r requirements.txt
Run the Example
Below is example output from casting a ray starting in front of the robot (positive X) forward and down toward the ground.
>>> python3 cast_single_ray.py -o 0.5 0.0 0.0 -d 1.0 0.0 -1.0 ROBOT_IP
Raycasting from position: X: 0.500 Y: 0.000 Z: 0.000
Raycasting in direction: X: 1.000 Y: 0.000 Z: -1.000
Raycast returned 3 hits.
Hit 0:
Position: X: 1.014 Y: 0.000 Z: -0.514
Type: TYPE_VOXEL_MAP
Distance: 0.5136719346046448
Hit 1:
Position: X: 1.014 Y: 0.000 Z: -0.514
Type: TYPE_GROUND_PLANE
Distance: 0.5138996896169675
Hit 2:
Position: X: 1.016 Y: 0.000 Z: -0.516
Type: TYPE_TERRAIN_MAP
Distance: 0.5157292485237122
The above query is shown visually below. In this case, the ray (gray) intersects with the ground, indicated by the sphere (red).