Skip to content
Snippets Groups Projects
Caileigh Fitzgerald's avatar
Caileigh Fitzgerald authored
now publishes the command string with multi line commands joined by newlines

See merge request !6
0355ecd3
History

legacy_remus_translator

This is a ROS node that acts as a bridge between REMUS VIP and modern ros_acomms messaging (as well as FDP acoustic packets).

Getting started

  1. Have a functioning ROS workspace with at least these packages:
    • ros_acomms
    • ros_remus
  2. Make sure that you have codecs set up in ros_acomms to pass these messages from the vehicle:
    • status (ros_remus/Status)
    • motherboard ('ros_remus/Motherboard`)
    • battery_state (sensor_msgs/BatteryState)
  3. If using CCL commands from VIP, make sure that the vehicle modem has psk.legacy_rxd set to 1 and is using FDP (psk.mod_hdr_version = 1)
  4. Set up the UDP modem connection in REMUS VIP with these settings:
    • Destination IP address: IP address of the computer running the legacy_translator_node
    • Destination IP Port: same as local_port parameter on legacy_translator_node
    • VIP IP Port: same as remote_port parameter on legacy_translator_node
    • NOTE: If running VIP and the legacy translator node on the same computer, you probably need to use different values for the local_port/remote_port pair, since VIP and the legacy translator can't both bind to the same port on the same IP.
  5. When using VIP, select Sources -> MODEM/CCL Interface -> Via UDP Modem
  6. Configure the legacy translator node in the ROS launch file following one of the examples in the launch directory
  7. Run the launch file with roslaunch

How it works

The legacy translator node receives ros_remus messages via acomms with ros_acomms. It then extracts data from the ros_remus messages and uses it to fill in the fields of an MDAT_STATE CCL message. This CCL message is packed into a $CARXD string (as if it came from the acoustic modem) and sent to VIP over the UDP connection.

When sending CCL commands from VIP, the legacy translator emulates the Micromodem NMEA interface and accepts the $CCTXD string that VIP sends to the UDP modem socket. It then converts the payload of the $CCTXD message to an FDP packet payload. When this is received on the vehicle, the modem generates a $CARXD message (when psk.legacy_rxd is 1), which allows the vehicle front-seat computer to process the CCL command as if it arrived via a legacy packet. FDP ACKs are processed and $CAACK messages are sent to VIP to indicate when a command has been acknowledged.