Skip to content

Commit e2e98f5

Browse files
committed
Remove arrow key control and open devtools
1 parent d9cc438 commit e2e98f5

File tree

4 files changed

+40
-40
lines changed

4 files changed

+40
-40
lines changed

electron_demo/turtle_tf2/README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,21 @@ world → turtle2
196196

197197
**Turtle1 Movement**:
198198

199-
- **W** or **** (Up Arrow): Move forward
200-
- **S** or **** (Down Arrow): Move backward
201-
- **A** or **** (Left Arrow): Turn left
202-
- **D** or **** (Right Arrow): Turn right
199+
- **W**: Move forward
200+
- **S**: Move backward
201+
- **A**: Turn left
202+
- **D**: Turn right
203203

204-
💡 **Tip**: Click on the 3D visualization area first to ensure keyboard focus, then use the controls above to drive turtle1 around the turtlesim environment.
204+
💡 **Tip**: Click on the 3D visualization area first to ensure keyboard focus, then use WASD keys to drive turtle1 around the turtlesim environment.
205+
206+
**Camera Controls**:
207+
208+
- **Arrow Keys**: Move camera view
209+
- **Mouse Drag**: Rotate camera around scene
210+
- **Mouse Wheel**: Zoom in/out
211+
- **Right Click + Drag**: Pan camera view
212+
213+
**Note**: Arrow keys are reserved for 3D camera navigation. Use WASD keys exclusively for turtle control to avoid conflicts.
205214

206215
### Turtle Management
207216

electron_demo/turtle_tf2/index.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -388,20 +388,21 @@
388388
<label class="control-label">Move Turtle1</label>
389389
<div class="keyboard-legend">
390390
<div class="key-combo">
391-
<span class="key">W</span> or <span class="key"></span> - Forward
391+
<span class="key">W</span> - Forward
392392
</div>
393393
<div class="key-combo">
394-
<span class="key">S</span> or <span class="key"></span> - Backward
394+
<span class="key">S</span> - Backward
395395
</div>
396396
<div class="key-combo">
397-
<span class="key">A</span> or <span class="key"></span> - Turn Left
397+
<span class="key">A</span> - Turn Left
398398
</div>
399399
<div class="key-combo">
400-
<span class="key">D</span> or <span class="key"></span> - Turn Right
400+
<span class="key">D</span> - Turn Right
401401
</div>
402402
</div>
403403
<div class="keyboard-note">
404-
💡 Click on the 3D scene to focus, then use keyboard controls
404+
💡 Click on the 3D scene to focus, then use WASD keys to control turtle1.<br>
405+
🎥 Use arrow keys or mouse to navigate the 3D camera view.
405406
</div>
406407
</div>
407408
</div>

electron_demo/turtle_tf2/main.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ function createWindow() {
5353

5454
mainWindow.loadFile('index.html');
5555

56-
// Open DevTools for debugging
57-
mainWindow.webContents.openDevTools();
56+
// Open DevTools for debugging (commented out for production)
57+
// mainWindow.webContents.openDevTools();
5858
}
5959

6060
// Initialize ROS2 nodes for turtle TF2 demo
@@ -137,7 +137,7 @@ async function createTurtleTf2Broadcaster() {
137137
turtleTf2Nodes.velocityPublisher = velocityPublisher;
138138

139139
// Subscribe to turtle1 pose
140-
node.createSubscription('turtlesim_msgs/msg/Pose', '/turtle1/pose', (msg) => {
140+
node.createSubscription('turtlesim/msg/Pose', '/turtle1/pose', (msg) => {
141141
const now = node.now();
142142

143143
// Create transform message
@@ -206,7 +206,7 @@ async function createTurtleTf2Broadcaster() {
206206
});
207207

208208
// Subscribe to turtle2 pose if it exists
209-
node.createSubscription('turtlesim_msgs/msg/Pose', '/turtle2/pose', (msg) => {
209+
node.createSubscription('turtlesim/msg/Pose', '/turtle2/pose', (msg) => {
210210
const now = node.now();
211211

212212
const transform = {
@@ -286,7 +286,7 @@ async function createTurtleTf2Listener() {
286286
);
287287

288288
// Create service client to spawn turtle2
289-
const spawner = node.createClient('turtlesim_msgs/srv/Spawn', 'spawn');
289+
const spawner = node.createClient('turtlesim/srv/Spawn', 'spawn');
290290

291291
let turtleSpawned = false;
292292
let turtleSpawningServiceReady = false;

electron_demo/turtle_tf2/renderer.js

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ let keyState = {
3636
a: false,
3737
s: false,
3838
d: false,
39-
ArrowUp: false,
40-
ArrowLeft: false,
41-
ArrowDown: false,
42-
ArrowRight: false,
4339
};
4440

4541
// Initialize when DOM is loaded
@@ -382,27 +378,21 @@ function setupEventListeners() {
382378

383379
// Setup keyboard controls for turtle movement
384380
function setupKeyboardControls() {
385-
// Track key state
381+
// Track key state for WASD keys only
386382
document.addEventListener('keydown', (event) => {
387-
if (event.code in keyState) {
388-
keyState[event.code] = true;
389-
event.preventDefault();
390-
}
391-
// Also handle WASD
392-
if (event.key.toLowerCase() in keyState) {
393-
keyState[event.key.toLowerCase()] = true;
383+
// Only handle WASD keys (case-insensitive)
384+
const key = event.key.toLowerCase();
385+
if (key in keyState) {
386+
keyState[key] = true;
394387
event.preventDefault();
395388
}
396389
});
397390

398391
document.addEventListener('keyup', (event) => {
399-
if (event.code in keyState) {
400-
keyState[event.code] = false;
401-
event.preventDefault();
402-
}
403-
// Also handle WASD
404-
if (event.key.toLowerCase() in keyState) {
405-
keyState[event.key.toLowerCase()] = false;
392+
// Only handle WASD keys (case-insensitive)
393+
const key = event.key.toLowerCase();
394+
if (key in keyState) {
395+
keyState[key] = false;
406396
event.preventDefault();
407397
}
408398
});
@@ -422,17 +412,17 @@ function sendTurtleCommand() {
422412
const speed = 2.0; // Linear speed
423413
const turn_speed = 2.0; // Angular speed
424414

425-
// Check for forward/backward movement (W/S or Up/Down arrows)
426-
if (keyState.w || keyState.ArrowUp) {
415+
// Check for forward/backward movement (W/S keys only)
416+
if (keyState.w) {
427417
linear_x = speed;
428-
} else if (keyState.s || keyState.ArrowDown) {
418+
} else if (keyState.s) {
429419
linear_x = -speed;
430420
}
431421

432-
// Check for rotation (A/D or Left/Right arrows)
433-
if (keyState.a || keyState.ArrowLeft) {
422+
// Check for rotation (A/D keys only)
423+
if (keyState.a) {
434424
angular_z = turn_speed;
435-
} else if (keyState.d || keyState.ArrowRight) {
425+
} else if (keyState.d) {
436426
angular_z = -turn_speed;
437427
}
438428

0 commit comments

Comments
 (0)