|
Formula Student Autonomous Systems
The code for the main driverless system
|
#include "rclcpp/rclcpp.hpp"#include <sstream>#include <chrono>#include <condition_variable>#include <limits>#include <mutex>#include <thread>#include <vector>#include "geometry_msgs/msg/transform_stamped.hpp"#include "rosgraph_msgs/msg/clock.h"#include <geometry_msgs/msg/twist_with_covariance_stamped.hpp>#include "custom_interfaces/msg/vehicle_state_vector.hpp"#include <sensor_msgs/msg/imu.hpp>#include <tf2/LinearMath/Quaternion.h>#include <tf2_ros/static_transform_broadcaster.h>#include <tf2_ros/transform_broadcaster.h>#include "VehicleModel/VehicleModelBicycle.hpp"#include "configParser.hpp"#include "sensor_msgs/msg/joint_state.hpp"#include "visualization_msgs/msg/marker_array.hpp"#include "track/trackLoader.hpp"#include "logger.hpp"#include "sensorModels/imuSensor.hpp"#include "sensorModels/perceptionSensor.hpp"#include "sensorModels/scalarValueSensor.hpp"#include "sensorModels/wheelsSensor.hpp"#include "VehicleModel/deadTime.hpp"#include <rosgraph_msgs/msg/clock.hpp>#include "ros2Helpers.hpp"#include "pacsim/msg/perception_detections.hpp"#include "pacsim/msg/stamped_scalar.hpp"#include "pacsim/msg/wheels.hpp"#include "pacsim/srv/clock_trigger_absolute.hpp"#include "pacsim/srv/clock_trigger_relative.hpp"#include "types.hpp"#include "competitionLogic.hpp"#include "std_srvs/srv/empty.hpp"#include "reportWriter.hpp"#include "sensorModels/gnssSensor.hpp"#include "track/gripMap.hpp"
Go to the source code of this file.
Functions | |
| void | publishStateEstimation () |
| void | updateStateEstimation (const pacsim::msg::PerceptionDetections msg) |
| int | threadMainLoopFunc (std::shared_ptr< rclcpp::Node > node) |
| void | cbFuncLat (const pacsim::msg::StampedScalar &msg) |
| void | cbFuncLong (const pacsim::msg::Wheels &msg) |
| void | cbFuncTorquesInverterMin (const pacsim::msg::Wheels &msg) |
| void | cbFuncTorquesInverterMax (const pacsim::msg::Wheels &msg) |
| void | cbWheelspeeds (const pacsim::msg::Wheels &msg) |
| void | cbPowerGround (const pacsim::msg::StampedScalar &msg) |
| void | cbFinishSignal (const std::shared_ptr< std_srvs::srv::Empty::Request > request, std::shared_ptr< std_srvs::srv::Empty::Response > response) |
| void | cbClockTriggerAbsolute (const std::shared_ptr< pacsim::srv::ClockTriggerAbsolute::Request > request, std::shared_ptr< pacsim::srv::ClockTriggerAbsolute::Response > response) |
| void | cbClockTriggerRelative (const std::shared_ptr< pacsim::srv::ClockTriggerRelative::Request > request, std::shared_ptr< pacsim::srv::ClockTriggerRelative::Response > response) |
| void | getRos2Params (rclcpp::Node::SharedPtr &node) |
| void | initPerceptionSensors () |
| void | initSensors () |
| MainConfig | fillMainConfig (std::string path) |
| void | handleTf2StaticTransforms () |
| int | main (int argc, char **argv) |
Variables | |
| std::shared_ptr< rclcpp::executors::SingleThreadedExecutor > | executor |
| std::shared_ptr< IVehicleModel > | model |
| std::string | mapFilePrefix |
| double | simTime = 0.0 |
| rclcpp::Publisher< rosgraph_msgs::msg::Clock >::SharedPtr | clockPub |
| rclcpp::Publisher< geometry_msgs::msg::TwistWithCovarianceStamped >::SharedPtr | velocity_pub |
| rclcpp::Publisher< sensor_msgs::msg::Imu >::SharedPtr | imu_pub |
| rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr | mapVizPub |
| rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr | simulatedSeVizPub |
| rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr | stateEstimationPub |
| rclcpp::Publisher< pacsim::msg::StampedScalar >::SharedPtr | steeringFrontPub |
| rclcpp::Publisher< pacsim::msg::StampedScalar >::SharedPtr | steeringRearPub |
| rclcpp::Publisher< pacsim::msg::Wheels >::SharedPtr | wheelspeedPub |
| rclcpp::Publisher< pacsim::msg::Wheels >::SharedPtr | torquesPub |
| rclcpp::Publisher< pacsim::msg::StampedScalar >::SharedPtr | voltageSensorTSPub |
| rclcpp::Publisher< pacsim::msg::StampedScalar >::SharedPtr | currentSensorTSPub |
| rclcpp::Publisher< geometry_msgs::msg::TwistWithCovarianceStamped >::SharedPtr | pose_pub |
| rclcpp::Publisher< custom_interfaces::msg::VehicleStateVector >::SharedPtr | state_vector_pub |
| std::map< std::pair< double, double >, geometry_msgs::msg::Point > | detected_cones_map |
| rclcpp::Publisher< sensor_msgs::msg::JointState >::SharedPtr | jointStatePublisher |
| std::shared_ptr< tf2_ros::StaticTransformBroadcaster > | tf_static_broadcaster_ |
| rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr | perceptionVizPub |
| std::vector< rclcpp::Publisher< pacsim::msg::PerceptionDetections >::SharedPtr > | lms_pubs |
| std::map< std::shared_ptr< PerceptionSensor >, rclcpp::Publisher< pacsim::msg::PerceptionDetections >::SharedPtr > | perceptionSensorPublisherMap |
| std::map< std::shared_ptr< PerceptionSensor >, std::shared_ptr< LandmarksMarkerWrapper > > | perceptionSensorMarkersWrappersMap |
| std::map< std::shared_ptr< PerceptionSensor >, rclcpp::Publisher< visualization_msgs::msg::MarkerArray >::SharedPtr > | perceptionSensorVizPublisherMap |
| std::map< std::shared_ptr< ImuSensor >, rclcpp::Publisher< sensor_msgs::msg::Imu >::SharedPtr > | imuPublisherMap |
| std::map< std::shared_ptr< GnssSensor >, rclcpp::Publisher< pacsim::msg::GNSS >::SharedPtr > | gnssPublisherMap |
| DeadTime< double > | deadTimeSteeringFront (0.0) |
| DeadTime< double > | deadTimeSteeringRear (0.0) |
| DeadTime< Wheels > | deadTimeThrottle (0.0) |
| DeadTime< Wheels > | deadTimeTorques (0.0) |
| DeadTime< Wheels > | deadTimeWspdSetpoints (0.0) |
| DeadTime< Wheels > | deadTimeMaxTorques (0.0) |
| DeadTime< Wheels > | deadTimeMinTorques (0.0) |
| DeadTime< double > | deadTimePowerGroundSetpoint (0.0) |
| std::mutex | mutexSimTime |
| std::string | trackName |
| std::string | grip_map_path |
| std::string | trackFrame |
| std::string | report_file_dir |
| std::string | main_config_path |
| std::string | perception_config_path |
| std::string | sensors_config_path |
| std::string | vehicle_model_config_path |
| std::string | discipline |
| std::vector< std::string > | jointNames = { "FL_steer", "FL_rotate", "FR_steer", "FR_rotate", "RR_rotate", "RL_rotate", "steering" } |
| double | realtimeRatio = 1.0 |
| MainConfig | mainConfig |
| std::vector< std::shared_ptr< PerceptionSensor > > | perceptionSensors |
| std::vector< std::shared_ptr< ImuSensor > > | imus |
| std::vector< std::shared_ptr< GnssSensor > > | gnssSensors |
| std::shared_ptr< CompetitionLogic > | cl |
| std::shared_ptr< ImuSensor > | imuSensor |
| std::shared_ptr< ScalarValueSensor > | steeringSensorFront |
| std::shared_ptr< ScalarValueSensor > | steeringSensorRear |
| std::shared_ptr< WheelsSensor > | wheelspeedSensor |
| std::shared_ptr< WheelsSensor > | torquesSensor |
| std::shared_ptr< ScalarValueSensor > | currentSensorTS |
| std::shared_ptr< ScalarValueSensor > | voltageSensorTS |
| std::shared_ptr< Logger > | logger |
| std::condition_variable | cvClockTrigger |
| double | clockStopTime = std::numeric_limits<double>::max() |
| void cbClockTriggerAbsolute | ( | const std::shared_ptr< pacsim::srv::ClockTriggerAbsolute::Request > | request, |
| std::shared_ptr< pacsim::srv::ClockTriggerAbsolute::Response > | response | ||
| ) |
| void cbClockTriggerRelative | ( | const std::shared_ptr< pacsim::srv::ClockTriggerRelative::Request > | request, |
| std::shared_ptr< pacsim::srv::ClockTriggerRelative::Response > | response | ||
| ) |
| void cbFinishSignal | ( | const std::shared_ptr< std_srvs::srv::Empty::Request > | request, |
| std::shared_ptr< std_srvs::srv::Empty::Response > | response | ||
| ) |
| void cbFuncLat | ( | const pacsim::msg::StampedScalar & | msg | ) |
| void cbFuncLong | ( | const pacsim::msg::Wheels & | msg | ) |
| void cbFuncTorquesInverterMax | ( | const pacsim::msg::Wheels & | msg | ) |
| void cbFuncTorquesInverterMin | ( | const pacsim::msg::Wheels & | msg | ) |
| void cbPowerGround | ( | const pacsim::msg::StampedScalar & | msg | ) |
| void cbWheelspeeds | ( | const pacsim::msg::Wheels & | msg | ) |
| MainConfig fillMainConfig | ( | std::string | path | ) |
Definition at line 694 of file pacsim_main.cpp.


| void getRos2Params | ( | rclcpp::Node::SharedPtr & | node | ) |
| void handleTf2StaticTransforms | ( | ) |
| void initPerceptionSensors | ( | ) |
Definition at line 541 of file pacsim_main.cpp.


| void initSensors | ( | ) |
Definition at line 648 of file pacsim_main.cpp.


| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
| void publishStateEstimation | ( | ) |
| int threadMainLoopFunc | ( | std::shared_ptr< rclcpp::Node > | node | ) |
Definition at line 138 of file pacsim_main.cpp.


| void updateStateEstimation | ( | const pacsim::msg::PerceptionDetections | msg | ) |
| std::shared_ptr<CompetitionLogic> cl |
Definition at line 123 of file pacsim_main.cpp.
| rclcpp::Publisher<rosgraph_msgs::msg::Clock>::SharedPtr clockPub |
Definition at line 64 of file pacsim_main.cpp.
| double clockStopTime = std::numeric_limits<double>::max() |
Definition at line 136 of file pacsim_main.cpp.
| std::shared_ptr<ScalarValueSensor> currentSensorTS |
Definition at line 130 of file pacsim_main.cpp.
| rclcpp::Publisher<pacsim::msg::StampedScalar>::SharedPtr currentSensorTSPub |
Definition at line 75 of file pacsim_main.cpp.
| std::condition_variable cvClockTrigger |
Definition at line 135 of file pacsim_main.cpp.
| DeadTime< double > deadTimePowerGroundSetpoint(0.0) | ( | 0. | 0 | ) |
| DeadTime< double > deadTimeSteeringFront(0.0) | ( | 0. | 0 | ) |
| DeadTime< double > deadTimeSteeringRear(0.0) | ( | 0. | 0 | ) |
| std::map<std::pair<double, double>, geometry_msgs::msg::Point> detected_cones_map |
Definition at line 78 of file pacsim_main.cpp.
| std::string discipline |
Definition at line 115 of file pacsim_main.cpp.
| std::shared_ptr<rclcpp::executors::SingleThreadedExecutor> executor |
Definition at line 60 of file pacsim_main.cpp.
| std::map<std::shared_ptr<GnssSensor>, rclcpp::Publisher<pacsim::msg::GNSS>::SharedPtr> gnssPublisherMap |
Definition at line 94 of file pacsim_main.cpp.
| std::vector<std::shared_ptr<GnssSensor> > gnssSensors |
Definition at line 122 of file pacsim_main.cpp.
| std::string grip_map_path |
Definition at line 108 of file pacsim_main.cpp.
| rclcpp::Publisher<sensor_msgs::msg::Imu>::SharedPtr imu_pub |
Definition at line 66 of file pacsim_main.cpp.
| std::map<std::shared_ptr<ImuSensor>, rclcpp::Publisher<sensor_msgs::msg::Imu>::SharedPtr> imuPublisherMap |
Definition at line 93 of file pacsim_main.cpp.
| std::vector<std::shared_ptr<ImuSensor> > imus |
Definition at line 121 of file pacsim_main.cpp.
| std::shared_ptr<ImuSensor> imuSensor |
Definition at line 125 of file pacsim_main.cpp.
| std::vector<std::string> jointNames = { "FL_steer", "FL_rotate", "FR_steer", "FR_rotate", "RR_rotate", "RL_rotate", "steering" } |
Definition at line 116 of file pacsim_main.cpp.
| rclcpp::Publisher<sensor_msgs::msg::JointState>::SharedPtr jointStatePublisher |
Definition at line 82 of file pacsim_main.cpp.
| std::vector<rclcpp::Publisher<pacsim::msg::PerceptionDetections>::SharedPtr> lms_pubs |
Definition at line 87 of file pacsim_main.cpp.
| std::shared_ptr<Logger> logger |
Definition at line 133 of file pacsim_main.cpp.
| std::string main_config_path |
Definition at line 111 of file pacsim_main.cpp.
| MainConfig mainConfig |
Definition at line 119 of file pacsim_main.cpp.
| std::string mapFilePrefix |
Definition at line 62 of file pacsim_main.cpp.
| rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr mapVizPub |
Definition at line 67 of file pacsim_main.cpp.
| std::shared_ptr<IVehicleModel> model |
Definition at line 61 of file pacsim_main.cpp.
| std::mutex mutexSimTime |
Definition at line 105 of file pacsim_main.cpp.
| std::string perception_config_path |
Definition at line 112 of file pacsim_main.cpp.
| std::map<std::shared_ptr<PerceptionSensor>, std::shared_ptr<LandmarksMarkerWrapper> > perceptionSensorMarkersWrappersMap |
Definition at line 90 of file pacsim_main.cpp.
| std::map<std::shared_ptr<PerceptionSensor>, rclcpp::Publisher<pacsim::msg::PerceptionDetections>::SharedPtr> perceptionSensorPublisherMap |
Definition at line 89 of file pacsim_main.cpp.
| std::vector<std::shared_ptr<PerceptionSensor> > perceptionSensors |
Definition at line 120 of file pacsim_main.cpp.
| std::map<std::shared_ptr<PerceptionSensor>, rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr> perceptionSensorVizPublisherMap |
Definition at line 92 of file pacsim_main.cpp.
| rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr perceptionVizPub |
Definition at line 86 of file pacsim_main.cpp.
| rclcpp::Publisher<geometry_msgs::msg::TwistWithCovarianceStamped>::SharedPtr pose_pub |
Definition at line 76 of file pacsim_main.cpp.
| double realtimeRatio = 1.0 |
Definition at line 118 of file pacsim_main.cpp.
| std::string report_file_dir |
Definition at line 110 of file pacsim_main.cpp.
| std::string sensors_config_path |
Definition at line 113 of file pacsim_main.cpp.
| double simTime = 0.0 |
Definition at line 63 of file pacsim_main.cpp.
| rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr simulatedSeVizPub |
Definition at line 68 of file pacsim_main.cpp.
| rclcpp::Publisher<custom_interfaces::msg::VehicleStateVector>::SharedPtr state_vector_pub |
Definition at line 77 of file pacsim_main.cpp.
| rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr stateEstimationPub |
Definition at line 69 of file pacsim_main.cpp.
| rclcpp::Publisher<pacsim::msg::StampedScalar>::SharedPtr steeringFrontPub |
Definition at line 70 of file pacsim_main.cpp.
| rclcpp::Publisher<pacsim::msg::StampedScalar>::SharedPtr steeringRearPub |
Definition at line 71 of file pacsim_main.cpp.
| std::shared_ptr<ScalarValueSensor> steeringSensorFront |
Definition at line 126 of file pacsim_main.cpp.
| std::shared_ptr<ScalarValueSensor> steeringSensorRear |
Definition at line 127 of file pacsim_main.cpp.
| std::shared_ptr<tf2_ros::StaticTransformBroadcaster> tf_static_broadcaster_ |
Definition at line 84 of file pacsim_main.cpp.
| rclcpp::Publisher<pacsim::msg::Wheels>::SharedPtr torquesPub |
Definition at line 73 of file pacsim_main.cpp.
| std::shared_ptr<WheelsSensor> torquesSensor |
Definition at line 129 of file pacsim_main.cpp.
| std::string trackFrame |
Definition at line 109 of file pacsim_main.cpp.
| std::string trackName |
Definition at line 107 of file pacsim_main.cpp.
| std::string vehicle_model_config_path |
Definition at line 114 of file pacsim_main.cpp.
| rclcpp::Publisher<geometry_msgs::msg::TwistWithCovarianceStamped>::SharedPtr velocity_pub |
Definition at line 65 of file pacsim_main.cpp.
| std::shared_ptr<ScalarValueSensor> voltageSensorTS |
Definition at line 131 of file pacsim_main.cpp.
| rclcpp::Publisher<pacsim::msg::StampedScalar>::SharedPtr voltageSensorTSPub |
Definition at line 74 of file pacsim_main.cpp.
| rclcpp::Publisher<pacsim::msg::Wheels>::SharedPtr wheelspeedPub |
Definition at line 72 of file pacsim_main.cpp.
| std::shared_ptr<WheelsSensor> wheelspeedSensor |
Definition at line 128 of file pacsim_main.cpp.