RoboRacing Software Design
Nodes
circuit_race_steerer
generates steering for circuit races (2014 comp)
drag_race_end_detector
looks for the finish line of the drag race (2014 comp)
never really worked
consider light sensors pointed at ground?
subscribes to:
/image_raw
publishes to:
/image_end (for debugging)
/race_end
drag_race_steerer
generates steering commands from binary local map image
tends against steering the car (imu could improve this)
subscribes to:
/joint_frame
publishes to:
/steering_debug (for debugging)
/steering
frame_inverted
should be replaced by TF tree
marked for removal
frame_merger
combines lines and cones obstacle images into a joint frame
subscribes to:
/cones_img
/lines_img
publishes to:
/joint_frame
iarrc_circuit_race_controller
controls vehicle speed during the circuit race
iarrc_cone_detector
LIDAR-based cone detector
may or may not have been used at comp
goal was to compensate for noise in laser data
iarrc_dragrace_controller
controls vehicle speed during the drag race
iarrc_joystick
maps joystick input to motor control
subscribes to:
/joy
publishes to:
/steering
/speed
iarrc_line_detection
finds track lines in projected camera image
subscribes to:
/image_projected
publishes to:
/image_lines
/image_debug (for debugging)
iarrc_motor_relay_node
passes motor commands to chassis arduino
subscribes to:
/speed
/steering
iarrc_planner
generates steering angles for race conditions
expands obstacles in preprocessing
subscribes to:
/world_model
publishes to:
/steering
iarrc_scan_to_cloud
translates from 2D LIDAR data to 3D point cloud
subscribes to:
/scan
publishes to:
/cloud
iarrc_world_model
basically the same as frame_merger (used at 2015 comp)
subscribes to:
/image_lines
/obstacle_img
publishes to:
/world_model
image_publisher
not useful
marked for removal
pointcloud_to_image
translates 3D point cloud into local obstacle map
works well
subscribes to:
/cloud
publishes to:
/obstacle_img
projection
projects the camera images to the ground plane
subscribes to:
/ps3_eye/image_raw
publishes to:
/image_projected
stoplight_watcher
For starting races
watches for a stoplight to change from red to green
Worked well in testing
some problems at comp
variance in ambient lighting is breaking this
hardcoded variable for distance between lights should probably go away somehow
subscribes to:
/ps3_eye/image_raw
publishes to:
/image_circles (for debugging)
/light_change
visual_cone_detector
finds cones in camera image
needs a lot of work if we want it to stick around
may be a nice suplement for the lidar