Skip to content

AutoDRIVE-F1TENTH v0.3.0

Compare
Choose a tag to compare
@Tinker-Twins Tinker-Twins released this 02 Feb 15:04
· 27 commits to main since this release

Summary

  • Calibrated vehicle motion
  • Updated vehicle parameters
  • Updated open-loop vehicle control

Details

Calibrated and updated VESC parameters for drive motor and steering servo to comply with real-world metric units for vehicle motion in terms of linear velocity and steering angle (benchmarked against measuring tape as well as OptiTrack Mocap system). Following are the updated parameters:

Drive motor erpm (electrical rpm) = speed_to_erpm_gain * speed (meters / second) + speed_to_erpm_offset

speed_to_erpm_gain: 7300
speed_to_erpm_offset: 250

Steer servo value (0 to 1) = steering_angle_to_servo_gain * steering angle (radians) + steering_angle_to_servo_offset

steering_angle_to_servo_gain: -0.6
steering_angle_to_servo_offset: 0.435

Updated autodrive package to facilitate open-loop vehicle control with/without Gaussian noise (sampled from normal distribution).

Modified open loop controller script in autodrive package (and corresponding launch file in racecar package of f1tenth) to support skid-pad, fishhook & slalom tests while accepting command line arguments for:

  • velocity Linear velocity in m/s
  • steering Steering angle in rad
  • velocity_noise Standard deviation of Gaussian noise in linear velocity (usually 0.1)
  • steering_noise Standard deviation of Gaussian noise in angular velocity (usually 0.1)

Updated teleop.py script from autodrive package with limits & step sizes for vehicle actuation.

  • drive Command referes to throttle/brake/reverse input to the vehicle
  • steer Command refers to steering input to the vehicle
  • DRIVE_LIMIT Refers to maximum limit on throttle/brake/reverse input to the vehicle
  • STEER_LIMIT Refers to maximum limit on steering input to the vehicle
  • DRIVE_STEP_SIZE Refers to variation in throttle/brake/reverse input to the vehicle upon one press of a key
  • STEER_STEP_SIZE Refers to variation in steering input to the vehicle upon one press of a key
  • DRIVE_LIMIT = 2.5 (or 1.5 for slow, easy - more "controllable" experience - represented in m/s)
  • STEER_LIMIT = 0.52 (0.52 rad is physical steering limit of vehicle, reduce to constrain the vehicle)
  • DRIVE_STEP_SIZE = 0.5 (increase/decrease to get coarser/finer throttle/brake/reverse variation)
  • STEER_STEP_SIZE = 0.52 (or 0.26 for multi-step steering variation, reduce for finer control resolution)

Added topic throttling functionality (through mocap_data_recording.launch file option) for synchronously recording vehicle states (via motion-capture system) and control inputs (via open/closed loop control or teleoperation) while accepting command line arguments for:

  • rosbag_dir Path to the directory to save the recorded bag file
  • rosbag_name Name of the recorded bag file