Ejemplo n.º 1
0
    def load_car_models(self):
        """
        Loads all car models from car_models.csv.

        Returns
        -------
        None.
        """
        cast = Cast("Car Model")
        self.car_models = dict()

        csv_helper = CSVHelper("data", "car_models.csv")
        for row in csv_helper.data:
            uid = cast.to_positive_int(row[0], "Uid")
            cast.uid = uid

            car_model_name = str(row[1]).strip(" ").strip('"')
            car_consumption = cast.to_positive_float(row[2], "Car consumption")
            drag_coeff = cast.to_positive_float(row[3], "Drag coeff")
            frontal_area = cast.to_positive_float(row[4], "Frontal area")
            mass = cast.to_positive_float(row[5], "Mass")
            battery_capacity \
                = cast.to_positive_float(row[6], "Battery capacity")
            charger_capacity \
                = cast.to_positive_float(row[7], "Charger capacity")

            cm = CarModel(uid, car_model_name, car_consumption, drag_coeff,
                          frontal_area, mass, battery_capacity,
                          charger_capacity)
            self.car_models[uid] = cm
Ejemplo n.º 2
0
 def __init__(self):
     rospy.init_node('car_sim')
     rospy.Subscriber('twist2d', Twist, self.update_command)
     dt = rospy.get_param('~dt', default=0.05)
     noisy = rospy.get_param('~noisy', default=False)
     self.rate = rospy.Rate(1. / dt)
     self.car = CarModel(dt=dt)
     self.speed, self.steering = 0, 0
     self.last_time = rospy.Time.now()
     self.pose_pub = rospy.Publisher('car_pose', Pose2D, queue_size=1)
Ejemplo n.º 3
0
 def __init__(self, car_model, N=2000, delta_bn=15, delta_s=0.5, T_prop=0.5):
     super(Simulation, self).__init__(car_model, N, delta_bn, delta_s, T_prop)
     self.car = CarModel()
     self.steer_pub = rp.Publisher('/steering', Steering, queue_size=10)
Ejemplo n.º 4
0
    try:
        rp.init_node('simulation')
        rp.Rate(50)
        iterations = rp.get_param('~iterations')
        delta_bn = rp.get_param('~delta_bn')
        delta_s = rp.get_param('~delta_s')
        T_prop = rp.get_param('~T_prop')

        L = rp.get_param('~mid_fronwheel_dist')
        max_steering_angle = rp.get_param('~max_steering_angle')
        max_lin_vel = rp.get_param('~max_lin_vel')
        max_ang_vel_wheel = rp.get_param('~max_ang_vel_wheel')
        max_x_coord = rp.get_param('~max_x_coord')
        max_y_coord = rp.get_param('~max_y_coord')

        car = CarModel(max_x_coord, max_y_coord, L, max_steering_angle, max_lin_vel, max_ang_vel_wheel)
        sim = Simulation(car, iterations, delta_bn, delta_s, T_prop)
        G = sim.sst_planning()
        controls, route = sim.get_route(G)

        i = 0

        prev_time = rp.Time.now().to_sec()
        while not rp.is_shutdown():
            sim.publish_route(route, all_points=True)

            sim.publish_control(controls[i][0])

            time = rp.Time.now().to_sec()
            delta_t = time - prev_time