Control Lexus RX450h via AStuff PACMod w/o SSC

Hi all,

We got a brand new Lexus RX450h and ready to retrofit it on AS solution. We noticed that the SSC was an option software , and Autoware used to provide a branch for PACMod to control vehicle without node SSC. But the branch seems to be deleted on recent release. My question is, how could we control the vehicle via PACMod without SSC? Or SSC is going to be a MUST node since ssc_interface release?

@kavwang - Big disclaimer: I’m the Lead Software Engineer with AutonomouStuff and I helped develop SSC.

What you’re asking for does not currently exist in Autoware. However, it is certainly possible to develop the missing pieces yourself. The PACMod driver is open-source (https://github.com/astuff/pacmod3) as is the pacmod_msgs package (https://github.com/astuff/astuff_sensor_msgs). Both of these can also be installed from apt. The basic commands that are necessary to control the vehicle are the Accelerator command (pacmod_msgs/SystemCmdFloat), the Brake command (pacmod_msgs/SystemCmdFloat), the Steering command (pacmod_msgs/SteeringCmd), and the Gear command (pacmod_msgs/SystemCmdInt). There are other systems that can be controlled, but these are the basics for lateral and longitudinal control of the vehicle.

One of the jobs of the SSC is to take a desired curvature (Autoware actually produces a desired lateral angle but the SSC Interface turns it into a curvature) and calculate a desired steering wheel angle using a vehicle model defined by a set of user-configurable parameters and limits fed into a variable Ackermann-style steering model. SSC also comes with a set of these parameters tuned specifically for the Lexus RX 450h in a configuration file. It then passes that steering angle on to the PACMod driver.

The second major function of the SSC is to take a desired speed from Autoware and convert it into accelerator and brake pedal commands. It does this using another set of user-configurable parameters (which are also provided, pre-tuned for the 450h, in a configuration file) as inputs and limits to a heavily-modified, multi-stage PID algorithm. This is how we acheive very precise, yet smooth acceleration and deceleration control.

Finally, the SSC also manages the enabled and disabled state of each individual system; automatically manages the desired gear based on the current gear, the requested speed, and the current system status; and monitors and handles the failure of upstream and inter-node communication (with a user-defined failure mode).

So, in short: it is possible to do all of this yourself. However, (and I’m being honest) you are very unlikely to be able to do it internally for less than the cost of SSC.

1 Like

Hi JWhitleyWork,

I have been following you for months and I truly appreciate the kind of effort you put into answering people’s queries and questions. Firstly, I would like to thank you for all the effort you have put into in this field that have helped beginners like us in the self driving research and field. Secondly I have a very simple question. I have a polaris gem vechilce( with pacmod) and autoware installed in my nvidia PX2. How do i control the vehicle? Could you provide me some ideas regarding this.

Thank you,
Sudip

@Soodep_Dhakal Thank you for the kind words! Since this is more of a new question, would you mind asking it on ROS Answers with the tag Autoware? I will help you to the best of my abilities.

Thank you for the reply JWhitleyWork. I really appreciate your response. Like you said, I have my question in ros answers with the autoware tagline. I hope to get your response. Thank you!