-
Notifications
You must be signed in to change notification settings - Fork 177
Unitree WebRTC integrated with full functionality, remove all ROS dependency, refactored entire robot base class and connection interface, added explore skill #279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
63 commits
Select commit
Hold shift + click to select a range
6b6b9b2
local planner integration with new webrtc interface
alexlin2 9456080
commenting out cuda stuff
leshy e4fc046
commenting out aionice from requirements as an experiment
leshy fa4e6e3
local planner working and tested with webrtc interface
alexlin2 613935f
added local costmap to map type, fixed recovery logic to be more robust
alexlin2 03e9b82
to be squashed
alexlin2 54b5236
bug fixes, local planner now is integrated with dev
alexlin2 700013e
Major refactor, moved all connection types into an abstract class cal…
alexlin2 875ce57
CI code cleanup
alexlin2 f669ff1
bug fix and bigger tolerance on angle
alexlin2 819d912
added a navigation only run file
alexlin2 b03b14f
added back object detection stream, now without dependency on ros tra…
alexlin2 39e22c8
added all unitree skills support for webrtc
alexlin2 c714906
most stupid bug ever
alexlin2 22d4ab1
bug fix, removed backpressure all together
alexlin2 9f0cd5a
added local planner changes
alexlin2 7796752
initial implementation of frontier exploration
alexlin2 79a0d0f
added qwen frontier predictor
alexlin2 ca4d9ea
Quick fix Qwen VL Max implementation for single_frame_query
spomichter ed39c13
Fix CLIP navigation threshold from LLM set to hardcoded
spomichter d23f9a7
Temporarily comment out non-essential Unitree skills for Cerebras con…
spomichter 1b1f7e4
Integrated Cerebras to run.py
spomichter f6ca110
local planner integration with new webrtc interface
alexlin2 e6cfe33
commenting out cuda stuff
leshy ce73101
commenting out aionice from requirements as an experiment
leshy 79dd910
local planner working and tested with webrtc interface
alexlin2 31190b9
added local costmap to map type, fixed recovery logic to be more robust
alexlin2 57b7bca
bug fixes, local planner now is integrated with dev
alexlin2 923619f
Major refactor, moved all connection types into an abstract class cal…
alexlin2 f08913d
CI code cleanup
alexlin2 fe2ffb5
bug fix and bigger tolerance on angle
alexlin2 1833d42
added a navigation only run file
alexlin2 f369e7a
added back object detection stream, now without dependency on ros tra…
alexlin2 7489a96
added all unitree skills support for webrtc
alexlin2 e3d781b
most stupid bug ever
alexlin2 d1ba9d9
bug fix, removed backpressure all together
alexlin2 b7c489f
initial implementation of frontier exploration
alexlin2 02f54a2
added qwen frontier predictor
alexlin2 237f365
improved wavefront detector
alexlin2 1668238
explored skill with frontier exploration fully working, many local pl…
alexlin2 03e54bf
No need to click start on controller
alexlin2 21bdafc
Temp changes to Agent, added append_to_history method
spomichter 0a474b3
Created new observe skill, updated observestream
spomichter 94c9274
Working runfile, cerebras updates
spomichter 43b3bcf
bug fix with frontier sizes
alexlin2 807b874
two tiny bugs
alexlin2 0d44ce6
fixed frontier detector scoring mechanism
alexlin2 96d904d
check if attempts exceed maximum
alexlin2 9257b68
Navigation needs to terminate
alexlin2 c0d8675
switched back to claude, fixed local planner orientation bug
alexlin2 38170e0
removed local_costmap from map.py
alexlin2 1e5fdfc
removed_external_packages
alexlin2 e77a734
reverted some changes
alexlin2 fb39de8
got rid of ROS OcuupancyGrid in some instances
alexlin2 bf911e7
use qwen 2.5
alexlin2 22c0016
put standup in the robot initialization so that the lidar stream does…
alexlin2 61e73a3
changed voxel_size back to 0.2
alexlin2 299e408
added tests for frontier exploration
alexlin2 99a6db9
temp fix for observe stream
alexlin2 188396a
moved wavefront into its own class
alexlin2 5774d60
revert changes made to global planner
alexlin2 684330c
updated all comments
alexlin2 225ecce
fixed all comments
alexlin2 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,70 @@ | ||
| # Copyright 2025 Dimensional Inc. | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| from abc import ABC, abstractmethod | ||
| from typing import Optional | ||
| from reactivex.observable import Observable | ||
| from dimos.types.vector import Vector | ||
|
|
||
| __all__ = ["ConnectionInterface"] | ||
|
|
||
|
|
||
| class ConnectionInterface(ABC): | ||
| """Abstract base class for robot connection interfaces. | ||
|
|
||
| This class defines the minimal interface that all connection types (ROS, WebRTC, etc.) | ||
| must implement to provide robot control and data streaming capabilities. | ||
| """ | ||
|
|
||
| @abstractmethod | ||
| def move(self, velocity: Vector, duration: float = 0.0) -> bool: | ||
| """Send movement command to the robot using velocity commands. | ||
|
|
||
| Args: | ||
| velocity: Velocity vector [x, y, yaw] where: | ||
| x: Forward/backward velocity (m/s) | ||
| y: Left/right velocity (m/s) | ||
| yaw: Rotational velocity (rad/s) | ||
| duration: How long to move (seconds). If 0, command is continuous | ||
|
|
||
| Returns: | ||
| bool: True if command was sent successfully | ||
| """ | ||
| pass | ||
|
|
||
| @abstractmethod | ||
| def get_video_stream(self, fps: int = 30) -> Optional[Observable]: | ||
| """Get the video stream from the robot's camera. | ||
|
|
||
| Args: | ||
| fps: Frames per second for the video stream | ||
|
|
||
| Returns: | ||
| Observable: An observable stream of video frames or None if not available | ||
| """ | ||
| pass | ||
|
|
||
| @abstractmethod | ||
| def stop(self) -> bool: | ||
| """Stop the robot's movement. | ||
|
|
||
| Returns: | ||
| bool: True if stop command was sent successfully | ||
| """ | ||
| pass | ||
|
|
||
| @abstractmethod | ||
| def disconnect(self) -> None: | ||
| """Disconnect from the robot and clean up resources.""" | ||
| pass |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| from utils import * |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.