RoboRacing Software Design

From RoboJackets Wiki
Jump to navigation Jump to search

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