ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

SSC Interface Confusion


Hi There,

I recently upgraded to 1.11 and used the new ssc_interface node (previously as_interface). I am an employee of AutonomouStuff, so we have access to an SSC and vehicle to test in.
In order for me to get the vehicle to actually drive autonomously, I needed to make this change:
so that it listens to the twist command issued by pure_pursuit.
This raised a few questions for me:

  1. Why does the VehicleCmd msg have two different sets of commands in it? (twist cmd and actuation cmds). They seem like they would conflict with each other. EDIT: I just realized there are actually 3 different sets of commands: “geometry_msgs/TwistStamped twist_cmd”, “autoware_msgs/ControlCommand ctrl_cmd”, and also the steer_cmd, brake_cmd, accel_cmd?
  2. What actually publishes those actuation (brake, steer, accel) commands? or the ctrl_cmd? I noticed the twist_gate subscribes to them, but I’m not sure what actually publishes those commands (Isn’t pure_pursuit responsible for generating control commands in the twist format?)

I’m just confused about what the typical use-case is for the ssc_interface.

Any clarification is greatly appreciated!



I don’t know for sure, but I would guess that the direct actuator commands are to account for manual joystick control.

We talked at Tier IV a couple of weeks ago about the need for a new vehicle interface between planning and control. I’m not sure if that discussion has been written up yet.

There is also ongoing work for Autoware.Auto about the vehicle interface.

That might the best place to talk about vehicle interface design, as it is for the future version of Autoware rather than reworking what is already there.




  1. The current version of VehicleCmd message has two types of motion commands, twist_cmd mainly for two-wheeled mobile robot and ctrl_cmd mainly for four-wheeled steering vehicle because twist format cannot define the command like “car is stopping but steering is moving”. steer_cmd, brake_cmd, accel_cmd were used for manually control from runtime_manager GUI but are no longer used in ssc_interface.

  2. For the above reasons, vehicle_cmd.ctrl_cmd is suitable for car-like robot like AS Lexus. pure_pursuit can provide twist_raw and ctrl_cmd same time, but ctrl_cmd is not published if “Publishes topic for steering robot” option. Plz check.


1 Like


@aohsato thanks so much! I really appreciate the info, I now have a much better understanding of it all.

Also, @gbiggs, thanks for the link! I’ll give it a good read when I get a moment.

1 Like