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:
https://github.com/astuff/autoware/commit/2b66f81ebbafd48a8de072e6bddcee5a53762533
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!
Thanks!

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.

https://gitlab.com/AutowareAuto/AutowareAuto/issues/62

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.

@Ian_Colwell

  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