diff --git a/Control/controller.cpp b/Control/controller.cpp index 67580bf..7dbeb13 100644 --- a/Control/controller.cpp +++ b/Control/controller.cpp @@ -23,6 +23,7 @@ void EgoCarController::registerKeyboardCallbacks() { if (keyStates_.find(event.getKeySym()) != keyStates_.end()) { keyStates_[event.getKeySym()] = event.keyDown(); } + if (event.isShiftPressed()) {car_.accelerate(10.0, 1);} }); } @@ -32,6 +33,8 @@ void EgoCarController::handleKeyboardInput() { } else if (keyStates_["Down"]) { car_.accelerate(3.0, -1); } else if (keyStates_["space"]) { + car_.accelerate(-15.0, 1); + } else { car_.accelerate(0.0, 1); } diff --git a/Objects/car.cpp b/Objects/car.cpp index 183c131..813d058 100644 --- a/Objects/car.cpp +++ b/Objects/car.cpp @@ -16,8 +16,8 @@ Car::Car() control_index(0), sinNegAngle(0), cosNegAngle(0), - air_resistance(0.01), - tire_friction(0.1) {} + air_resistance(0.0), + tire_friction(0.0) {} Car::Car( Vect3 setPosition, Vect3 setDimensions, Color setColor, @@ -35,8 +35,8 @@ Car::Car( velocity = 0; control_index = 0; rollingInstance = 0.5; - air_resistance = 0.01; - tire_friction = 0.1; + air_resistance = 0.0; + tire_friction = 0.0; } void Car::renderBottom(pcl::visualization::PCLVisualizer::Ptr& viewer) const { @@ -113,11 +113,11 @@ void Car::render(pcl::visualization::PCLVisualizer::Ptr& viewer) const { } void Car::accelerate(float acc, int dir) { - acceleration = acc * dir - air_resistance * velocity * abs(velocity) - tire_friction * sign(velocity); + acceleration = acc * dir; } void Car::steer(float s) { - steering = s / (1 + abs(velocity)); + steering = s; } void Car::control(const std::vector& c) { diff --git a/Scene/scene.cpp b/Scene/scene.cpp index bb876e9..82786da 100644 --- a/Scene/scene.cpp +++ b/Scene/scene.cpp @@ -88,7 +88,7 @@ Scene::Scene(pcl::visualization::PCLVisualizer::Ptr& viewer) { Control Scene::randomControl(std::mt19937& gen, Car& car) { std::uniform_real_distribution<> disTime(1, 9); - std::uniform_real_distribution<> disAcceleration(-5, 2); + std::uniform_real_distribution<> disAcceleration(-2, 1); std::uniform_real_distribution<> disSteering(-0.15, 0.15); Vect3 currentPosition = car.getPosition(); diff --git a/Toolkit/tools.cpp b/Toolkit/tools.cpp index 7c67ee4..d12b555 100644 --- a/Toolkit/tools.cpp +++ b/Toolkit/tools.cpp @@ -60,7 +60,7 @@ radarMarker Tools::radarSense(Car& car, Car ego, pcl::visualization::PCLVisualiz ego.getPosition().x + marker.rho * cos(marker.phi) + marker.rhoDot * cos(marker.phi), ego.getPosition().y + marker.rho * sin(marker.phi) + marker.rhoDot * sin(marker.phi), 3.0 - ), 1, 0, 1, car.getName() + "_rhoDot"); + ), 1, 0, 1, false, car.getName() + "_rhoDot"); } MeasurementPackage measPackage; @@ -84,7 +84,7 @@ void Tools::trackerResults(Car car, pcl::visualization::PCLVisualizer::Ptr &view pcl::PointXYZ(tracker.x_[0], tracker.x_[1],3.5), pcl::PointXYZ(tracker.x_[0] + tracker.x_[2] * cos(tracker.x_[3]), tracker.x_[1] + tracker.x_[2] * sin(tracker.x_[3]),3.5), - 0, 1, 0, car.getName()+"_tracker_vel"); + 0, 1, 0, false, car.getName()+"_tracker_vel"); if (time > 0) { double dt = time / steps; @@ -92,7 +92,7 @@ void Tools::trackerResults(Car car, pcl::visualization::PCLVisualizer::Ptr &view while (ct <= time) { tracker.Prediction(dt); viewer->addSphere(pcl::PointXYZ(tracker.x_[0], tracker.x_[1], 3.5), - 0.5, 0, 1, 0,car.getName() + "_ukf" + std::to_string(ct)); + 0.5, 0, 1, 0, car.getName() + "_ukf" + std::to_string(ct)); viewer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY, 1.0 - 0.8 * (ct / time), car.getName() + "_ukf" + std::to_string(ct)); @@ -100,7 +100,7 @@ void Tools::trackerResults(Car car, pcl::visualization::PCLVisualizer::Ptr &view pcl::PointXYZ(tracker.x_[0], tracker.x_[1],3.5), pcl::PointXYZ(tracker.x_[0] + tracker.x_[2] * cos(tracker.x_[3]), tracker.x_[1] + tracker.x_[2] * sin(tracker.x_[3]), 3.5), - 0, 1, 0, car.getName() + "_ukf_vel"+std::to_string(ct)); + 0, 1, 0, false, car.getName() + "_ukf_vel"+std::to_string(ct)); viewer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY, 1.0-0.8*(ct/time), car.getName() + "_ukf_vel"+std::to_string(ct)); diff --git a/main.cpp b/main.cpp index 7b91071..4be9bc5 100644 --- a/main.cpp +++ b/main.cpp @@ -12,7 +12,7 @@ int main() { viewer->addCoordinateSystem(1.0); viewer->initCameraParameters(); int* screenSize = viewer->getRenderWindow()->GetScreenSize(); - viewer->setSize(screenSize[0], screenSize[1]); + viewer->setSize(1280, 780); viewer->setCameraPosition(50, 50, 50, // Camera position 0, 0, 0, // Focal point (origin)