Contents
Overview
https://github.com/RoverRobotics/openrover-ros2 is a repository containing several packages for operating a Rover Robotics ground-based rover:
Packages:
- openrover_core
- openrover_core_msgs
- openrover_demo
Nodes in openrover_core:
- /rover_serial
- This node directly interfaces with the rover and must run on the same hardware the rover is physically plugged into.
- Subscribers:
- /motor_efforts: openrover_core_msgs/msg/RawMotorCommand
- Low level motor commands expressed as bytes (left, right, flipper) being sent to the rover
- /openrover_command: openrover_core_msgs/msg/RawCommand
- Low-level instructions sent to the rover as (verb, arg) pairs
- /raw_data: openrover_core_msgs/msg/RawData
Binary data being emitted from the rover, in unprocessed form (see https://roverrobotics.com/blogs/news/uart-protocol for interpretation)
- Subscribers:
Gauss% ros2 topic echo /raw_data which: 14 value: ['''', '3'] ---
- /rover
- A higher-level node which converts between serial and ROS concepts. This need not have direct hardware access to the rover.
- Subscribers:
- /cmd_vel: geometry_msgs/msg/Twist
- Linear and rotational velocity the rover is requested
- /raw_data: openrover_core_msgs/msg/RawData
Binary data being emitted from the rover, in unprocessed form (see https://roverrobotics.com/blogs/news/uart-protocol for interpretation)
- /diagnostics: diagnostic_msgs/msg/DiagnosticArray
diagnostic data being emitted by the rover, suitable for consumption by rqt_robot_monitor or diagnostic-aggregator.
- /motor_efforts: openrover_core_msgs/msg/RawMotorCommand
- Motor efforts (left, right, flipper) being sent to the rover
- /odom_raw: nav_msgs/msg/Odometry
- Wheel-based odometry
- /openrover_command: openrover_core_msgs/msg/RawCommand
- Low-level instructions sent to the rover as (verb, arg) pairs
- Subscribers:
An example of what diagnostics might look like:
Gauss% ros2 topic echo /diagnostics
header:
stamp:
sec: 1596074200
nanosec: 555623392
frame_id: ''
status:
- level: "\0"
name: 'over: power'
message: Okay
hardware_id: OpenRover
values:
- key: battery A state of charge
value: '0.3'
- key: battery B state of charge
value: '0.3'
- key: battery A current
value: '0.617647'
- key: battery B current
value: '0.235294'
- key: battery A current (internal)
value: '-0.185'
- key: battery B current (internal)
value: '-0.19'
- key: battery charging state
value: 'False'
- level: "\0"
name: 'over: firmware'
message: Okay
hardware_id: OpenRover
values:
- key: firmware revision
value: 1.10.1
- level: "\0"
name: 'over: drive'
message: Okay
hardware_id: OpenRover
values:
- key: left encoder displacement
value: '10035'
- key: right encoder displacement
value: '10040'
- key: left encoder period
value: '0'
- key: right encoder period
value: '0'
- key: left motor temperature
value: '27'
- key: cooling fan 1 duty factor
value: '0'
- key: cooling fan 2 duty factor
value: '0'
---