diff --git a/README.md b/README.md index b7ec658..12e4d47 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,8 @@ Install dependencies: `sudo apt install ros-iron-desktop ros-iron-xacro` # How to get started -To use PacSim with your autonomous system, you need to create a message converter node to match your own interfaces with the simulator. -We provide an example launch file (example.launch.py) which shows an example of how to start the simulator node and the robot_state_publisher for the 3d visualization of the car. - -The sensors and vehicle model are configured using config files. Examples are provided in the config folder. Things such as the discipline or the path of the track file or config files are defined using ros2 parameters. - -The default vehicle model provided is rather simple and just meant to be a starting point. You are encouraged to integrate your own vehicle model by implementing the `IVehicleModel` class +To get started with using PacSim, take a look at the [Getting Started README](https://github.com/PacSim/pacsim/blob/master/doc/getting_started.md) here. # Contributing Contributions in any form (reports, feedback, requests, submissions) are welcome. Preferably create an Issue or Pull request for that. @@ -51,4 +46,4 @@ The initial version was developed at Elbflorace by: * Alexander Phieler (Main development) * Niklas Leukroth (Track and Config file parser) * Sergio Antuna (Artwork) -* Tim Hanel (3d car model integration) \ No newline at end of file +* Tim Hanel (3d car model integration) diff --git a/doc/getting_started.md b/doc/getting_started.md new file mode 100644 index 0000000..209361f --- /dev/null +++ b/doc/getting_started.md @@ -0,0 +1,29 @@ +# Getting started with PacSim + +## Interfaces +To use PacSim, you need to create a message converter node to match your own interfaces with the simulator. You will need to advertise and publish to some topics. Note that some topics are not directly used in the simulator with the default vehicle model provided. + +### Inputs + +| TOPIC | MESSAGE TYPE | DESCRIPTION | USED WITH DEFAULT MODEL? | +|------------------------------|----------------------------|---------------------------------------------------------------------------------------|---| +| /pacsim/steering_setpoint | pacsim::msg::StampedScalar | Target steering angle at the steering wheel/sensor (rad) | YES | +| /pacsim/powerground_setpoint | pacsim::msg::StampedScalar | Powered ground multiplier. 0 for no powered aero, 1 for full capacity (Dimensionless) | YES | +| /pacsim/wheelspeed_setpoints | pacsim::msg::Wheels | Target wheel speeds at each wheel's motor (RPM) | NO | +| /pacsim/torques_min | pacsim::msg::Wheels | Lower bound torque value at each wheel's motor (Nm) | NO | +| /pacsim/torques_max | pacsim::msg::Wheels | Upper bound torque value at each wheel's motor (Nm) | YES | + +### Outputs + +TBD + + +## Other notes + +The simulation's interfaces are provided so that motor controllers with an internal control loop for the wheel speeds (e.g. AMK or Electrophorus Engineering) can be fully modelled in the simulator. The default model does not contain this control loop. The values provided for `torques_max` are the actual torques applied to the wheels. + +The example launch file (example.launch.py) shows an example of how to start the simulator node and the robot_state_publisher for the 3D visualisation of the car. + +The sensors and vehicle model are configured using config files. Examples are provided in the config folder. Things such as the discipline or the path of the track file or config files are defined using ROS2 parameters. + +The default vehicle model provided is rather simple and just meant to be a starting point. You are encouraged to integrate your own vehicle model by implementing the `IVehicleModel` class.