ROS on GoPiGo3: What topics and services are actually needed?

I have hit on some weirdness with two of the gopigo3_node topics, and am thinking to comment them out. There are some other drastic commands of which I am questioning actual usage.

Does anyone use or know when a ROS bot would need the following:

    /motor/position/left: std_msgs/msg/Int16
    /motor/position/right: std_msgs/msg/Int16

The issues I have with them:

  • Rotation speed is not controllable
  • Restarting the node ( without powering down completely after using one of these) causes uncommanded movement of the bot to the last commanded encoder value.

Also of questionable use:

    /power/off: std_srvs/srv/Trigger
    /power/on: std_srvs/srv/Trigger
    /reset: std_srvs/srv/Trigger
    /spi: ros2_gopigo3_msg/srv/SPI

The topics and services I have working at this point are:

    /cmd_vel: geometry_msgs/msg/Twist

    /led/blinker/left: std_msgs/msg/UInt8
    /led/blinker/right: std_msgs/msg/UInt8
    /led/eye/left: std_msgs/msg/ColorRGBA
    /led/eye/right: std_msgs/msg/ColorRGBA
    /led/wifi: std_msgs/msg/ColorRGBA

    /motor/dps/both: std_msgs/msg/Int16      <--- NEW
    /motor/dps/left: std_msgs/msg/Int16
    /motor/dps/right: std_msgs/msg/Int16

    /motor/pwm/both: std_msgs/msg/Int8   <--- NEW
    /motor/pwm/left: std_msgs/msg/Int8
    /motor/pwm/right: std_msgs/msg/Int8

    /servo/position/S1: std_msgs/msg/Float64
    /servo/position/S2: std_msgs/msg/Float64
    /servo/pulse_width/S1: std_msgs/msg/Int16
    /servo/pulse_width/S2: std_msgs/msg/Int16

    /battery_voltage: std_msgs/msg/Float64
    /joint_state: sensor_msgs/msg/JointState
    /motor/encoder/left: std_msgs/msg/Float64
    /motor/encoder/right: std_msgs/msg/Float64
    /motor/status: ros2_gopigo3_msg/msg/MotorStatusLR
    /odom: nav_msgs/msg/Odometry
    /tf: tf2_msgs/msg/TFMessage

Interesting. I haven’t messed with them at that granularity.
But it might be worth checking to make sure there are no nodes that subscribe to these before you comment them out.