First time here? Check out the FAQ!


ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Autoware - Vehicle Interface Documentation?

asked Oct 23 '19

Patrick N. gravatar image

I am planning on implementing a vehicle interface to allow Autoware to control a vehicle my university owns. Based on the diagram from: https://github.com/autowarefoundation... it looks like the Autoware autonomy will publish an autoware_msgs/VehicleCmd and expect an autoware_msgs/VehicleStatus. But I can't find any definition of what is the expected behavior of the interface. For example, if the variable int32 emergency in autoware_msgs/VehicleCmd is set to something (don't even know the values it should take) what should be done? Any help would be greatly appreciated.

Preview: (hide)

Comments

Has the safety of this implementation been assessed?

swsllc gravatar image swsllc  ( Oct 30 '19 )edit

Considering it will be a non-commercial limited use case implementation, I doubt we will assess the safety of it.

Patrick N. gravatar image Patrick N.  ( Oct 31 '19 )edit

1 Answer

Sort by » oldest newest most voted
1

answered Oct 30 '19

Josh Whitley gravatar image

@patrick-n This is mostly up to the vehicle interface developer. The idea behind the generic autoware_msgs/VehicleCmd message is to provide several options for how the vehicle can be controlled and each drive-by-wire interface developer will handle the information provided in a different way. Unfortunately, there is currently no "developer guide" for compatibility of drive-by-wire systems with Autoware.ai.

Regarding the components of VehicleCmd, they are combined by the twist_gate node from several input topics:

The accel_cmd, brake_cmd, steer_cmd, gear_cmd, mode_cmd, and lamp_cmd values are populated by individual topics (named the same as the value names) which are published by upstream components. These comprise one method of vehicle control.

ctrl_cmd contains linear_acceleration, linear_velocity and steering_angle properties. This is another method of vehicle control.

twist_cmd contains a geometry_msgs/Twist message which, in turn, contains linear and angular components. This is another method of control.

Depending upon which components are enabled upstream and which options are set on them, different portions of this message will be populated. The typical methodology for how to handle this is either:

  1. Decide that you will only support one control method and inform your users.
  2. Listen to all components but create a priority order within your interface.

I'm sorry this isn't more straightforward but this is one of the tasks that the Autoware Vehicle Interface Working Group is trying to tackle. Please let me know if you have further questions.

Preview: (hide)

Comments

Thanks for the response. Do you know which package is most used for sending commands in Autoware?

Patrick N. gravatar image Patrick N.  ( Oct 31 '19 )edit

Question Tools

4 followers

Stats

Asked: Oct 23 '19

Seen: 1,481 times

Last updated: Oct 30 '19