-
Notifications
You must be signed in to change notification settings - Fork 156
Description
How do we actually integrate DDS In general?
Unfortunate way
Do we just have G1Connection?
class G1Connection(Module):
cmd_vel: Out[Twist]
lidar: Out[PointCloud2]
... does dds comms internally, the way go2 connection does webrtcIn the case above we are sad, DDS isn't integrated as a proper dimos transport
Fortunate way
Does DDS between robots/manufacturers generally use the same format for common messages, like are those PointCloud2, Image types from ROS? can we have a generic DDSTransport that will accept these common messages across robots?
In case above we could treat third party robots just as dimos modules, subscribe to their topics, let our local_planner send Twist to them?
something like
local_planner.cmd_vel.transport = DDSTransport("/twist", robot_ip, or_however_you_configure_this, qos=something)or like https://github.com/dimensionalOS/dimos/blob/dev/dimos/robot/unitree_webrtc/unitree_go2_blueprints.py#L114
we can map out known robot topics in a blueprint something like this (the way we do in unitree for detections)
.transports(
{
("cmd_vel", LocalPlanner): DDSTransport
"/ddstopic", Twist, robot_ip
),
...
)if we use this DDS transport for our own modules
https://github.com/dimensionalOS/dimos/blob/dev/docs/concepts/modules.md
camera.color_image.transport = DDSTransport("/color_image")
detector.image.connect(camera.color_image)dds transports here internally parses DDS messages into standard dimos Images within modules
would this /color_image topic be the same format as other robots DDS camera topics?
Robot specific messages
I'm sure robots will have their own specific DDS messages, how do we integrate those smoothly?
Ros
Ros uses DDS internally, rclpy is it's interface towards it. rclpy is annoying since it requires full ros installation and ubuntu.
Is it possible to go further and speak DDS to actual ROS? without rclpy dependency? this would allow us to easily talk to ros dockers
Docs
https://github.com/dimensionalOS/dimos/blob/dev/docs/concepts/transports.md (has some formatting issues, PR appreciated)
https://github.com/dimensionalOS/dimos/blob/dev/docs/concepts/lcm.md