-
Notifications
You must be signed in to change notification settings - Fork 10
Remove all ROS message dependency and old ROS nodes from DimOS, refactored rosnav #1230
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
Conversation
Greptile OverviewGreptile SummaryThis PR successfully removes all ROS message dependencies from DimOS message types and refactors the
The refactoring properly leverages the existing Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant ROS as ROS Navigation Stack
participant RT as ROSTransport
participant RN as ROSNav Module
participant LCM as LCM Transport
participant App as Application
Note over ROS,App: Goal Setting Flow
App->>LCM: goal_req (PoseStamped)
LCM->>RN: goal_req.subscribe()
RN->>RN: _on_goal_pose()
RN->>RT: ros_goal_pose.publish()
RT->>ROS: /goal_pose (converts DimOS→ROS)
Note over ROS,App: Navigation Updates Flow
ROS->>RT: /cmd_vel (TwistStamped)
RT->>RN: ros_cmd_vel (converts ROS→DimOS)
RN->>LCM: cmd_vel.publish(Twist)
LCM->>App: cmd_vel updates
Note over ROS,App: Point Cloud Data Flow
ROS->>RT: /registered_scan (PointCloud2)
RT->>RN: ros_registered_scan
RN->>RN: RxPY sampling
RN->>LCM: pointcloud.publish()
LCM->>App: Point cloud data
Note over ROS,App: Goal Reached Flow
ROS->>RT: /goal_reached (Bool)
RT->>RN: ros_goal_reached
RN->>RN: Update navigation state
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
38 files reviewed, no comments
|
@alexlin2 You have to say "Closes DIM-449" in the description to link it in Linear. |
|
So great to clean up ros in general, but do we need The idea behind ros transports is that we don't need bridge-like modules at all (actually not sure @paul-nechifor if we'd need some spec level "module" that maybe does nothing? just specifies ros topics available, so that autoconnect knows what's available - then this same module can run dockerized ros in the future?) can merge but good convo to sort out |
So I looked at it and I wanted to keep the same specs as before so that it works exactly the same as the go2 nav interface. Also we need to keep like the navigation state as well as sending the joystick commands to put the robot into autonomy mode and softstop mode, these will still need to be in a module since the commanding nodes should not need to know about the joystick messages or the softstop for the cancel_navigation. |
ROSNavmodule to useROSTransportinstead of directrclpypublishers/subscribers, removing all ROS message imports and the internal ROS node
from_ros_msg/to_ros_msgmethods and ROS message imports from all 18 message typesunder
dimos/msgs/dimos/msgs/DIM-449
Closes DIM-449