Driver Pack Release Notes


  • can_interface:
    • Now released under GPLv3.
  • network_interface:
    • Breaking Change: The API for TCPInterface and UDPInterface are now standardized to have nearly identical function signatures and both use similar underlying calls to Boost (rather than Linux-native APIs on UDPInterface). All 1.7.0 AS ROS drivers have been updated to work with these new API function signatures.
    • Breaking Change: The return_statuses enum now uses ALL_CAPS values, consistent with industry best-practices.
    • Feature Addition: More error handling is now included in network_interface. It should be considered a stable API which should not throw any errors directly but pass them through a return return_statuses value to the calling code.
    • Bug fix: The read_some function of TCPInterface now returns the number of bytes read.
    • Now released under GPLv3.
  • platform_automation_msgs:
    • New message CurvatureFeedback was added to support steering feedback information abstracted into a current curvature from the vehicle's present trajectory.
  • pacmod_game_control:
    • Feature Addition: Now supports multiple vehicle types through the vehicle_type parameter in the launch file. See the launch file for details.
    • Feature Addition: Added control for windshield wipers on certain vehicle models.
    • Feature Addition: Optional parameters are now available in the launch file for accelerator and braking scaling to scale the inputs from the joystick.
    • Feature Addition: Optional argument is now available in the launch file for enabling/disabling the launching of pacmod along with the game controller node.
    • The default rotation speed of the steering wheel has been increased from 2.356195 rad/sec to 3.3 rad/sec.
  • delphi_esr:
    • Breaking Change: Due to the addition of an Ethernet node, the delphi_esr node has been renamed to delphi_esr_can.
    • Feature Addition: The TrackMotionPower message is now published by the driver indicating the average amplitude of the returns used in the track and the movement of the track.
    • Preliminary Feature Addition: The driver now supports connecting to the sensor via CAN, Ethernet, or both. Ethernet support is exclusively for the Delphi ESR 2.5. For the ESR 2.5 12V version, a connection to both interfaces is required as the "radiate" command must be sent over CAN for the data to be produced on both interfaces. For the ESR 2.5 24V version, the sensor should auto-radiate so you can use either interface or both. Examples of how to launch the CAN and Ethernet nodes are provided in the launch files delphi_esr.launch and delphi_esr_eth.launch, respectively.
    • Bug Fix: ibeo_lux_transform.launch was missing several parameters that should have been available for changing.
  • delphi_srr:
    • Bug fix: Corrects error stopping as_tx/detections from being published.
  • ibeo_lux:
    • Bug fix: Increased loop rate significantly to handle all incoming messages from the sensor in a timely manner.
  • mobileye_560_660:
    • Bug fix: view_range is now set on the LaneModels message.
    • Bug fix: obstacle_rel_vel_x is now being parsed correctly in the ObstacleData message.
  • neobotix_usboard
    • A new driver for the Neobotix USBoard ultrasonic sensor kit is now included. Currently only parses basic data but many new features will be added soon.
  • pacmod:
    • Bug fix: The scaling value for float-based message types (brake_rpt, accel_rpt) has been fixed.
    • Feature Addition: The GlobalRpt message now contains hardware error feedback (such as CAN timeouts and number of CAN read errors).
    • Feature Addition: A new parameter, vehicle_type, is available in the launch files. The driver now supports the vehicle types POLARIS_GEM, POLARIS_RANGER, and INTERNATIONAL_PROSTAR_122 as well as additional features (wipers, horn, etc.) that are specific to those vehicles.
    • Changes were made to decrease the CPU utilization and increase the responsiveness of the driver.
    • IMPORTANT NOTE: It was discovered that changes made to this driver in version 1.5.0 could cause a delay in the responsiveness of the vehicle. To correct this issue, make sure you have upgraded the Kvaser linuxcan SDK to the latest version (5.20 as of this writing).


  • delphi_esr:
    • Bug fix:Fixed bug in how twist message in as_rx/vehicle_motion is translated by driver. ESR now properly receives vehicle motion through this topic.
    • Cleaned up visualizations (remove old markers when track status changes).
    • frame_id now set for all published messages (customer request).
  • delphi_srr:
    • frame_id now set for all published messages (customer request).
  • ibeo_lux:
    • Bug fix: Object labels did not have the correct object ID associated with them.
    • Bug fix: The lifetime of object markers was not being set correctly resulting in degraded visualization performance.
    • Bug fix: The value of the echo field in scan points was not being parsed correctly.
    • Breaking Change: All point clouds, regardless of source, (LUX or LUX Fusion) are now published to a single topic: as_tx/point_cloud.
    • Breaking Change: All object wireframes, regardless of source, (LUX or LUX Fusion) are now published to a single topic: as_tx/objects.
    • Breaking Change: All contour points, regardless of source, (LUX or LUX Fusion) are now published to a single topic: as_tx/object_contour_points.
    • The text size for object labels has been increased to improve readability.
  • mobileye_560_660:
    • Bug fix: The parsed value of the lane curvature in the lanes on the topic parsed_tx/lane was not correct.
    • Bug fix: The parsed value of the curvature parameter c2 in the topics parsed_tx/left_lka_lane, parsed_tx/right_lka_lane, and parsed_tx/next_lka_lanes was incorrect.
    • Breaking Change: A new frame ID/parameter (~viz_frame_id) has been added specifically for the visualization of the lane models and objects. The intent of this frame is that the reference frame will be identical to that of the mobileye but with a Z offset of the exact opposite of the Z offset of the mobileye's frame. This places the lane and object visualizations on the ground (Z = 0) instead of floating at the height of the mobileye.
    • frame_id now set for all published messages (customer request).
  • pacmod:
    • Breaking Change (REQUIRES FIRMWARE UPGRADE): The heartbeat message has been removed. For added stability and reliability of the interface between the driver and the PACMod, all command CAN messages are now sent at regular intervals (currently 20Hz) to the PACMod. The most recent command received by the driver during each cycle is the one that will be sent during the message burst. The speed of the message burst cycle may change in the future but the method of communication will likely not.
    • The clear_override flag in the general report command is now set to true by default. This is necessary to accommodate the above change and allow overrides to be reset.
  • pacmod_game_control
    • Breaking Change: Added a new required parameter (~max_veh_speed). Based on this value, the software will now automatically scale the steering wheel rotational speed based on current vehicle speed vs max_veh_speed.
    • Bug fix: A ros::AsyncSpinner and ros::SpinOnce() were both being used. Removed the redundant SpinOnce. This does not affect the user experience.
    • Bug fix: Added mutexes to support the AsyncSpinner which was being used in a non-thread-safe manner. No issues have been reported, this was mostly a software quality assurance issue.
    • Added support for the HRI Safe Remote Control System. A new non-required parameter (~controller_type) was added to select between this and the Logitech controller.


  • Breaking Change: All can-based drivers now use can_msgs/Frame as opposed to can_interface/CanFrame. This was done for the purpose of aligning our underlying architecture with standardized ROS messages instead of using our own, custom messages. This also means that the stack now relies on can_msgs and it must be installed for the drivers to function properly. Other than the new prerequisite package, this change should only affect customers who were using the raw can topics (can_tx, can_rx_echo, or can_rx) for communication with the sensors.
  • can_interface:
    • Message can_interface/CanFrame was removed in favor of can_msgs/Frame.
  • ibeo_lux:
    • Bug fix: The transform from scan points to pcl::PointCloud was not being performed correctly and resulted in all points being clustered into what looked like a single point in Rviz. This has been corrected. Raw data were unaffected.
    • Bug fix: Wireframe boxes produced by the object detection/classification in the LUX Fusion ECU now have labels.
    • Bug fix: Contour points now scale properly.
    • The driver will now only publish topics relevant to the type of system selected (single LUX vs. LUX Fusion ECU).
    • Classifications are now namespaced so they can be shown/hidden separately in Rviz.
  • delphi_esr:
    • Bug fix: The forwarding of vehicle yaw rate information to the sensor had a bug causing the data to be misinterpreted by the sensor. This has been corrected.
    • The message type for providing vehicle motion information to the driver was changed from Twist to TwistStamped. This allows the twist output from the DataSpeed drive-by-wire driver to simply be remapped to this topic.
  • pacmod:
    • The topic can_rx_forward has been changed to can_rx to align with other drivers in the stack.


  • Bug fix to pacmod: Vehicle speed was not being parsed correctly. The value reported in /parsed_tx/vehicle_speed_rpt is now in the native mph and a new topic, /as_tx/vehicle_speed is now available for m/s. To correctly see this value, a PACMod firmware update is required.
  • Change to pacmod_game_control: The default maximum rotational speed of the steering wheel that is sent from this node has been reduced by half. However, this value is now configurable in the launch file.
  • Important note: To conform to the Delphi DV (DataView) tool - and the internal coordinate system of the ESR - the output of the position of tracks from the Delphi ESR has been flipped horizontally. If you were using these output, please set the value of the "esr_flipped" flag in your launch file to the inverse of the current value (true to false or false to true).


  • Added the following closed-source packages:
    • kartech_linear_actuator (Supports the Kartech CAN Linear Actuator)
  • Bug fix to can_interface: The CanFrame message definition id field was changed from uint16 to uint32 to support extended IDs.


  • PACMod Requires Firmware Update
  • PACMod Driver Changes in preparation for PACMOD Firmware Update coming in 1.4.0
    • Breaking Changes: topic from override to enable. New functionality is enable = true will enable drive by wire controls. enable = false will disable drive by wire controls.
    • Fixed vehicle_speed_rpt topic. Previously, this was reporting incorrect data for speed due to an issue in the firmware. In addition, the message definition changed for vehicle_speed_rpt. This now has three components to the topic: Vehicle Speed, A validity flag, and the raw CAN speed data. See PACMod startup guide for more information on the new format.
    • The ROS node has been updated to send heartbeat message to the PACMOD every 20mS.
  • Change to delphi_esr: Visualization changes to the Delphi ESR (CAN) driver. Previously, radar tracks were visualized by green rectangular bars with no depth that changed height as the track moved closer to the radar indicating potential location. Now these are visualized as green rectangular bars with depth and a constant height. 


  • Added the following open-source packages:

    • network_interface (Supports parsing of TCP and UDP packets over an Ethernet interface with an abstracted API)

  • Added the following closed-source packages:

    • delphi_srr (Supports the Delphi SRR2)

    • ibeo_lux (Supports the Ibeo LUX 4L/4L HD and Ibeo LUX Fusion)

  • Change to pacmod: Node name of pacmod_node is now named pacmod
  • Breaking change: Split each driver into main package and _msgs package. Any software written using the previous message names will need to be updated.
  • Breaking change: Changed mobileye_560_660 messages to use standard ROS naming convention (cammel-case vs underscores).


  • Added the following open-source packages:

    • pacmod_game_control (Joystick Controller for the PACMod drive-by-wire system)


  • Bug fixes to can_interface.


  • Bug fixes to pacmod and can_interface. Updates to platform_automation_msgs.


  • Initial release with the following closed-source drivers:

    • delphi_esr (Supports the Delphi ESR 2.5 12V/24V, 9.21.21, and 9.21.15)

    • mobileye_560_660 (Supports the Mobileye 560/660 with extended firmware from AutonomouStuff)

    • pacmod (Supports the PACMod Drive-by-Wire System from AutonomouStuff)

  • Also includes the following open-source packages:

    • can_interface (Supports Kvaser linuxcan API for all Kvaser CAN devices – SocketCAN support coming soon)

    • platform_automation_msgs (Generic ROS message definitions for radar devices, highway automation nodes, and general automation)