From 4fc83145440356654655bc03246b2bca570b7ff1 Mon Sep 17 00:00:00 2001
From: szepilot <52172620+szepilot@users.noreply.github.com>
Date: Thu, 22 Aug 2024 14:00:15 +0200
Subject: [PATCH] Added paper
---
CITATION.cff | 32 +++++++++
README.md | 17 ++---
README.md.bak | 191 --------------------------------------------------
3 files changed, 41 insertions(+), 199 deletions(-)
create mode 100644 CITATION.cff
delete mode 100644 README.md.bak
diff --git a/CITATION.cff b/CITATION.cff
new file mode 100644
index 0000000..e2e3cc3
--- /dev/null
+++ b/CITATION.cff
@@ -0,0 +1,32 @@
+cff-version: 1.2.0
+message: "If you use this software, please consider citing as below."
+authors:
+- family-names: "Enisz"
+ given-names: "Krisztián"
+ orcid: "https://orcid.org/0000-0003-3959-198X"
+- family-names: "Szalay"
+ given-names: "István"
+ orcid: "https://orcid.org/0000-0002-0384-4730"
+- family-names: "Horváth"
+ given-names: "Ernő"
+ orcid: "https://orcid.org/0000-0001-5083-2073"
+title: "Localization robustness improvement for an autonomous race car using multiple extended Kalman filters"
+version: "2024"
+doi: "10.1177/09544070241266281"
+url: "https://github.com/jkk-research/kalman_pos"
+preferred-citation:
+ type: article
+ authors:
+ - family-names: "Enisz"
+ given-names: "Krisztián"
+ orcid: "https://orcid.org/0000-0003-3959-198X"
+ - family-names: "Szalay"
+ given-names: "István"
+ orcid: "https://orcid.org/0000-0002-0384-4730"
+ - family-names: "Horváth"
+ given-names: "Ernő"
+ orcid: "https://orcid.org/0000-0001-5083-2073"
+ doi: "10.1177/09544070241266281"
+ title: "Localization robustness improvement for an autonomous race car using multiple extended Kalman filters"
+ year: 2024
+ journal: "Proceedings of the Institution of Mechanical Engineers, Part D: Journal of Automobile Engineering"
\ No newline at end of file
diff --git a/README.md b/README.md
index cb8e52a..ff29700 100644
--- a/README.md
+++ b/README.md
@@ -177,15 +177,16 @@ ros2 bag play -l TODO.mcap
# Cite & paper
-If you use any of this code please consider citing the [paper TODO]():
+If you use any of this code please consider citing the [paper](https://journals.sagepub.com/eprint/MJGI8JXN8KAWBGZU6D24/full):
```bibtex
-@Article{2024,
- title = {TODO},
- author = {},
- journal = {},
- volume = {},
- url = {},
- doi = {}
+@Article{doi:10.1177/09544070241266281,
+ title = {Localization robustness improvement for an autonomous race car using multiple extended Kalman filters},
+ author = {Krisztián Enisz and István Szalay and Ernő Horváth},
+ journal = {Proceedings of the Institution of Mechanical Engineers, Part D: Journal of Automobile Engineering},
+ volume = {0},
+ url = {https://doi.org/10.1177/09544070241266281},
+ eprint = {https://doi.org/10.1177/09544070241266281},
+ doi = {10.1177/09544070241266281}
}
```
diff --git a/README.md.bak b/README.md.bak
deleted file mode 100644
index 0347b7c..0000000
--- a/README.md.bak
+++ /dev/null
@@ -1,191 +0,0 @@
-# `kalman_pos` `ROS 2` package
-
-Kálmán filter based `ROS 2` node (`geometry_msgs/PoseStamped`, `sensor_msgs/Imu`)
-
-[![Static Badge](https://img.shields.io/badge/ROS_2-Humble-34aec5)](https://docs.ros.org/en/humble/)
-
-- [`geometry_msgs/PoseStamped`](http://docs.ros.org/en/melodic/api/geometry_msgs/html/msg/PoseStamped.html)
-- [`sensor_msgs/Imu`](http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/Imu.html)
-- novatel [github.com/jkk-research/novatel_gps_driver](https://github.com/jkk-research/novatel_gps_driver)
-
-## Build
-
-``` bash
-cd ~/ros2_ws/src
-```
-
-``` bash
-git clone https://github.com/jkk-research/kalman_pos
-```
-
-``` bash
-cd ~/ros2_ws
-```
-
-``` bash
-colcon build --symlink-install --packages-select kalman_pos novatel_gps_msgs
-```
-
-# ROS publications / subscriptions
-
-```mermaid
-flowchart LR
-
-A[imu
sensor_msgs/Imu] --> F(kalman_pos)
-B[current_pose
geometry_msgs/PoseStamped] --> F
-C[vehicle_status
geometry_msgs/Twist] --> F
-D[nova_fix
sensor_msgs/NavSatFix] --> F
-E[duro_status
std_msgs/String] --> F
-F --> G[estimated_pose_cog
geometry_msgs/PoseStamped]
-F --> H[estimated_pose_baselink
geometry_msgs/PoseStamped]
-F --> I[distance
std_msgs/Float32]
-F --> J[estimated_trav_dist_est_pos
std_msgs/Float32]
-F --> K[estimation_accuracy
visualization_msgs/Marker]
-
-classDef light fill:#34aec5,stroke:#152742,stroke-width:2px,color:#152742
-classDef dark fill:#152742,stroke:#34aec5,stroke-width:2px,color:#34aec5
-classDef white fill:#ffffff,stroke:#152742,stroke-width:2px,color:#152742
-classDef red fill:#ef4638,stroke:#152742,stroke-width:2px,color:#fff
-
-class F red
-class A,B,C,D,E,G,H,I,J,K light
-
-```
-
-## Run
-
-
- Don't forget to source before ROS commands.
-
-``` bash
-source ~/ros2_ws/install/setup.bash
-```
-
-
-``` bash
-ros2 launch kalman_pos kalman_pos_node.launch.py
-```
-
-### Parameters
-- `pose_topic`
- - type: `string`
- - default value: `gps/duro/current_pose`
- - description: the name of the GNSS position topic (subscriber, geometry_msgs::PoseStamped)
-- `vehicle_status_topic`
- - type: `string`
- - default value: `vehicle_status`
- - description: the name of the vehicle status topic (subscriber, autoware_msgs::VehicleStatus)
-- `nav_sat_fix_topic`
- - type: `string`
- - default value: `gps/nova/fix`
- - description: the name of the Novatel NavSatFix topic (relevant only for Novatel GNSS) (subscriber, sensor_msgs::NavSatFix)
-- `imu_topic`
- - type: `string`
- - default value: `imu/data`
- - description: the name of the IMU data topic (subscriber, `sensor_msgs::Imu`)
-- `est_cog_topic`
- - type: `string`
- - default value: `estimated_pose_cog`
- - description: the name of the estimated position topic (transformed into the CoG) (Publisher, `geometry_msgs::PoseStamped`)
-- `est_trav_distance_odom_topic`
- - type: `string`
- - default value: `distance`
- - description: the name of the estimated traveled distance position topic (calculation is based on the odemetry) (`Publisher, std_msgs::Float32`)
-- `est_trav_distance_est_pos_topic`
- - type: `string`
- - default value: `estimated_trav_dist_est_pos`
- - description: the name of the estimated traveled distance position topic (calculation is based on the estimated position) (Publisher, `std_msgs::Float32`)
-- `est_baselink_topic`
- - type: `string`
- - default value: estimated_pose_baselink
- - description: the name of the estimated position topic (transformed into the baselink) (Publisher, geometry_msgs::PoseStamped)
-- `est_accuracy_topic`
- - type: `string`
- - default value: estimation_accuracy
- - description: the name of the estimattion accuracy marker topic (Publisher, visualization_msgs::Marker)
-- `loop_rate_hz`
- - type: `int`
- - default value: `60`
- - description: the ROS loop rate of the node (in Hz)
-- `estimation_method`
- - type: `int`
- - default value: `8`
- - description: the estimation method
- - `0`: Kinematic model with EKF and without GNSS position; initial GNSS based orientation estimation disabled
- - `1`: Kinematic + dynamic model without EKF and GNSS position; initial GNSS based orientation estimation disabled
- - `2`: Kinematic model without EKF and GNSS position; initial GNSS based orientation estimation enabled
- - `3`: Kinematic + dynamic model without EKF and GNSS position; initial GNSS based orientation estimation enabled
- - `4`: Currently not used
- - `5`: Kinematic model with EKF and without GNSS; initial GNSS based orientation estimation disabled
- - `6`: Kinematic + dynamic model with EKF and without GNSS position; initial GNSS based orientation estimation disabled (USE THIS AS **DEFAULT** FOR ESTIMATION **WITHOUT GNSS**)
- - `7`: Kinematic model with EKF and without GNSS position; initial GNSS based orientation estimation enabled
- - `8`: Kinematic + dynamic model with EKF and without GNSS position; initial GNSS based orientation estimation enabled
- - `9`: Currently used for debugging
- - `10`: Used only when the vehicle_type is "SZEmission" and GNSS is based on Duro. Automatically switch between the different estimation methods
-- `dynamic_time_calc`
- - type: `bool`
- - default value: `true`
- - description: true if the time difference is calculated between each step, false if fix value is used (1/lROSLoopRate_cl_hz)
-- `kinematic_model_max_speed`
- - type: `double`
- - default value: `0.3`
- - description: the speed where the algorithm switch to the dynamic model from the kinematic model
-- `do_not_wait_for_gnss_msgs`
- - type: `bool`
- - default value: `true`
- - description: `true` if the algrithm in not waiting for the first positon message (use this for the algorithms without GNSS position and orientation estimation)
-- `msg_timeout`
- - type: `double`
- - default value: `2000`
- - description: timeout for vehicle status and IMU message, if these messages does not arrive until timeout then the estimation will stop [ms]
-- `vehicle_param_c1`
- - type: `double`
- - default value: `3000`
- - description: front wheel cornering stiffness (for single track model) [N/rad]
-- `vehicle_param_c2`
- - type: `double`
- - default value: `3000`
- - description: rear wheel cornering stiffness (for single track model) [N/rad]
-- `vehicle_param_m`
- - type: `double`
- - default value: `180`
- - description: mass of the vehicle [kg]
-- `vehicle_param_jz`
- - type: `double`
- - default value: `270`
- - description: moment of inertia (z axle) [kg*m2]
-- `vehicle_param_l1`
- - type: `double`
- - default value: `0.324`
- - description: CoG distance from the front axle [m]
-- `vehicle_param_l1`
- - type: `double`
- - default value: `0.976`
- - description: CoG distance from the rear axle [m]
-- `vehicle_param_swr`
- - type: `double`
- - default value: `1.0`
- - description: Steering wheel ratio
-
-## Rosbag
-
-Download: [jkk-research.github.io/dataset](https://jkk-research.github.io/dataset)
-
-```
-ros2 bag play -l TODO.mcap
-```
-
-# Cite & paper
-
-If you use any of this code please consider citing the [paper TODO]():
-
-```bibtex
-@Article{2024,
- title = {TODO},
- author = {},
- journal = {},
- volume = {},
- url = {},
- doi = {}
-}
-```