f1tenth_system
April 9, 2022 ยท View on GitHub
Drivers onboard f1tenth race cars. This branch is under development for migration to ROS2. See the documentation of F1TENTH on how to get started.
Deadman's switch
On Logitech F-710 joysticks, the LB button is the deadman's switch for teleop, and the RB button is the deadman's switch for navigation. You can also remap buttons. See how on the readthedocs documentation.
Topics
Topics that the driver stack subscribe to
/drive: Topic for autonomous navigation, usesAckermannDriveStampedmessages.
Sensor topics published by the driver stack
/scan: Topic forLaserScanmessages./odom: Topic forOdometrymessages./sensors/imu/raw: Topic forImumessages./sensors/core: Topic for telemetry data from the VESC
External Dependencies
- ackermann_msgs https://index.ros.org/r/ackermann_msgs/#foxy.
- urg_node https://index.ros.org/p/urg_node/#foxy. This is the driver for Hokuyo LiDARs.
- joy https://index.ros.org/p/joy/#foxy. This is the driver for joysticks in ROS 2.
- teleop_tools https://index.ros.org/p/teleop_tools/#foxy. This is the package for teleop with joysticks in ROS 2.
- vesc GitHub - f1tenth/vesc at ros2. This is the driver for VESCs in ROS 2.
- ackermann_mux GitHub - f1tenth/ackermann_mux: Twist multiplexer. This is a package for multiplexing ackermann messages in ROS 2.
Package in this repo
- f1tenth_stack: maintains the bringup launch and all parameter files
Nodes launched in bringup
- joy
- joy_teleop
- ackermann_to_vesc_node
- vesc_to_odom_node
- vesc_driver_node
- urg_node
- ackermann_mux
Parameters and topics for dependencies
vesc_driver
- Parameters:
- duty_cycle_min, duty_cycle_max
- current_min, current_max
- brake_min, brake_max
- speed_min, speed_max
- position_min, position_max
- servo_min, servo_max
- Publishes to:
- sensors/core
- sensors/servo_position_command
- sensors/imu
- sensors/imu/raw
- Subscribes to:
- commands/motor/duty_cycle
- commands/motor/current
- commands/motor/brake
- commands/motor/speed
- commands/motor/position
- commands/servo/position
ackermann_to_vesc
- Parameters:
- speed_to_erpm_gain
- speed_to_erpm_offset
- steering_angle_to_servo_gain
- steering_angle_to_servo_offset
- Publishes to:
- ackermann_cmd
- Subscribes to:
- commands/motor/speed
- commands/servo/position
vesc_to_odom
- Parameters:
- odom_frame
- base_frame
- use_servo_cmd_to_calc_angular_velocity
- speed_to_erpm_gain
- speed_to_erpm_offset
- steering_angle_to_servo_gain
- steering_angle_to_servo_offset
- wheelbase
- publish_tf
- Publishes to:
- odom
- Subscribes to:
- sensors/core
- sensors/servo_position_command
throttle_interpolator
- Parameters:
- rpm_input_topic
- rpm_output_topic
- servo_input_topic
- servo_output_topic
- max_acceleration
- speed_max
- speed_min
- throttle_smoother_rate
- speed_to_erpm_gain
- max_servo_speed
- steering_angle_to_servo_gain
- servo_smoother_rate
- servo_max
- servo_min
- steering_angle_to_servo_offset
- Publishes to:
- topic described in rpm_output_topic
- topic described in servo_output_topic
- Subscribes to:
- topic described in rpm_input_topic
- topic described in servo_input_topic