├── map ├── race_track.pgm └── race_track.yaml ├── urdf ├── meshes │ ├── chassis.stl │ ├── hinge.stl │ ├── hokuyo.stl │ ├── left_wheel.stl │ └── right_wheel.stl ├── macros.xacro └── xacros │ └── macros.xacro.normal ├── world ├── models │ ├── monza_track │ │ ├── monza_track.stl │ │ ├── model.config │ │ └── model.sdf │ ├── interlagos_track │ │ ├── interlagos_track.stl │ │ ├── model.config │ │ └── model.sdf │ ├── silverstone_track │ │ ├── silverstone_track.stl │ │ ├── model.config │ │ └── model.sdf │ └── asphalt_plane │ │ ├── materials │ │ ├── textures │ │ │ └── tarmac.png │ │ └── scripts │ │ │ └── asphalt.material │ │ ├── model.config │ │ ├── model.sdf │ │ └── model-1_4.sdf ├── monza_track.world ├── interlagos_track.world └── silverstone_track.world ├── launch ├── car_1.access ├── car_2.access ├── car_3.access ├── monza.master ├── interlagos.master └── silverstone.master ├── config ├── control.yaml ├── one_car.launch.xml └── vehicle_class.launch.xml ├── utils └── laser_to_pcd_ros.py ├── scripts ├── keyboard_teleop.py └── command_multiplexer.py ├── src ├── set_racecar_state.py └── control_plugin.py ├── package.xml ├── rviz ├── TA_inst_demo_car.rviz ├── car_2.rviz ├── car_3.rviz ├── car_5.rviz ├── car_6.rviz ├── car_7.rviz ├── car_8.rviz ├── car_4.rviz └── car_1.rviz ├── README.md ├── CMakeLists.txt └── LICENSE /map/race_track.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/map/race_track.pgm -------------------------------------------------------------------------------- /urdf/meshes/chassis.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/urdf/meshes/chassis.stl -------------------------------------------------------------------------------- /urdf/meshes/hinge.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/urdf/meshes/hinge.stl -------------------------------------------------------------------------------- /urdf/meshes/hokuyo.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/urdf/meshes/hokuyo.stl -------------------------------------------------------------------------------- /urdf/meshes/left_wheel.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/urdf/meshes/left_wheel.stl -------------------------------------------------------------------------------- /urdf/meshes/right_wheel.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/urdf/meshes/right_wheel.stl -------------------------------------------------------------------------------- /world/models/monza_track/monza_track.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/world/models/monza_track/monza_track.stl -------------------------------------------------------------------------------- /world/models/interlagos_track/interlagos_track.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/world/models/interlagos_track/interlagos_track.stl -------------------------------------------------------------------------------- /world/models/silverstone_track/silverstone_track.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/world/models/silverstone_track/silverstone_track.stl -------------------------------------------------------------------------------- /world/models/asphalt_plane/materials/textures/tarmac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f1tenth-dev/simulator/HEAD/world/models/asphalt_plane/materials/textures/tarmac.png -------------------------------------------------------------------------------- /map/race_track.yaml: -------------------------------------------------------------------------------- 1 | image: race_track.pgm 2 | resolution: 0.050000 3 | origin: [-30.024998, -30.024998, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /world/models/monza_track/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | monza_track 6 | 1.0 7 | model.sdf 8 | 9 | Varundev Sukhil 10 | varundev@virginia.edu 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /world/models/interlagos_track/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | interlagos_track 6 | 1.0 7 | model.sdf 8 | 9 | Varundev Sukhil 10 | varundev@virginia.edu 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /world/models/silverstone_track/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | silverstone_track 6 | 1.0 7 | model.sdf 8 | 9 | Varundev Sukhil 10 | varundev@virginia.edu 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /world/models/asphalt_plane/materials/scripts/asphalt.material: -------------------------------------------------------------------------------- 1 | material vrc/asphalt 2 | { 3 | technique 4 | { 5 | pass 6 | { 7 | ambient 0.5 0.5 0.5 1.0 8 | diffuse 0.5 0.5 0.5 1.0 9 | specular 0.2 0.2 0.2 1.0 12.5 10 | 11 | texture_unit 12 | { 13 | texture tarmac.png 14 | filtering anistropic 15 | max_anisotropy 16 16 | scale 0.1 0.1 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /world/models/asphalt_plane/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Asphalt Plane 5 | 1.0 6 | model-1_4.sdf 7 | model.sdf 8 | 9 | 10 | Thomas Koletschka 11 | thomas.koletschka@gmail.com 12 | 13 | 14 | 15 | An asphalt textured plane. 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /world/models/monza_track/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | model://f1tenth-sim/world/monza_track/monza_track.stl 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | model://f1tenth-sim/world/monza_track/monza_track.stl 21 | 22 | 23 | 24 | 25 | 26 | 27 | 1 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /world/models/interlagos_track/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | model://f1tenth-sim/world/interlagos_track/interlagos_track.stl 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | model://f1tenth-sim/world/interlagos_track/interlagos_track.stl 21 | 22 | 23 | 24 | 25 | 26 | 27 | 1 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /world/models/silverstone_track/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | model://f1tenth-sim/world/silverstone_track/silverstone_track.stl 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | model://f1tenth-sim/world/silverstone_track/silverstone_track.stl 21 | 22 | 23 | 24 | 25 | 26 | 27 | 1 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /world/models/asphalt_plane/model.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 20 20 .1 10 | 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 20 20 .1 18 | 19 | 20 | 21 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /world/models/asphalt_plane/model-1_4.sdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | 6 | 7 | 8 | 9 | 20 20 .1 10 | 11 | 12 | 13 | 14 | false 15 | 16 | 17 | 20 20 .1 18 | 19 | 20 | 21 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /launch/car_1.access: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /launch/car_2.access: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /launch/car_3.access: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /config/control.yaml: -------------------------------------------------------------------------------- 1 | # F1/10 individual vehicle control parameters (copy as needed) 2 | # Author: Varundev Suresh Babu 3 | # Date: 06/21/2019 4 | 5 | joint_state_controller: 6 | type: joint_state_controller/JointStateController 7 | publish_rate: 50 8 | 9 | left_rear_wheel_velocity_controller: 10 | type: effort_controllers/JointVelocityController 11 | pid: { p: 1.0, i: 0.0, d: 0.0, i_clamp: 0.0 } 12 | 13 | right_rear_wheel_velocity_controller: 14 | type: effort_controllers/JointVelocityController 15 | pid: { p: 1.0, i: 0.0, d: 0.0, i_clamp: 0.0 } 16 | 17 | left_front_wheel_velocity_controller: 18 | type: effort_controllers/JointVelocityController 19 | pid: { p: 0.5, i: 0.0, d: 0.0, i_clamp: 0.0 } 20 | 21 | right_front_wheel_velocity_controller: 22 | type: effort_controllers/JointVelocityController 23 | pid: { p: 0.5, i: 0.0, d: 0.0, i_clamp: 0.0 } 24 | 25 | left_steering_hinge_position_controller: 26 | type: effort_controllers/JointPositionController 27 | pid: { p: 1.0, i: 0.0, d: 0.5 } 28 | 29 | right_steering_hinge_position_controller: 30 | type: effort_controllers/JointPositionController 31 | pid: { p: 1.0, i: 0.0, d: 0.5 } 32 | -------------------------------------------------------------------------------- /launch/monza.master: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | 35 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /launch/interlagos.master: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | 35 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /launch/silverstone.master: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | 35 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /utils/laser_to_pcd_ros.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sensor_msgs.point_cloud2 as pc2 4 | import rospy 5 | from sensor_msgs.msg import PointCloud2, LaserScan 6 | import laser_geometry.laser_geometry as lg 7 | import math 8 | 9 | rospy.init_node('laserscan_to_pointcloud') 10 | 11 | lp = lg.LaserProjection() 12 | 13 | pc_pub = rospy.Publisher('converted_pc', PointCloud2, queue_size = 1) 14 | 15 | def scan_cb(msg): 16 | # convert the message of type LaserScan to a PointCloud2 17 | pc2_msg = lp.projectLaser(msg) 18 | 19 | # now we can do something with the PointCloud2 for example: 20 | # publish it 21 | pc_pub.publish(pc2_msg) 22 | 23 | # convert it to a generator of the individual points 24 | point_generator = pc2.read_points(pc2_msg) 25 | 26 | 27 | # we can access a generator in a loop 28 | sum = 0.0 29 | num = 0 30 | for point in point_generator: 31 | if not math.isnan(point[2]): 32 | sum += point[2] 33 | num += 1 34 | # we can calculate the average z value for example 35 | print(str(sum/num)) 36 | 37 | # or a list of the individual points which is less efficient 38 | point_list = pc2.read_points_list(pc2_msg) 39 | 40 | # we can access the point list with an index, each element is a namedtuple 41 | # we can access the elements by name, the generator does not yield namedtuples! 42 | # if we convert it to a list and back this possibility is lost 43 | print(point_list[len(point_list)/2].x) 44 | 45 | 46 | 47 | rospy.Subscriber('/car_1/scan', LaserScan, scan_cb, queue_size = 1) 48 | rospy.spin() 49 | -------------------------------------------------------------------------------- /scripts/keyboard_teleop.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | import sys 5 | import select 6 | import termios 7 | import tty 8 | 9 | from ackermann_msgs.msg import AckermannDrive 10 | 11 | keyBindings = {'w':(1.0, 0.0), # move forward 12 | 'd':(1.0, -1.0), # move foward and right 13 | 'a':(1.0 , 1.0), # move forward and left 14 | 's':(-1.0, 0.0), # move reverse 15 | 'q':(0.0, 0.0)} # all stop 16 | 17 | speed_limit = 0.250 18 | angle_limit = 0.325 19 | 20 | def getKey(): 21 | tty.setraw(sys.stdin.fileno()) 22 | select.select([sys.stdin], [], [], 0) 23 | key = sys.stdin.read(1) 24 | termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) 25 | return key 26 | 27 | def vels(speed, turn): 28 | return 'currently:\tspeed {}\tturn {}'.format(speed, turn) 29 | 30 | if __name__== '__main__': 31 | settings = termios.tcgetattr(sys.stdin) 32 | command_pub = rospy.Publisher('/{}/teleop/command'.format(str(sys.argv[1])), AckermannDrive, queue_size = 1) 33 | rospy.init_node('keyboard_teleop', anonymous = True) 34 | 35 | speed = 0.0 36 | angle = 0.0 37 | status = 0.0 38 | 39 | try: 40 | while True: 41 | key = getKey() 42 | if key in keyBindings.keys(): 43 | speed = keyBindings[key][0] 44 | angle = keyBindings[key][1] 45 | else: 46 | speed = 0.0 47 | angle = 0.0 48 | if (key == '\x03'): 49 | break 50 | command = AckermannDrive(); 51 | command.speed = speed * speed_limit 52 | command.steering_angle = angle * angle_limit 53 | command_pub.publish(command) 54 | 55 | except: 56 | print('raise exception: key binding error') 57 | 58 | finally: 59 | command = AckermannDrive(); 60 | command.speed = speed * speed_limit 61 | command.steering_angle = angle * angle_limit 62 | command_pub.publish(command) 63 | 64 | termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings) 65 | -------------------------------------------------------------------------------- /src/set_racecar_state.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | import rospkg 5 | import sys 6 | 7 | from gazebo_msgs.msg import ModelState 8 | from gazebo_msgs.srv import SetModelState 9 | 10 | car_name = str(sys.argv[1]) 11 | acceptable_reset = ['true', 'True', '1', '1.0'] 12 | loop_quit = False 13 | # x_pos = float(sys.argv[2]) 14 | # y_pos = float(sys.argv[3]) 15 | # z_pos = float(sys.argv[4]) 16 | # x_vel = float(sys.argv[5]) 17 | # y_vel = float(sys.argv[6]) 18 | # z_vel = float(sys.argv[7]) 19 | car_1_reset_pose = [-9.0, -5.0, 0.0] 20 | car_2_reset_pose = [-7.0, -5.0, 0.0] 21 | car_3_reset_pose = [-5.0, -5.0, 0.0] 22 | car_4_reset_pose = [-3.0, -5.0, 0.0] 23 | car_5_reset_pose = [-1.0, -5.0, 0.0] 24 | car_6_reset_pose = [ 1.0, -5.0, 0.0] 25 | car_7_reset_pose = [ 3.0, -5.0, 0.0] 26 | car_8_reset_pose = [ 5.0, -5.0, 0.0] 27 | frame_id = 'odom' 28 | 29 | rospy.set_param('/{}/reset_to_pit_stop'.format(car_name), 'False') 30 | 31 | def racecar_reset_state(): 32 | rospy.init_node('racecar_reset_pit_stop', anonymous = True) 33 | 34 | state_msg = ModelState() 35 | state_msg.model_name = car_name 36 | exec('state_msg.pose.position.x = {}_reset_pose[0]'.format(car_name)) 37 | exec('state_msg.pose.position.y = {}_reset_pose[1]'.format(car_name)) 38 | exec('state_msg.pose.position.z = {}_reset_pose[2]'.format(car_name)) 39 | state_msg.pose.orientation.x = 0.0 40 | state_msg.pose.orientation.y = 0.0 41 | state_msg.pose.orientation.z = 0.0 42 | state_msg.pose.orientation.w = 0.0 43 | 44 | rospy.wait_for_service('/gazebo/set_model_state') 45 | try: 46 | set_state = rospy.ServiceProxy('/gazebo/set_model_state', SetModelState) 47 | resp = set_state(state_msg) 48 | 49 | except rospy.ServiceException, error_msg: 50 | print("Service call failed: %s" % error_msg) 51 | 52 | if __name__ == '__main__': 53 | try: 54 | while not loop_quit: 55 | if str(rospy.get_param('/{}/reset_to_pit_stop'.format(car_name))) in acceptable_reset: 56 | racecar_reset_state() 57 | rospy.set_param('/{}/reset_to_pit_stop'.format(car_name), 'False') 58 | except rospy.ROSInterruptException: 59 | pass 60 | -------------------------------------------------------------------------------- /config/one_car.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /scripts/command_multiplexer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | import sys 5 | 6 | from sensor_msgs.msg import Joy 7 | from ackermann_msgs.msg import AckermannDrive 8 | 9 | global current_command_topic 10 | global offboard_command 11 | 12 | car_name = str(sys.argv[1]) 13 | listen_offboard = str(sys.argv[2]) 14 | joy_angle_axis = 2 15 | joy_angle_scaler = 1.0 16 | joy_speed_axis = 1 17 | joy_speed_scaler = 0.5 18 | ctl_offboard_button = 7 19 | ctl_teleop_button = 6 20 | command_topic = ['offboard/command', 21 | 'teleop/command'] 22 | log_message = 'control priority assigned to - {}' 23 | control_priority = ['JTX2_OFFBOARD', 24 | 'REMOTE_LOGITECH'] 25 | current_command_topic = 'teleop/command' 26 | message_display = [False, False] 27 | multiplexer_pub = rospy.Publisher('/{}/multiplexer/command'.format(car_name), AckermannDrive, queue_size = 1) 28 | offboard_command = AckermannDrive() 29 | 30 | def offboard_callback(data): 31 | global offboard_command 32 | offboard_command.steering_angle = -1.0 * data.steering_angle 33 | offboard_command.speed = data.speed 34 | 35 | def joy_command_callback(data): 36 | global current_command_topic 37 | global offboard_command 38 | passthrough_command = AckermannDrive() 39 | # listen to control transfer commands 40 | if data.buttons[ctl_offboard_button] and not data.buttons[ctl_teleop_button]: 41 | if not message_display[0]: 42 | rospy.loginfo(log_message.format(control_priority[0])) 43 | message_display[0] = True 44 | message_display[1] = False 45 | if current_command_topic != command_topic[0]: 46 | current_command_topic = command_topic[0] 47 | if not data.buttons[ctl_offboard_button] and data.buttons[ctl_teleop_button]: 48 | if not message_display[1]: 49 | rospy.loginfo(log_message.format(control_priority[1])) 50 | message_display[0] = False 51 | message_display[1] = True 52 | if current_command_topic != command_topic[1]: 53 | current_command_topic = command_topic[1] 54 | if current_command_topic == command_topic[1]: 55 | # identify and scale raw command data 56 | passthrough_command.steering_angle = data.axes[joy_angle_axis] * joy_angle_scaler 57 | passthrough_command.speed = data.axes[joy_speed_axis] * joy_speed_scaler 58 | elif current_command_topic == command_topic[0] and listen_offboard == 'true': 59 | passthrough_command = offboard_command 60 | multiplexer_pub.publish(passthrough_command) 61 | 62 | if __name__ == '__main__': 63 | try: 64 | rospy.init_node('command_multiplexer', anonymous = True) 65 | if listen_offboard == 'true': 66 | rospy.Subscriber('/{}/offboard/command'.format(car_name), AckermannDrive, offboard_callback) 67 | rospy.Subscriber('/{}/joy'.format(car_name), Joy, joy_command_callback) 68 | rospy.spin() 69 | except rospy.ROSInterruptException: 70 | pass 71 | -------------------------------------------------------------------------------- /config/vehicle_class.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 35 | 36 | 37 | 41 | 42 | 43 | 44 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | f1tenth-sim 4 | 0.2.0 5 | UVA F1/10 Autonomous Racecar Simulator 6 | 7 | 8 | 9 | 10 | Varundev Suresh Babu 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | gazebo_ros 53 | geometry_msgs 54 | nav_msgs 55 | rospy 56 | sensor_msgs 57 | std_msgs 58 | tf 59 | message_generation 60 | 61 | gazebo_ros 62 | geometry_msgs 63 | nav_msgs 64 | rospy 65 | sensor_msgs 66 | std_msgs 67 | tf 68 | 69 | gazebo_ros 70 | geometry_msgs 71 | nav_msgs 72 | rospy 73 | sensor_msgs 74 | std_msgs 75 | tf 76 | message_runtime 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /src/control_plugin.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | import math 5 | import sys 6 | import tf2_ros 7 | 8 | from std_msgs.msg import Header 9 | from std_msgs.msg import Bool 10 | from std_msgs.msg import Float64 11 | from ackermann_msgs.msg import AckermannDrive 12 | from geometry_msgs.msg import Point32 13 | from geometry_msgs.msg import PolygonStamped 14 | from geometry_msgs.msg import Transform 15 | from geometry_msgs.msg import TransformStamped 16 | from nav_msgs.msg import Odometry 17 | 18 | # vehicle name 19 | 20 | car_name = str(sys.argv[1]) 21 | x_offset = float(sys.argv[2]) 22 | y_offset = float(sys.argv[3]) 23 | 24 | # subscriber topics 25 | 26 | gazebo_odom_topic = '/{}/ground_truth'.format(car_name) 27 | command_topic = '/{}/multiplexer/command'.format(car_name) 28 | 29 | # publisher topics 30 | 31 | odom_pub_topic = '/{}/base/odom'.format(car_name) 32 | footprint_topic = '/{}/base/footprint'.format(car_name) 33 | 34 | # control topics 35 | 36 | LRW_topic = '/{}/left_rear_wheel_velocity_controller/command'.format(car_name) 37 | RRW_topic = '/{}/right_rear_wheel_velocity_controller/command'.format(car_name) 38 | LFW_topic = '/{}/left_front_wheel_velocity_controller/command'.format(car_name) 39 | RFW_topic = '/{}/right_front_wheel_velocity_controller/command'.format(car_name) 40 | LSH_topic = '/{}/left_steering_hinge_position_controller/command'.format(car_name) 41 | RSH_topic = '/{}/right_steering_hinge_position_controller/command'.format(car_name) 42 | 43 | # frame names 44 | 45 | odom_frame = 'odom' 46 | base_frame = '{}_base_link'.format(car_name) 47 | 48 | # information publishers 49 | 50 | footprint_pub = rospy.Publisher(footprint_topic, PolygonStamped, queue_size = 1) 51 | odom_pub = rospy.Publisher(odom_pub_topic, Odometry, queue_size = 1) 52 | tf_pub = tf2_ros.TransformBroadcaster() 53 | 54 | # control publishers 55 | 56 | pub_vel_LRW = rospy.Publisher(LRW_topic, Float64, queue_size = 1) 57 | pub_vel_RRW = rospy.Publisher(RRW_topic, Float64, queue_size = 1) 58 | pub_vel_LFW = rospy.Publisher(LFW_topic, Float64, queue_size = 1) 59 | pub_vel_RFW = rospy.Publisher(RFW_topic, Float64, queue_size = 1) 60 | pub_pos_LSH = rospy.Publisher(LSH_topic, Float64, queue_size = 1) 61 | pub_pos_RSH = rospy.Publisher(RSH_topic, Float64, queue_size = 1) 62 | 63 | # footprint parameters 64 | 65 | global seq 66 | 67 | seq = 0 68 | footprint = PolygonStamped() 69 | 70 | side_A = Point32() 71 | side_B = Point32() 72 | side_C = Point32() 73 | side_D = Point32() 74 | side_E = Point32() 75 | 76 | [side_A.x, side_A.y, side_A.z] = [-0.1, -0.2, 0.0] 77 | [side_B.x, side_B.y, side_B.z] = [ 0.5, -0.2, 0.0] 78 | [side_C.x, side_C.y, side_C.z] = [ 0.6, 0.0, 0.0] 79 | [side_D.x, side_D.y, side_D.z] = [ 0.5, 0.2, 0.0] 80 | [side_E.x, side_E.y, side_E.z] = [-0.1, 0.2, 0.0] 81 | 82 | footprint.header.frame_id = base_frame 83 | footprint.polygon.points = [side_A, side_B, side_C, side_D, side_E] 84 | 85 | # footprint visualizer 86 | 87 | def footprint_visualizer(): 88 | 89 | global seq 90 | 91 | footprint.header.seq = seq 92 | seq = seq + 1 93 | footprint.header.stamp = rospy.Time.now() 94 | footprint_pub.publish(footprint) 95 | 96 | def odom_callback(data): 97 | 98 | odom = Odometry() 99 | odom.header.frame_id = odom_frame 100 | odom.child_frame_id = base_frame 101 | odom.header.stamp = rospy.Time.now() 102 | odom.pose = data.pose 103 | odom.pose.pose.position.x = odom.pose.pose.position.x - x_offset 104 | odom.pose.pose.position.y = odom.pose.pose.position.y - y_offset 105 | odom.twist = data.twist 106 | 107 | tf = TransformStamped(header = Header( 108 | frame_id = odom.header.frame_id, 109 | stamp = odom.header.stamp), 110 | child_frame_id = odom.child_frame_id, 111 | transform = Transform( 112 | translation = odom.pose.pose.position, 113 | rotation = odom.pose.pose.orientation)) 114 | 115 | # visualize footprint everytime odom changes 116 | 117 | footprint_visualizer() 118 | 119 | odom_pub.publish(odom) 120 | tf_pub.sendTransform(tf) 121 | 122 | # command variables 123 | 124 | global previous_speed 125 | 126 | previous_speed = 0.0 127 | min_speed = 0.0 128 | max_speed = 80.0 # 100.0 129 | speed_delta = 5.0 # 1.25 130 | previous_speed = 0.0 131 | 132 | # command callback 133 | 134 | def command_callback(data): 135 | 136 | global previous_speed 137 | 138 | steering_angle = Float64() 139 | speed = Float64() 140 | 141 | steering_angle.data = data.steering_angle * 0.65 142 | speed.data = data.speed * max_speed 143 | 144 | ''' 145 | if speed.data >= previous_speed + speed_delta: 146 | speed.data = previous_speed + speed_delta 147 | elif speed.data <= previous_speed - speed_delta: 148 | speed.data = previous_speed - speed_delta 149 | 150 | if speed.data > max_speed: 151 | speed.data = max_speed 152 | elif speed.data < min_speed: 153 | speed.data = min_speed 154 | 155 | previous_speed = speed.data 156 | 157 | if abs(speed.data) < speed_delta: 158 | speed.data = 0.0 159 | previous_speed = 0.0 160 | ''' 161 | 162 | pub_vel_LRW.publish(speed) 163 | pub_vel_RRW.publish(speed) 164 | pub_vel_LFW.publish(speed) 165 | pub_vel_RFW.publish(speed) 166 | 167 | pub_pos_LSH.publish(steering_angle) 168 | pub_pos_RSH.publish(steering_angle) 169 | 170 | if __name__ == '__main__': 171 | 172 | try: 173 | 174 | rospy.init_node('control_plugin', anonymous = True) 175 | 176 | rospy.Subscriber(gazebo_odom_topic, Odometry, odom_callback) 177 | rospy.Subscriber(command_topic, AckermannDrive, command_callback) 178 | 179 | rospy.spin() 180 | 181 | except rospy.ROSInterruptException: 182 | 183 | pass 184 | -------------------------------------------------------------------------------- /rviz/TA_inst_demo_car.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | - /Status1 9 | Splitter Ratio: 0.5 10 | Tree Height: 634 11 | - Class: rviz/Selection 12 | Name: Selection 13 | - Class: rviz/Tool Properties 14 | Expanded: 15 | - /2D Pose Estimate1 16 | - /2D Nav Goal1 17 | - /Publish Point1 18 | Name: Tool Properties 19 | Splitter Ratio: 0.5886790156364441 20 | - Class: rviz/Views 21 | Expanded: 22 | - /Current View1 23 | Name: Views 24 | Splitter Ratio: 0.5 25 | - Class: rviz/Time 26 | Experimental: false 27 | Name: Time 28 | SyncMode: 0 29 | SyncSource: LaserScan 30 | Preferences: 31 | PromptSaveOnExit: true 32 | Toolbars: 33 | toolButtonStyle: 2 34 | Visualization Manager: 35 | Class: "" 36 | Displays: 37 | - Alpha: 0.5 38 | Cell Size: 1 39 | Class: rviz/Grid 40 | Color: 160; 160; 164 41 | Enabled: true 42 | Line Style: 43 | Line Width: 0.029999999329447746 44 | Value: Lines 45 | Name: Grid 46 | Normal Cell Count: 0 47 | Offset: 48 | X: 0 49 | Y: 0 50 | Z: 0 51 | Plane: XY 52 | Plane Cell Count: 10 53 | Reference Frame: 54 | Value: true 55 | - Alpha: 1 56 | Class: rviz/Polygon 57 | Color: 25; 255; 0 58 | Enabled: true 59 | Name: Polygon 60 | Topic: /TA_inst_demo_car/base/footprint 61 | Unreliable: false 62 | Value: true 63 | - Alpha: 1 64 | Autocompute Intensity Bounds: true 65 | Autocompute Value Bounds: 66 | Max Value: 10 67 | Min Value: -10 68 | Value: true 69 | Axis: Z 70 | Channel Name: intensity 71 | Class: rviz/LaserScan 72 | Color: 255; 255; 255 73 | Color Transformer: Intensity 74 | Decay Time: 0 75 | Enabled: true 76 | Invert Rainbow: false 77 | Max Color: 255; 255; 255 78 | Max Intensity: 0 79 | Min Color: 0; 0; 0 80 | Min Intensity: 0 81 | Name: LaserScan 82 | Position Transformer: XYZ 83 | Queue Size: 10 84 | Selectable: true 85 | Size (Pixels): 3 86 | Size (m): 0.009999999776482582 87 | Style: Flat Squares 88 | Topic: /TA_inst_demo_car/scan 89 | Unreliable: false 90 | Use Fixed Frame: true 91 | Use rainbow: true 92 | Value: true 93 | - Class: rviz/Image 94 | Enabled: true 95 | Image Topic: /TA_inst_demo_car/camera/image 96 | Max Value: 1 97 | Median window: 5 98 | Min Value: 0 99 | Name: Image 100 | Normalize Range: true 101 | Queue Size: 2 102 | Transport Hint: raw 103 | Unreliable: false 104 | Value: true 105 | Enabled: true 106 | Global Options: 107 | Background Color: 48; 48; 48 108 | Default Light: true 109 | Fixed Frame: TA_inst_demo_car_base_link 110 | Frame Rate: 30 111 | Name: root 112 | Tools: 113 | - Class: rviz/Interact 114 | Hide Inactive Objects: true 115 | - Class: rviz/MoveCamera 116 | - Class: rviz/Select 117 | - Class: rviz/FocusCamera 118 | - Class: rviz/Measure 119 | - Class: rviz/SetInitialPose 120 | Theta std deviation: 0.2617993950843811 121 | Topic: /initialpose 122 | X std deviation: 0.5 123 | Y std deviation: 0.5 124 | - Class: rviz/SetGoal 125 | Topic: /move_base_simple/goal 126 | - Class: rviz/PublishPoint 127 | Single click: true 128 | Topic: /clicked_point 129 | Value: true 130 | Views: 131 | Current: 132 | Class: rviz/Orbit 133 | Distance: 7 134 | Enable Stereo Rendering: 135 | Stereo Eye Separation: 0.05999999865889549 136 | Stereo Focal Distance: 1 137 | Swap Stereo Eyes: false 138 | Value: false 139 | Focal Point: 140 | X: 0 141 | Y: 0 142 | Z: 0 143 | Focal Shape Fixed Size: true 144 | Focal Shape Size: 0.05000000074505806 145 | Invert Z Axis: false 146 | Name: Current View 147 | Near Clip Distance: 0.009999999776482582 148 | Pitch: 0.785398006439209 149 | Target Frame: 150 | Value: Orbit (rviz) 151 | Yaw: 3.141590118408203 152 | Saved: ~ 153 | Window Geometry: 154 | Displays: 155 | collapsed: false 156 | Height: 960 157 | Hide Left Dock: false 158 | Hide Right Dock: false 159 | Image: 160 | collapsed: false 161 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000032100000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0049006d006100670065010000003d000001d20000001600fffffffc000002150000014a000000e60100001cfa000000010100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a0056006900650077007301000006710000010f0000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004590000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 162 | Selection: 163 | collapsed: false 164 | Time: 165 | collapsed: false 166 | Tool Properties: 167 | collapsed: false 168 | Views: 169 | collapsed: false 170 | Width: 1920 171 | X: 0 172 | Y: 27 173 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Simulator Paper 2 | 3 | Please cite the paper below if you use this simulator for your research: 4 | ``` 5 | @inproceedings{babu2020f1tenth, 6 | title={f1tenth. dev-An Open-source ROS based F1/10 Autonomous Racing Simulator}, 7 | author={Babu, Varundev Suresh and Behl, Madhur}, 8 | booktitle={2020 IEEE 16th International Conference on Automation Science and Engineering (CASE)}, 9 | pages={1614--1620}, 10 | year={2020}, 11 | organization={IEEE} 12 | } 13 | ``` 14 | 15 | ## Installation and Setup 16 | 17 | The simulator has been tested on a variety of hardware configurations, and while Gazebo and ROS dependencies work with bare minimum hardware requirements, the essence of an autonomous racing simulator requires a real-time factor of at-least 0.85. For this reason, we suggest that your local machine meet the requirements stated in the following table. 18 | 19 | | | Suggested Minimum Requirements | 20 | |:----------------:|:------------------------------:| 21 | | Operating System | Ubuntu 18.04 (Bionic) 64-bit | 22 | | Memory | 16 GiB DDR4 | 23 | | GPU | NVIDIA GTX-1660 | 24 | 25 | The simulator itself depends on libraries, packages and objects from ROS and Gazebo. The current version of the simulator uses ROS Melodic and Gazebo 9; along with certain other libraries and their python bindings. Before proceeding with the installation steps in this document, check if your local machine already has the full-desktop version of ROS Melodic installed. If not, follow the instructions provided in this [link](http://wiki.ros.org/melodic/Installation/Ubuntu). When you get to section 1.4 of the ROS installation tutorial, choose the first option: `ros-melodic-desktop-full`. Your local machine will now have the basic dependencies installed. The next steps of the installation tutorial are critical and must be followed in the shown sequence. 26 | 27 | First, we begin by installing the ROS and Gazebo packages that are not installed by default using the above method. This includes SLAM packages, ROS navigation and the MIT GPU particle filter. Some of these packages have a Debian installation candidates and the others have to be downloaded as source codes and locally compiled. We install the Debian packages first; open a new terminal and enter the following command: 28 | 29 | ```console 30 | user@ros-computer: sudo apt-get install -y ros-melodic-navigation ros-melodic-teb-local-planner* ros-melodic-ros-control ros-melodic-ros-controllers ros-melodic-gazebo-ros-control ros-melodic-ackermann-msgs ros-melodic-serial qt4-default 31 | ``` 32 | 33 | Once the above installation process is completed, the simulator source along with the particle filter and mapping package will have to be downloaded. To do this, we first need to create a ROS workspace. Open a new terminal and enter the following commands in the given sequence: 34 | 35 | ```console 36 | user@ros-computer: mkdir -p autosim_ws/src 37 | user@ros-computer: cd autosim_ws/src 38 | user@ros-computer: catkin_init_workspace 39 | ``` 40 | 41 | The simulator workspace is now initialized. The source for the packages will now have to be placed in the `src` directory to be compiled later. In the same terminal, enter the following commands to pull the sources: 42 | 43 | ```console 44 | user@ros-computer: git clone https://github.com/f1tenth-dev/simulator 45 | user@ros-computer: git clone https://github.com/mit-racecar/particle_filter 46 | user@ros-computer: git clone https://github.com/kctess5/range_libc 47 | user@ros-computer: git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam 48 | ``` 49 | 50 | The source for the required packages, including the simulator, are now in the workspace. The simulator depends on the GPU particle filter developed by the MIT RACECAR team and this package has to be configured before compiling the ROS packages. Navigate to the `range_libc` folder to compile the library necessary for the particle filter. Open a new terminal and enter the following commands: 51 | 52 | ```console 53 | user@ros-computer: sudo pip install cython 54 | user@ros-computer: cd autosim_ws/src/range_libc/pywrapper 55 | ``` 56 | 57 | There are two methods for installing the particle filter; with GPU support and without GPU support. We recommend using the package with GPU support, but leave the decision to you. 58 | 59 | **Installing with GPU Support** 60 | Keep this terminal open and pay special attention to the next step. The particle filter package depends heavily on the GPU and its architecture, so it becomes very important to match the architecture of the GPU in your local machine to the one listed in the configuration of `setup.py`. We are particularly interested in the `sm_xx` value associated with the GPU and more information can be found in this [article](https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/) which is a good reference for understanding types NVIDIA's GPU. Once the architecture type has been identified, go back to the terminal and open the setup file using an editor of your choice and navigate to line 96: 61 | 62 | ```python 63 | nvcc_flags = ['-arch=sm_20', '--ptxas-options=-v', '-c', '--compiler-options', "'-fPIC'", "-w","-std=c++11"] 64 | ``` 65 | 66 | Replace `-arch=sm_20` with the `-arch=sm_xx` value from the article in the link provided above. Once you have made the changes, save the file and exit back to the terminal and enter the following command to compile the library and follow the instruction on the screen: 67 | 68 | ```console 69 | user@ros-computer: ./compile_with_cuda.sh 70 | ``` 71 | 72 | **Installing without GPU Support** 73 | In the same terminal, enter the following command and follow the instructions in the screen: 74 | 75 | ```console 76 | user@ros-computer: ./compile.sh 77 | ``` 78 | 79 | With the final dependency installed, the installation process can now be continued using ROS `catkin_make`. This process is relatively simple; open a new terminal and enter the following command: 80 | 81 | ```console 82 | user@ros-computer: cd autosim_ws 83 | user@ros-computer: catkin_make install 84 | ``` 85 | 86 | The installation process in now complete, and the workspace needs to be sourced. Sourcing the workspace permanently helps launching the simulator easier. To do this, the `.bashrc` file in the home directory has to be modified; open a new terminal and enter the following command: 87 | 88 | ```console 89 | user@ros-computer: echo "source ~/autosim_ws/devel/setup.bash" >> ~/.bashrc 90 | user@ros-computer: source ~/.bashrc 91 | ``` 92 | 93 | You have now completed the steps necessary to install the simulator. The tutorial section will help you get started with the simulator. 94 | 95 | **Uninstalling the Simulator** 96 | Removing the simulator from your local machine is a two-step process: first remove the line from `~/.bashrc` that sources the simulator workspace and then delete the `autosim_ws` directory. 97 | -------------------------------------------------------------------------------- /world/monza_track.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 0 0 100 0 -0 0 6 | 0.8 0.8 0.8 1 7 | 0.1 0.1 0.1 1 8 | 9 | 1000 10 | 0.9 11 | 0.01 12 | 0.001 13 | 14 | -0.5 0.5 -1 15 | 16 | 17 | 1 18 | 19 | 20 | 21 | 22 | 0 0 1 23 | 100 100 24 | 25 | 26 | 27 | 28 | 29 | 100 30 | 50 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 10 42 | 43 | 44 | 0 45 | 46 | 47 | 0 0 1 48 | 100 100 49 | 50 | 51 | 52 | 56 | 57 | 58 | 0 59 | 0 60 | 1 61 | 0 62 | 63 | 64 | 0 0 -9.8 65 | 6e-06 2.3e-05 -4.2e-05 66 | 67 | 68 | 0.001 69 | 1 70 | 1000 71 | 72 | 73 | 0.4 0.4 0.4 1 74 | 0.7 0.7 0.7 1 75 | 1 76 | 77 | 78 | EARTH_WGS84 79 | 0 80 | 0 81 | 0 82 | 0 83 | 84 | 85 | 1 86 | 87 | 88 | 89 | 90 | 125 125 0.1 91 | 92 | 93 | 10 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 0 109 | 110 | 111 | 125 125 0.1 112 | 113 | 114 | 115 | 120 | 121 | 122 | 0 123 | 0 124 | 1 125 | 0 126 | 127 | -0.719505 0.551979 0 0 -0 0 128 | 129 | 130 | 0 0 0 0 -0 0 131 | 1 132 | 133 | 134 | 135 | 136 | model://monza_track/monza_track.stl 137 | 0.4 0.4 0.2 138 | 139 | 140 | 10 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | model://monza_track/monza_track.stl 158 | 0.4 0.4 0.0375 159 | 160 | 161 | 162 | 0 163 | 0 164 | 0 165 | 166 | 167 | 170 | 171 | 172 | 1236 777000000 173 | 43 111819958 174 | 1618406125 146331499 175 | 42995 176 | 177 | 0 0 0 0 -0 0 178 | 1 1 1 179 | 180 | 0 0 0 0 -0 0 181 | 0 0 0 0 -0 0 182 | 0 0 0 0 -0 0 183 | 0 0 0 0 -0 0 184 | 185 | 186 | 187 | 0 0 0 0 -0 0 188 | 1 1 1 189 | 190 | 0 0 0 0 -0 0 191 | 0 0 0 0 -0 0 192 | 0 0 0 0 -0 0 193 | 0 0 0 0 -0 0 194 | 195 | 196 | 197 | -116.114 101.089 0 0 0 -1.57079 198 | 1 1 1 199 | 200 | -116.114 101.089 0 0 0 -1.57079 201 | 0 0 0 0 -0 0 202 | 0 0 0 0 -0 0 203 | 0 0 0 0 -0 0 204 | 205 | 206 | 207 | 0 0 100 0 -0 0 208 | 209 | 210 | 211 | 212 | -107.135 -8.56534 165.62 -0 0.913798 0.058154 213 | orbit 214 | perspective 215 | 216 | 217 | 218 | 219 | -------------------------------------------------------------------------------- /world/interlagos_track.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 0 0 100 0 -0 0 6 | 0.8 0.8 0.8 1 7 | 0.1 0.1 0.1 1 8 | 9 | 1000 10 | 0.9 11 | 0.01 12 | 0.001 13 | 14 | -0.5 0.5 -1 15 | 16 | 17 | 1 18 | 19 | 20 | 21 | 22 | 0 0 1 23 | 100 100 24 | 25 | 26 | 27 | 28 | 29 | 100 30 | 50 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 10 42 | 43 | 44 | 0 45 | 46 | 47 | 0 0 1 48 | 100 100 49 | 50 | 51 | 52 | 56 | 57 | 58 | 0 59 | 0 60 | 1 61 | 0 62 | 63 | 64 | 0 0 -9.8 65 | 6e-06 2.3e-05 -4.2e-05 66 | 67 | 68 | 0.001 69 | 1 70 | 1000 71 | 72 | 73 | 0.4 0.4 0.4 1 74 | 0.7 0.7 0.7 1 75 | 1 76 | 77 | 78 | EARTH_WGS84 79 | 0 80 | 0 81 | 0 82 | 0 83 | 84 | 85 | 1 86 | 87 | 88 | 89 | 90 | 125 125 0.1 91 | 92 | 93 | 10 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 0 109 | 110 | 111 | 125 125 0.1 112 | 113 | 114 | 115 | 120 | 121 | 122 | 0 123 | 0 124 | 1 125 | 0 126 | 127 | -0.719505 0.551979 0 0 -0 0 128 | 129 | 130 | 0 0 0 0 -0 0 131 | 1 132 | 133 | 134 | 135 | 136 | model://interlagos_track/interlagos_track.stl 137 | 0.4 0.4 0.2 138 | 139 | 140 | 10 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | model://interlagos_track/interlagos_track.stl 158 | 0.4 0.4 0.0375 159 | 160 | 161 | 162 | 0 163 | 0 164 | 0 165 | 166 | 167 | 170 | 171 | 172 | 1193 782000000 173 | 61 557850471 174 | 1618354513 629009662 175 | 61396 176 | 177 | 0 0 0 0 -0 0 178 | 1 1 1 179 | 180 | 0 0 0 0 -0 0 181 | 0 0 0 0 -0 0 182 | 0 0 0 0 -0 0 183 | 0 0 0 0 -0 0 184 | 185 | 186 | 187 | 0 0 0 0 -0 0 188 | 1 1 1 189 | 190 | 0 0 0 0 -0 0 191 | 0 0 0 0 -0 0 192 | 0 0 0 0 -0 0 193 | 0 0 0 0 -0 0 194 | 195 | 196 | 197 | -206.696 193.336 0 0 0 -1.57079 198 | 1 1 1 199 | 200 | -206.696 193.336 0 0 0 -1.57079 201 | 0 0 0 0 -0 0 202 | 0 0 0 0 -0 0 203 | 0 0 0 0 -0 0 204 | 205 | 206 | 207 | 0 0 100 0 -0 0 208 | 209 | 210 | 211 | 212 | -241.928 -6.52467 383.506 -0 0.913798 0.058154 213 | orbit 214 | perspective 215 | 216 | 217 | 218 | 219 | -------------------------------------------------------------------------------- /world/silverstone_track.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 0 0 100 0 -0 0 6 | 0.8 0.8 0.8 1 7 | 0.1 0.1 0.1 1 8 | 9 | 1000 10 | 0.9 11 | 0.01 12 | 0.001 13 | 14 | -0.5 0.5 -1 15 | 16 | 17 | 1 18 | 19 | 20 | 21 | 22 | 0 0 1 23 | 100 100 24 | 25 | 26 | 27 | 28 | 29 | 100 30 | 50 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 10 42 | 43 | 44 | 0 45 | 46 | 47 | 0 0 1 48 | 100 100 49 | 50 | 51 | 52 | 56 | 57 | 58 | 0 59 | 0 60 | 1 61 | 0 62 | 63 | 64 | 0 0 -9.8 65 | 6e-06 2.3e-05 -4.2e-05 66 | 67 | 68 | 0.001 69 | 1 70 | 1000 71 | 72 | 73 | 0.4 0.4 0.4 1 74 | 0.7 0.7 0.7 1 75 | 1 76 | 77 | 78 | EARTH_WGS84 79 | 0 80 | 0 81 | 0 82 | 0 83 | 84 | 85 | 1 86 | 87 | 88 | 89 | 90 | 125 125 0.1 91 | 92 | 93 | 10 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 0 109 | 110 | 111 | 125 125 0.1 112 | 113 | 114 | 115 | 120 | 121 | 122 | 0 123 | 0 124 | 1 125 | 0 126 | 127 | -0.719505 0.551979 0 0 -0 0 128 | 129 | 130 | 0 0 0 0 -0 0 131 | 1 132 | 133 | 134 | 135 | 136 | model://silverstone_track/silverstone_track.stl 137 | 0.4 0.4 0.2 138 | 139 | 140 | 10 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | model://silverstone_track/silverstone_track.stl 158 | 0.4 0.4 0.0375 159 | 160 | 161 | 162 | 0 163 | 0 164 | 0 165 | 166 | 167 | 170 | 171 | 172 | 1236 773000000 173 | 43 109411629 174 | 1618406182 493106155 175 | 42991 176 | 177 | 0 0 0 0 -0 0 178 | 1 1 1 179 | 180 | 0 0 0 0 -0 0 181 | 0 0 0 0 -0 0 182 | 0 0 0 0 -0 0 183 | 0 0 0 0 -0 0 184 | 185 | 186 | 187 | 0 0 0 0 -0 0 188 | 1 1 1 189 | 190 | 0 0 0 0 -0 0 191 | 0 0 0 0 -0 0 192 | 0 0 0 0 -0 0 193 | 0 0 0 0 -0 0 194 | 195 | 196 | 197 | -104.501 99.7259 0 0 0 -1.57079 198 | 1 1 1 199 | 200 | -104.501 99.7259 0 0 0 -1.57079 201 | 0 0 0 0 -0 0 202 | 0 0 0 0 -0 0 203 | 0 0 0 0 -0 0 204 | 205 | 206 | 207 | 0 0 100 0 -0 0 208 | 209 | 210 | 211 | 212 | -209.981 -0.57011 332.222 0 1.0138 0.226154 213 | orbit 214 | perspective 215 | 216 | 217 | 218 | 219 | -------------------------------------------------------------------------------- /rviz/car_2.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_21 8 | - /Car_21/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_2/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_2/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_2/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_2/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_2 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 10.540091514587402 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: 0.8401058912277222 176 | Y: -4.1259942054748535 177 | Z: -1.7462449073791504 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000000100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /rviz/car_3.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_31 8 | - /Car_31/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_3/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_3/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_3/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_3/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_3 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 7.702158451080322 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: 0.1928098499774933 176 | Y: -3.39508056640625 177 | Z: -0.7300854325294495 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000010100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /rviz/car_5.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_51 8 | - /Car_51/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_5/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_5/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_5/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_5/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_5 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 5.248805046081543 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: -1.07430100440979 176 | Y: -1.9585487842559814 177 | Z: 1.2635314464569092 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000010100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /rviz/car_6.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_61 8 | - /Car_61/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_6/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_6/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_6/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_6/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_6 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 3.1023569107055664 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: -1.7044751644134521 176 | Y: -1.2328484058380127 177 | Z: 2.263737678527832 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000000100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /rviz/car_7.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_71 8 | - /Car_71/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_7/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_7/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_7/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_7/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_7 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 2.1141695976257324 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: -2.343644857406616 176 | Y: -0.5026320815086365 177 | Z: 3.273698568344116 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000000100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /rviz/car_8.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_81 8 | - /Car_81/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_8/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_8/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_8/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_8/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_8 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 2.539088726043701 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: -2.936657190322876 176 | Y: 0.20426806807518005 177 | Z: 4.233487606048584 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000000100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(f1tenth-sim) 3 | 4 | ## Compile as C++11, supported in ROS Kinetic and newer 5 | # add_compile_options(-std=c++11) 6 | 7 | ## Find catkin macros and libraries 8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 9 | ## is used, also find other catkin packages 10 | find_package(catkin REQUIRED COMPONENTS 11 | gazebo_ros 12 | geometry_msgs 13 | ackermann_msgs 14 | nav_msgs 15 | rospy 16 | sensor_msgs 17 | std_msgs 18 | tf 19 | message_generation 20 | ) 21 | 22 | ## System dependencies are found with CMake's conventions 23 | # find_package(Boost REQUIRED COMPONENTS system) 24 | 25 | 26 | ## Uncomment this if the package has a setup.py. This macro ensures 27 | ## modules and global scripts declared therein get installed 28 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 29 | # catkin_python_setup() 30 | 31 | ################################################ 32 | ## Declare ROS messages, services and actions ## 33 | ################################################ 34 | 35 | ## To declare and build messages, services or actions from within this 36 | ## package, follow these steps: 37 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 38 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 39 | ## * In the file package.xml: 40 | ## * add a build_depend tag for "message_generation" 41 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 42 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 43 | ## but can be declared for certainty nonetheless: 44 | ## * add a exec_depend tag for "message_runtime" 45 | ## * In this file (CMakeLists.txt): 46 | ## * add "message_generation" and every package in MSG_DEP_SET to 47 | ## find_package(catkin REQUIRED COMPONENTS ...) 48 | ## * add "message_runtime" and every package in MSG_DEP_SET to 49 | ## catkin_package(CATKIN_DEPENDS ...) 50 | ## * uncomment the add_*_files sections below as needed 51 | ## and list every .msg/.srv/.action file to be processed 52 | ## * uncomment the generate_messages entry below 53 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 54 | 55 | ## Generate messages in the 'msg' folder 56 | # add_message_files( 57 | # FILES 58 | # StateInfo.msg 59 | # ) 60 | 61 | ## Generate services in the 'srv' folder 62 | # add_service_files( 63 | # FILES 64 | # Service1.srv 65 | # Service2.srv 66 | # ) 67 | 68 | ## Generate actions in the 'action' folder 69 | # add_action_files( 70 | # FILES 71 | # Action1.action 72 | # Action2.action 73 | # ) 74 | 75 | ## Generate added messages and services with any dependencies listed here 76 | # generate_messages( 77 | # DEPENDENCIES 78 | # std_msgs 79 | # ) 80 | 81 | ################################################ 82 | ## Declare ROS dynamic reconfigure parameters ## 83 | ################################################ 84 | 85 | ## To declare and build dynamic reconfigure parameters within this 86 | ## package, follow these steps: 87 | ## * In the file package.xml: 88 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 89 | ## * In this file (CMakeLists.txt): 90 | ## * add "dynamic_reconfigure" to 91 | ## find_package(catkin REQUIRED COMPONENTS ...) 92 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 93 | ## and list every .cfg file to be processed 94 | 95 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 96 | # generate_dynamic_reconfigure_options( 97 | # cfg/DynReconf1.cfg 98 | # cfg/DynReconf2.cfg 99 | # ) 100 | 101 | ################################### 102 | ## catkin specific configuration ## 103 | ################################### 104 | ## The catkin_package macro generates cmake config files for your package 105 | ## Declare things to be passed to dependent projects 106 | ## INCLUDE_DIRS: uncomment this if your package contains header files 107 | ## LIBRARIES: libraries you create in this project that dependent projects also need 108 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 109 | ## DEPENDS: system dependencies of this project that dependent projects also need 110 | catkin_package( 111 | # INCLUDE_DIRS include 112 | # LIBRARIES f1tenth 113 | CATKIN_DEPENDS 114 | gazebo_ros 115 | geometry_msgs 116 | nav_msgs 117 | rospy 118 | sensor_msgs 119 | std_msgs 120 | tf 121 | message_runtime 122 | # DEPENDS system_lib 123 | ) 124 | 125 | ########### 126 | ## Build ## 127 | ########### 128 | 129 | ## Specify additional locations of header files 130 | ## Your package locations should be listed before other locations 131 | include_directories( 132 | # include 133 | ${catkin_INCLUDE_DIRS} 134 | ) 135 | 136 | ## Declare a C++ library 137 | # add_library(${PROJECT_NAME} 138 | # src/${PROJECT_NAME}/f1tenth.cpp 139 | # ) 140 | 141 | ## Add cmake target dependencies of the library 142 | ## as an example, code may need to be generated before libraries 143 | ## either from message generation or dynamic reconfigure 144 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 145 | 146 | ## Declare a C++ executable 147 | ## With catkin_make all packages are built within a single CMake context 148 | ## The recommended prefix ensures that target names across packages don't collide 149 | # add_executable(${PROJECT_NAME}_node src/f1tenth_node.cpp) 150 | 151 | ## Rename C++ executable without prefix 152 | ## The above recommended prefix causes long target names, the following renames the 153 | ## target back to the shorter version for ease of user use 154 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 155 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 156 | 157 | ## Add cmake target dependencies of the executable 158 | ## same as for the library above 159 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 160 | 161 | ## Specify libraries to link a library or executable target against 162 | # target_link_libraries(${PROJECT_NAME}_node 163 | # ${catkin_LIBRARIES} 164 | # ) 165 | 166 | ############# 167 | ## Install ## 168 | ############# 169 | 170 | # all install targets should use catkin DESTINATION variables 171 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 172 | 173 | ## Mark executable scripts (Python etc.) for installation 174 | ## in contrast to setup.py, you can choose the destination 175 | # install(PROGRAMS 176 | # scripts/my_python_script 177 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 178 | # ) 179 | 180 | ## Mark executables and/or libraries for installation 181 | # install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node 182 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 183 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 184 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 185 | # ) 186 | 187 | ## Mark cpp header files for installation 188 | # install(DIRECTORY include/${PROJECT_NAME}/ 189 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 190 | # FILES_MATCHING PATTERN "*.h" 191 | # PATTERN ".svn" EXCLUDE 192 | # ) 193 | 194 | ## Mark other files for installation (e.g. launch and bag files, etc.) 195 | # install(FILES 196 | # # myfile1 197 | # # myfile2 198 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 199 | # ) 200 | 201 | ############# 202 | ## Testing ## 203 | ############# 204 | 205 | ## Add gtest based cpp test target and link libraries 206 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_f1tenth.cpp) 207 | # if(TARGET ${PROJECT_NAME}-test) 208 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 209 | # endif() 210 | 211 | ## Add folders to be run by python nosetests 212 | # catkin_add_nosetests(test) 213 | -------------------------------------------------------------------------------- /rviz/car_4.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_41 8 | - /Car_41/Odometry1/Shape1 9 | - /Global Parematers1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_4/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 10 56 | Min Value: -10 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 255; 255; 255 62 | Color Transformer: Intensity 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Flat Squares 77 | Topic: /car_4/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 25; 255; 0 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_4/base/footprint 88 | Unreliable: false 89 | Value: true 90 | - Angle Tolerance: 0.10000000149011612 91 | Class: rviz/Odometry 92 | Covariance: 93 | Orientation: 94 | Alpha: 0.5 95 | Color: 255; 255; 127 96 | Color Style: Unique 97 | Frame: Local 98 | Offset: 1 99 | Scale: 1 100 | Value: true 101 | Position: 102 | Alpha: 0.30000001192092896 103 | Color: 204; 51; 204 104 | Scale: 1 105 | Value: true 106 | Value: true 107 | Enabled: true 108 | Keep: 1 109 | Name: Odometry 110 | Position Tolerance: 0.10000000149011612 111 | Shape: 112 | Alpha: 1 113 | Axes Length: 1 114 | Axes Radius: 0.10000000149011612 115 | Color: 239; 41; 41 116 | Head Length: 0.25 117 | Head Radius: 0.10000000149011612 118 | Shaft Length: 0.5 119 | Shaft Radius: 0.05000000074505806 120 | Value: Arrow 121 | Topic: /car_4/base/odom 122 | Unreliable: false 123 | Value: true 124 | Enabled: true 125 | Name: Car_4 126 | - Class: rviz/Group 127 | Displays: 128 | - Alpha: 0.699999988079071 129 | Class: rviz/Map 130 | Color Scheme: map 131 | Draw Behind: false 132 | Enabled: true 133 | Name: Map 134 | Topic: /map 135 | Unreliable: false 136 | Use Timestamp: false 137 | Value: true 138 | Enabled: true 139 | Name: Global Parematers 140 | Enabled: true 141 | Global Options: 142 | Background Color: 48; 48; 48 143 | Default Light: true 144 | Fixed Frame: car_1_base_link 145 | Frame Rate: 30 146 | Name: root 147 | Tools: 148 | - Class: rviz/Interact 149 | Hide Inactive Objects: true 150 | - Class: rviz/MoveCamera 151 | - Class: rviz/Select 152 | - Class: rviz/FocusCamera 153 | - Class: rviz/Measure 154 | - Class: rviz/SetInitialPose 155 | Theta std deviation: 0.2617993950843811 156 | Topic: /initialpose 157 | X std deviation: 0.5 158 | Y std deviation: 0.5 159 | - Class: rviz/SetGoal 160 | Topic: /move_base_simple/goal 161 | - Class: rviz/PublishPoint 162 | Single click: true 163 | Topic: /clicked_point 164 | Value: true 165 | Views: 166 | Current: 167 | Class: rviz/Orbit 168 | Distance: 7.702158451080322 169 | Enable Stereo Rendering: 170 | Stereo Eye Separation: 0.05999999865889549 171 | Stereo Focal Distance: 1 172 | Swap Stereo Eyes: false 173 | Value: false 174 | Focal Point: 175 | X: -0.43315038084983826 176 | Y: -2.6755268573760986 177 | Z: 0.26243171095848083 178 | Focal Shape Fixed Size: true 179 | Focal Shape Size: 0.05000000074505806 180 | Invert Z Axis: false 181 | Name: Current View 182 | Near Clip Distance: 0.009999999776482582 183 | Pitch: 0.7653980255126953 184 | Target Frame: 185 | Value: Orbit (rviz) 186 | Yaw: 5.445007801055908 187 | Saved: ~ 188 | Window Geometry: 189 | Chase Camera: 190 | collapsed: false 191 | Displays: 192 | collapsed: false 193 | Height: 960 194 | Hide Left Dock: false 195 | Hide Right Dock: false 196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000010100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 197 | Selection: 198 | collapsed: false 199 | Time: 200 | collapsed: false 201 | Tool Properties: 202 | collapsed: false 203 | Views: 204 | collapsed: false 205 | Width: 1920 206 | X: 0 207 | Y: 27 208 | -------------------------------------------------------------------------------- /rviz/car_1.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Car_11 8 | - /Global Parematers1 9 | - /MPC Control1 10 | Splitter Ratio: 0.6294117569923401 11 | Tree Height: 161 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Class: rviz/Group 39 | Displays: 40 | - Class: rviz/Image 41 | Enabled: true 42 | Image Topic: /car_1/camera/image 43 | Max Value: 1 44 | Median window: 5 45 | Min Value: 0 46 | Name: Chase Camera 47 | Normalize Range: true 48 | Queue Size: 2 49 | Transport Hint: compressed 50 | Unreliable: false 51 | Value: true 52 | - Alpha: 1 53 | Autocompute Intensity Bounds: true 54 | Autocompute Value Bounds: 55 | Max Value: 0 56 | Min Value: 0 57 | Value: true 58 | Axis: Z 59 | Channel Name: intensity 60 | Class: rviz/LaserScan 61 | Color: 136; 138; 133 62 | Color Transformer: FlatColor 63 | Decay Time: 0 64 | Enabled: true 65 | Invert Rainbow: false 66 | Max Color: 255; 255; 255 67 | Max Intensity: 0 68 | Min Color: 0; 0; 0 69 | Min Intensity: 0 70 | Name: LaserScan 71 | Position Transformer: XYZ 72 | Queue Size: 10 73 | Selectable: true 74 | Size (Pixels): 3 75 | Size (m): 0.02500000037252903 76 | Style: Spheres 77 | Topic: /car_1/scan 78 | Unreliable: false 79 | Use Fixed Frame: true 80 | Use rainbow: true 81 | Value: true 82 | - Alpha: 1 83 | Class: rviz/Polygon 84 | Color: 252; 233; 79 85 | Enabled: true 86 | Name: Base Footprint 87 | Topic: /car_1/base/footprint 88 | Unreliable: false 89 | Value: true 90 | Enabled: true 91 | Name: Car_1 92 | - Class: rviz/Group 93 | Displays: 94 | - Alpha: 0.699999988079071 95 | Class: rviz/Map 96 | Color Scheme: map 97 | Draw Behind: false 98 | Enabled: false 99 | Name: Map 100 | Topic: /map 101 | Unreliable: false 102 | Use Timestamp: false 103 | Value: false 104 | - Alpha: 1 105 | Buffer Length: 1 106 | Class: rviz/Path 107 | Color: 25; 255; 0 108 | Enabled: true 109 | Head Diameter: 0.30000001192092896 110 | Head Length: 0.20000000298023224 111 | Length: 0.30000001192092896 112 | Line Style: Lines 113 | Line Width: 0.029999999329447746 114 | Name: Global raceline 115 | Offset: 116 | X: 0 117 | Y: 0 118 | Z: 0 119 | Pose Color: 255; 85; 255 120 | Pose Style: None 121 | Radius: 0.029999999329447746 122 | Shaft Diameter: 0.10000000149011612 123 | Shaft Length: 0.10000000149011612 124 | Topic: /trajectory/raceline 125 | Unreliable: false 126 | Value: true 127 | Enabled: true 128 | Name: Global Parematers 129 | - Class: rviz/Group 130 | Displays: 131 | - Alpha: 1 132 | Arrow Length: 0.30000001192092896 133 | Axes Length: 0.30000001192092896 134 | Axes Radius: 0.009999999776482582 135 | Class: rviz/PoseArray 136 | Color: 255; 25; 0 137 | Enabled: true 138 | Head Length: 0 139 | Head Radius: 0 140 | Name: PoseArray 141 | Shaft Length: 0.07500000298023224 142 | Shaft Radius: 0.07500000298023224 143 | Shape: Arrow (3D) 144 | Topic: /car_1/mpc_control/control_markers 145 | Unreliable: false 146 | Value: true 147 | - Alpha: 1 148 | Buffer Length: 1 149 | Class: rviz/Path 150 | Color: 32; 74; 135 151 | Enabled: true 152 | Head Diameter: 0.30000001192092896 153 | Head Length: 0.20000000298023224 154 | Length: 0.30000001192092896 155 | Line Style: Billboards 156 | Line Width: 0.05000000074505806 157 | Name: Planner Spline 158 | Offset: 159 | X: 0 160 | Y: 0 161 | Z: 0 162 | Pose Color: 255; 85; 255 163 | Pose Style: None 164 | Radius: 0.029999999329447746 165 | Shaft Diameter: 0.10000000149011612 166 | Shaft Length: 0.10000000149011612 167 | Topic: /car_1/mpc_control/spline 168 | Unreliable: false 169 | Value: true 170 | Enabled: true 171 | Name: MPC Control 172 | Enabled: true 173 | Global Options: 174 | Background Color: 48; 48; 48 175 | Default Light: true 176 | Fixed Frame: car_1_base_link 177 | Frame Rate: 30 178 | Name: root 179 | Tools: 180 | - Class: rviz/Interact 181 | Hide Inactive Objects: true 182 | - Class: rviz/MoveCamera 183 | - Class: rviz/Select 184 | - Class: rviz/FocusCamera 185 | - Class: rviz/Measure 186 | - Class: rviz/SetInitialPose 187 | Theta std deviation: 0.2617993950843811 188 | Topic: /initialpose 189 | X std deviation: 0.5 190 | Y std deviation: 0.5 191 | - Class: rviz/SetGoal 192 | Topic: /move_base_simple/goal 193 | - Class: rviz/PublishPoint 194 | Single click: true 195 | Topic: /clicked_point 196 | Value: true 197 | Views: 198 | Current: 199 | Class: rviz/Orbit 200 | Distance: 7.5 201 | Enable Stereo Rendering: 202 | Stereo Eye Separation: 0.05999999865889549 203 | Stereo Focal Distance: 1 204 | Swap Stereo Eyes: false 205 | Value: false 206 | Focal Point: 207 | X: 1.2331626415252686 208 | Y: 0.2990908622741699 209 | Z: 0.4302024841308594 210 | Focal Shape Fixed Size: true 211 | Focal Shape Size: 0.05000000074505806 212 | Invert Z Axis: false 213 | Name: Current View 214 | Near Clip Distance: 0.009999999776482582 215 | Pitch: 0.6303982138633728 216 | Target Frame: car_1_base_link 217 | Value: Orbit (rviz) 218 | Yaw: 3.1550073623657227 219 | Saved: ~ 220 | Window Geometry: 221 | Chase Camera: 222 | collapsed: false 223 | Displays: 224 | collapsed: false 225 | Height: 960 226 | Hide Left Dock: false 227 | Hide Right Dock: false 228 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000322fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000031500000322fc0200000004fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000001800430068006100730065002000430061006d006500720061010000003d000001d30000001600fffffffc0000021600000149000000e60100001cfa000000000100000002fb000000100044006900730070006c0061007900730100000000ffffffff0000015600fffffffb0000000a00560069006500770073010000046b000003150000010000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000004650000032200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 229 | Selection: 230 | collapsed: false 231 | Time: 232 | collapsed: false 233 | Tool Properties: 234 | collapsed: false 235 | Views: 236 | collapsed: false 237 | Width: 1920 238 | X: 0 239 | Y: 27 240 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /urdf/macros.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | transmission_interface/SimpleTransmission 123 | 124 | hardware_interface/EffortJointInterface 125 | 126 | 127 | hardware_interface/EffortJointInterface 128 | 1 129 | 130 | 131 | 132 | 133 | 134 | 135 | transmission_interface/SimpleTransmission 136 | 137 | hardware_interface/EffortJointInterface 138 | 139 | 140 | hardware_interface/EffortJointInterface 141 | 1 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | robot 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | Gazebo/$(arg robot_skin) 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | Gazebo/Black 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | Gazebo/Black 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | Gazebo/Black 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | Gazebo/Black 452 | 453 | 454 | 455 | 456 | 457 | 458 | /$(arg robot_name) 459 | gazebo_ros_control/DefaultRobotHWSim 460 | 461 | 462 | 463 | 464 | 465 | 466 | true 467 | 50.0 468 | $(arg robot_name)_base_link 469 | /$(arg robot_name)/ground_truth 470 | 0.01 471 | world 472 | 0 0 0 473 | 0 0 0 474 | 475 | 476 | 477 | 478 | 479 | 480 | Gazebo/Grey 481 | 482 | 0 0 0.0124 0 0 0 483 | false 484 | 40 485 | 486 | 487 | 488 | 1081 489 | 1 490 | -2.3561944902 491 | 2.3561944902 492 | 493 | 494 | 495 | 0.1 496 | 30.0 497 | 0.01 498 | 499 | 500 | 0.0 501 | 0.01 502 | 503 | 504 | 505 | /$(arg robot_name)/scan 506 | $(arg robot_name)_laser 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 30.0 517 | 518 | 519 | 520 | 1.74 521 | 522 | 1920 523 | 1080 524 | B8G8R8 525 | 526 | 527 | 0.02 528 | 300 529 | 530 | 531 | gaussian 532 | 0.0 533 | 0.007 534 | 535 | 536 | 537 | true 538 | 30.0 539 | /$(arg robot_name)/camera 540 | image 541 | rgb/camera_info 542 | $(arg robot_name)_camera_link 543 | 0 544 | 0.0 545 | 0.0 546 | 0.0 547 | 0.0 548 | 0.0 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | -------------------------------------------------------------------------------- /urdf/xacros/macros.xacro.normal: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | transmission_interface/SimpleTransmission 123 | 124 | hardware_interface/EffortJointInterface 125 | 126 | 127 | hardware_interface/EffortJointInterface 128 | 1 129 | 130 | 131 | 132 | 133 | 134 | 135 | transmission_interface/SimpleTransmission 136 | 137 | hardware_interface/EffortJointInterface 138 | 139 | 140 | hardware_interface/EffortJointInterface 141 | 1 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | robot 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | Gazebo/$(arg robot_skin) 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | Gazebo/Black 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | Gazebo/Black 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | Gazebo/Black 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | Gazebo/Black 452 | 453 | 454 | 455 | 456 | 457 | 458 | /$(arg robot_name) 459 | gazebo_ros_control/DefaultRobotHWSim 460 | 461 | 462 | 463 | 464 | 465 | 466 | true 467 | 50.0 468 | $(arg robot_name)_base_link 469 | /$(arg robot_name)/ground_truth 470 | 0.01 471 | world 472 | 0 0 0 473 | 0 0 0 474 | 475 | 476 | 477 | 478 | 479 | 480 | Gazebo/Grey 481 | 482 | 0 0 0.0124 0 0 0 483 | false 484 | 40 485 | 486 | 487 | 488 | 1081 489 | 1 490 | -2.3561944902 491 | 2.3561944902 492 | 493 | 494 | 495 | 0.1 496 | 30.0 497 | 0.01 498 | 499 | 500 | 0.0 501 | 0.01 502 | 503 | 504 | 505 | /$(arg robot_name)/scan 506 | $(arg robot_name)_laser 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 30.0 517 | 518 | 519 | 520 | 1.74 521 | 522 | 1920 523 | 1080 524 | B8G8R8 525 | 526 | 527 | 0.02 528 | 300 529 | 530 | 531 | gaussian 532 | 0.0 533 | 0.007 534 | 535 | 536 | 537 | true 538 | 30.0 539 | /$(arg robot_name)/camera 540 | image 541 | rgb/camera_info 542 | $(arg robot_name)_camera_link 543 | 0 544 | 0.0 545 | 0.0 546 | 0.0 547 | 0.0 548 | 0.0 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | --------------------------------------------------------------------------------