This repository provides client nodes for requesting data from or sending data to a running Radix server (see radix_ros2_pkg) via the defined services of radix_msgs_ros2_pkg.
See radix_examples for more detailed examples of how to use the client nodes, including setting corresponding parameters.
BirdsEyeViewClient: birds_eye_view_client.pyChunkClientBasic: chunk_client_basic.pyChunkClientGaussian: chunk_client_gaussian.pyChunkClientSemantic: chunk_client_semantic.pyConfigClient: config_client.pyPublishClient: publish_client.pyRayHitClient: ray_hit_client.pyRenderClient: render_client.py
Clone repo(s) and install radix_clients using uv
git clone https://github.com/ProjectVERUM/ros2_numpy.git # requirement: ros2_numpy
git clone https://github.com/ProjectVERUM/radix_clients.git
cd radix_clients
sudo uv pip install . --system# BEV render
from radix_clients import BirdsEyeViewClient
images: dict[str, np.ndarray] = BirdsEyeViewClient.get_render(params)
# images consists of keys "semantic", "semantic_prob", "depth", "depth_prob"from radix_clients import ChunkClientSemantic
# from radix_clients import ChunkClientBasic
# from radix_clients import ChunkClientGaussian
chunk: dict[str, np.ndarray] = ChunkClientSemantic.get_chunk(params)from radix_clients import ConfigClient
config_parameters: dict = client.send_request()from radix_clients import PublishClient
ack_received = PublishClient.publish(
points=points,
labels=labels,
pc_topic="/semantic_cloud", # must be equal to cloud_in_topic of Radix server
frame_id_header="map", # must be equal to world_frame_id of Radix server
)from radix_clients import ConfigClient
config_parameters: dict = client.send_request()# render
from radix_clients import RayHitClient
hit_xyz: ndarray | None = client.send_request(params)Before commit, run
ruff check . --fix