Skip to content

Commit cc97875

Browse files
fix: changed NeuraCore to Neuracore
1 parent 38d1ebe commit cc97875

File tree

6 files changed

+42
-42
lines changed

6 files changed

+42
-42
lines changed

README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# AgileX Piper Robot Teleoperation with NeuraCore
1+
# AgileX Piper Robot Teleoperation with Neuracore
22

33
This project is a complete example showcasing how to use Neuracore with the AgileX Piper robot. The project provides examples teleoperating the AgileX Piper robot using a Meta Quest controller, collecting demonstration data with [Neuracore](https://neuracore.com/), deploying trained policies, and an easy interface to tune most of the associated parameters.
44

@@ -88,13 +88,13 @@ python examples/1_tune_teleop_params.py [--ip-address <quest-ip>]
8888

8989
**Script**: `examples/2_collect_teleop_data_with_neuracore.py`
9090

91-
Now that you have a well-tuned setup, you can use this script to record teleoperation demonstrations to NeuraCore.
91+
Now that you have a well-tuned setup, you can use this script to record teleoperation demonstrations to Neuracore.
9292

9393
```bash
9494
python examples/2_collect_teleop_data_with_neuracore.py [--ip-address <quest-ip>] [--dataset-name <name>]
9595
```
9696

97-
**Note**: You must be logged into NeuraCore.
97+
**Note**: You must be logged into Neuracore.
9898

9999
**Arguments**:
100100
- `--ip-address`: IP address of Meta Quest device (optional). Only needed when using WiFi connection. If not provided, defaults to auto-discovery via USB.
@@ -104,25 +104,25 @@ python examples/2_collect_teleop_data_with_neuracore.py [--ip-address <quest-ip>
104104
- Same as script 1, plus:
105105
- **Right Joystick Press**: Start/stop data recording
106106

107-
### 3. Replay NeuraCore Episodes
107+
### 3. Replay Neuracore Episodes
108108

109109
**Script**: `examples/3_replay_neuracore_episodes.py`
110110

111-
Replay recorded episodes from a NeuraCore dataset on the physical robot.
111+
Replay recorded episodes from a Neuracore dataset on the physical robot.
112112

113113
```bash
114114
python examples/3_replay_neuracore_episodes.py --dataset-name <dataset-name> [--frequency <hz>] [--episode-index <index>]
115115
```
116116

117117
**Arguments**:
118-
- `--dataset-name`: Name of the NeuraCore dataset to replay
118+
- `--dataset-name`: Name of the Neuracore dataset to replay
119119
- `--frequency`: Playback frequency in Hz (default: 0). 0 plays the data aperiodically (not synchronized at a certain frequency as it was recorded).
120120
- `--episode-index`: Which episode to replay (default: 0). -1 will start replaying all the episodes one after the other.
121121

122122
**NOTE:** please be careful that the robot **will start moving** on the same trajectory that was recorded. Pressing `ctrl+C`
123123
will gracefully disable the robot and it will cut power to the motors after 5 seconds.
124124

125-
### 4. Rollout NeuraCore Policy (Full GUI)
125+
### 4. Rollout Neuracore Policy (Full GUI)
126126

127127
**Script**: `examples/4_rollout_neuracore_policy.py`
128128

@@ -147,12 +147,12 @@ python examples/4_rollout_neuracore_policy.py --model-path <path-to-model> [--ip
147147
```
148148

149149
**Arguments**:
150-
- `--train-run-name`: Name of the NeuraCore training run (fetches model from NeuraCore)
150+
- `--train-run-name`: Name of the Neuracore training run (fetches model from Neuracore)
151151
- `--model-path`: Local path to model file (alternative to train-run-name)
152152
- `--ip-address`: IP address of Meta Quest device (optional). Only needed when using WiFi connection. If not provided, defaults to auto-discovery via USB.
153153

154154

155-
### 5. Rollout NeuraCore Policy (Minimal)
155+
### 5. Rollout Neuracore Policy (Minimal)
156156

157157
**Script**: `examples/5_rollout_neuracore_policy_minimal.py`
158158

@@ -169,7 +169,7 @@ python examples/5_rollout_neuracore_policy_minimal.py --model-path <path-to-mode
169169
```
170170

171171
**Arguments**:
172-
- `--train-run-name`: Name of the NeuraCore training run (fetches model from NeuraCore)
172+
- `--train-run-name`: Name of the Neuracore training run (fetches model from Neuracore)
173173
- `--model-path`: Local path to model file (alternative to train-run-name)
174174

175175
### 6. Visualize Policy from Dataset
@@ -189,8 +189,8 @@ python examples/6_visualize_policy_from_dataset.py --dataset-name <dataset-name>
189189
```
190190

191191
**Arguments**:
192-
- `--dataset-name`: Name of the NeuraCore dataset to visualize
193-
- `--train-run-name`: Name of the NeuraCore training run (fetches model from NeuraCore)
192+
- `--dataset-name`: Name of the Neuracore dataset to visualize
193+
- `--train-run-name`: Name of the Neuracore training run (fetches model from Neuracore)
194194
- `--model-path`: Local path to model file (alternative to train-run-name)
195195

196196
## Configuration
@@ -248,10 +248,10 @@ example_agilex/
248248
- Check robot power and CAN bus connection
249249
- Ensure robot is in the correct mode for control
250250

251-
### NeuraCore Connection Issues
251+
### Neuracore Connection Issues
252252

253253
- Verify you're logged in: `neuracore login`
254-
- Check network connectivity to NeuraCore servers
254+
- Check network connectivity to Neuracore servers
255255
- Verify dataset/run names are correct
256256

257257
## Safety Notes

examples/2_collect_teleop_data_with_neuracore.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/usr/bin/env python3
2-
"""Piper Robot Teleoperation with Meta Quest Controller and NeuraCore data collection.
2+
"""Piper Robot Teleoperation with Meta Quest Controller and Neuracore data collection.
33
44
This demo uses Pink IK control with Meta Quest controller input to control the Piper robot and
5-
logs data to NeuraCore.
5+
logs data to Neuracore.
66
"""
77

88

@@ -64,13 +64,13 @@
6464

6565

6666
def neuracore_logging_worker(queue: Queue, worker_id: int) -> None:
67-
"""Worker process that logs data to NeuraCore from the queue.
67+
"""Worker process that logs data to Neuracore from the queue.
6868
6969
Args:
7070
queue: Multiprocessing queue containing logging tasks
7171
worker_id: Worker process identifier
7272
"""
73-
# Initialize NeuraCore connection in this worker process
73+
# Initialize Neuracore connection in this worker process
7474
try:
7575
nc.login()
7676
nc.connect_robot(
@@ -80,7 +80,7 @@ def neuracore_logging_worker(queue: Queue, worker_id: int) -> None:
8080
overwrite=False,
8181
)
8282
except Exception as e:
83-
print(f"\n⚠️ Worker {worker_id} failed to login to NeuraCore: {e}")
83+
print(f"\n⚠️ Worker {worker_id} failed to login to Neuracore: {e}")
8484
return
8585

8686
print(f"\n👷 Logging worker process {worker_id} started")
@@ -101,7 +101,7 @@ def neuracore_logging_worker(queue: Queue, worker_id: int) -> None:
101101
# Unpack task: (function_name, args_tuple, timestamp)
102102
function_name, data_value, timestamp = task
103103

104-
# Call appropriate NeuraCore logging function
104+
# Call appropriate Neuracore logging function
105105
try:
106106
if function_name == "log_joint_positions":
107107
data_value = np.radians(data_value)
@@ -132,7 +132,7 @@ def neuracore_logging_worker(queue: Queue, worker_id: int) -> None:
132132
else:
133133
print(f"\n⚠️ Unknown logging function: {function_name}")
134134
except Exception as e:
135-
print(f"\n⚠️ Failed to log {function_name} to NeuraCore: {e}")
135+
print(f"\n⚠️ Failed to log {function_name} to Neuracore: {e}")
136136

137137
# Sleep to maintain loop rate
138138
elapsed = time.time() - start_time
@@ -247,7 +247,7 @@ def on_button_rj_pressed() -> None:
247247
multiprocessing.set_start_method("spawn")
248248

249249
parser = argparse.ArgumentParser(
250-
description="Piper Robot Teleoperation with NeuraCore Data Collection - REAL ROBOT CONTROL"
250+
description="Piper Robot Teleoperation with Neuracore Data Collection - REAL ROBOT CONTROL"
251251
)
252252
parser.add_argument(
253253
"--ip-address",
@@ -273,8 +273,8 @@ def on_button_rj_pressed() -> None:
273273
print(f" 📸 Camera Frame: {CAMERA_FRAME_STREAMING_RATE} Hz")
274274
print(f" 📊 Joint State: {JOINT_STATE_STREAMING_RATE} Hz")
275275

276-
# Connect to NeuraCore
277-
print("\n🔧 Initializing NeuraCore...")
276+
# Connect to Neuracore
277+
print("\n🔧 Initializing Neuracore...")
278278
nc.login()
279279
nc.connect_robot(
280280
robot_name="AgileX PiPER",
@@ -293,7 +293,7 @@ def on_button_rj_pressed() -> None:
293293
)
294294

295295
# Initialize logging queue and worker pool
296-
print("\n📝 Initializing NeuraCore logging queue and worker pool...")
296+
print("\n📝 Initializing Neuracore logging queue and worker pool...")
297297
logging_queue: Queue = Queue()
298298
logging_workers = []
299299

examples/4_rollout_neuracore_policy.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python3
2-
"""Piper Robot Test with NeuraCore policy.
2+
"""Piper Robot Test with Neuracore policy.
33
4-
This script loads a trained NeuraCore policy, reads status from the piper robot
4+
This script loads a trained Neuracore policy, reads status from the piper robot
55
controlled by the Meta Quest controller, and replays the prediction horizon virtually
66
on Viser to test the stability of the policy output.
77
"""
@@ -656,7 +656,7 @@ def update_visualization(
656656

657657
if __name__ == "__main__":
658658
parser = argparse.ArgumentParser(
659-
description="Piper Robot Test with NeuraCore Policy - REAL ROBOT CONTROL"
659+
description="Piper Robot Test with Neuracore Policy - REAL ROBOT CONTROL"
660660
)
661661
parser.add_argument(
662662
"--ip-address",
@@ -695,8 +695,8 @@ def update_visualization(
695695
print(f" 📊 Joint State: {JOINT_STATE_STREAMING_RATE} Hz")
696696
print(f" 🖥️ Visualization: {VISUALIZATION_RATE} Hz")
697697

698-
# Connect to NeuraCore
699-
print("\n🔧 Initializing NeuraCore...")
698+
# Connect to Neuracore
699+
print("\n🔧 Initializing Neuracore...")
700700
nc.login()
701701
nc.connect_robot(
702702
robot_name="AgileX PiPER",

examples/5_rollout_neuracore_policy_minimal.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def convert_predictions_to_horizon_dict(predictions: dict) -> dict[str, list[flo
7373

7474

7575
def log_current_state(data_manager: DataManager) -> None:
76-
"""Log current state to NeuraCore."""
76+
"""Log current state to Neuracore."""
7777
current_joint_angles = data_manager.get_current_joint_angles()
7878
if current_joint_angles is None:
7979
print("⚠️ No joint angles available")
@@ -91,13 +91,13 @@ def log_current_state(data_manager: DataManager) -> None:
9191
print("⚠️ No RGB image available")
9292
return
9393

94-
# Prepare data for NeuraCore logging
94+
# Prepare data for Neuracore logging
9595
joint_angles_rad = np.radians(current_joint_angles)
9696
joint_positions_dict = {
9797
joint_name: angle for joint_name, angle in zip(JOINT_NAMES, joint_angles_rad)
9898
}
9999

100-
# Log joint positions, parallel gripper open amounts, and RGB image to NeuraCore
100+
# Log joint positions, parallel gripper open amounts, and RGB image to Neuracore
101101
nc.log_joint_positions(joint_positions_dict)
102102
nc.log_parallel_gripper_open_amount(GRIPPER_LOGGING_NAME, gripper_open_value)
103103
nc.log_rgb(CAMERA_LOGGING_NAME, rgb_image)
@@ -214,8 +214,8 @@ def execute_horizon(
214214
print("PIPER POLICY ROLLOUT")
215215
print("=" * 60)
216216

217-
# Initialize NeuraCore
218-
print("\n🔧 Initializing NeuraCore...")
217+
# Initialize Neuracore
218+
print("\n🔧 Initializing Neuracore...")
219219
nc.login()
220220
nc.connect_robot(
221221
robot_name="AgileX PiPER",

examples/6_visualize_policy_from_dataset.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@
5252
if (args.train_run_name is None) == (args.model_path is None):
5353
parser.error("Exactly one of --train-run-name or --model-path must be provided")
5454

55-
# Connect to NeuraCore
56-
print("🔧 Initializing NeuraCore...")
55+
# Connect to Neuracore
56+
print("🔧 Initializing Neuracore...")
5757
nc.login()
5858
nc.connect_robot(robot_name="AgileX PiPER", urdf_path=str(URDF_PATH), overwrite=False)
5959

@@ -174,7 +174,7 @@ def select_random_state() -> None:
174174
for joint_name in JOINT_NAMES:
175175
if joint_name in joint_data:
176176
joint_positions_dict[joint_name] = joint_data[joint_name].value
177-
# Log to NeuraCore for visualization
177+
# Log to Neuracore for visualization
178178
nc.log_joint_positions(joint_positions_dict)
179179

180180
# Extract gripper
@@ -183,7 +183,7 @@ def select_random_state() -> None:
183183
gripper_data = step.data[DataType.PARALLEL_GRIPPER_OPEN_AMOUNTS]
184184
if GRIPPER_LOGGING_NAME in gripper_data:
185185
gripper_value = gripper_data[GRIPPER_LOGGING_NAME].open_amount
186-
# Log to NeuraCore for visualization
186+
# Log to Neuracore for visualization
187187
nc.log_parallel_gripper_open_amount(GRIPPER_LOGGING_NAME, gripper_value)
188188

189189
# Extract RGB image
@@ -196,7 +196,7 @@ def select_random_state() -> None:
196196
image_pil = Image.fromarray(rgb_image)
197197
image_pil.save("current_image.png")
198198
print("💾 Saved image to current_image.png")
199-
# Log to NeuraCore for visualization
199+
# Log to Neuracore for visualization
200200
nc.log_rgb(CAMERA_LOGGING_NAME, rgb_image)
201201

202202
# Get policy prediction
@@ -264,7 +264,7 @@ def select_random_state() -> None:
264264
)
265265
urdf_vis.update_cfg(joint_config)
266266

267-
# Log to NeuraCore for visualization
267+
# Log to Neuracore for visualization
268268
# NOTE: we log to joint positions instead of joint target positions
269269
# because the latter is not visualized by Neuracore
270270
joint_config_dict = {

examples/common/configs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
VISUALIZATION_RATE = 60.0 # GUI updates
4040
ROBOT_RATE = 100.0
4141

42-
# NeuraCore data collection rates
42+
# Neuracore data collection rates
4343
JOINT_STATE_STREAMING_RATE = 100.0 # Data collection rate for neuracore
4444
CAMERA_FRAME_STREAMING_RATE = 60.0 # Data collection rate for camera frame
4545

0 commit comments

Comments
 (0)