Skip to content
Snippets Groups Projects
Commit 8a38fc23 authored by Alejandro Lopez Gestoso's avatar Alejandro Lopez Gestoso
Browse files

Fixed wheel_distance. Fixed some typos and links

parent 1f113f28
No related branches found
No related tags found
No related merge requests found
## Description
This ROS package generates the odometry information from the encoder provided by the platform. The encoder message is defined in [here](https://gitlab.iri.upc.edu/mobile_robotics/adc/platform/model_car/iri_model_car_msgs).
This ROS package generates the odometry information from the encoder provided by the platform. The encoder message is defined in [iri_model_car_msgs](https://gitlab.iri.upc.edu/mobile_robotics/adc/platforms/model_car/iri_model_car_msgs).
Additionally, this package also generates an additional feedback information specific to Ackermannn-like platforms with information which is not available in a standard [Odometry](http://docs.ros.org/en/melodic/api/nav_msgs/html/msg/Odometry.html) message. This feedback information includes the following information as an [AckermannDriveStamped](http://docs.ros.org/en/melodic/api/ackermann_msgs/html/msg/AckermannDriveStamped.html) message:
......@@ -10,7 +10,7 @@ Additionally, this package also generates an additional feedback information spe
The platform does not provide actual feedback information from the steering angle and velocity, so the motion command sent to the platform is used to generate it.
Due to the low resolution of the encoders used in the platform, at low speeds, the raw encoder information is not suitable to generate accurate odometry information (the encoder count increments present isolates impulses separated by 0's), To solve that a simple first order low pass filter is used. The cut-off frequency of this filter can be set by a parameter.
Due to the low resolution of the encoders used in the platform, at low speeds, the raw encoder information is not suitable to generate accurate odometry information (the encoder count increments present isolates impulses separated by 0's), To solve that a simple first order low pass filter can be enabled. The cut-off frequency of this filter can be set by a parameter.
This package can also, optionally, publish the transform between the *odom* and *base_footprint* frames using TF.
......@@ -33,7 +33,7 @@ This package can also, optionally, publish the transform between the *odom* and
- ~**robot_frame** (String; default: base_footprint) Name of the robot frame.
- ~**encoder_ticks** (Integer; default: 60: min: 1; max: 1000) Number of encoder ticks per revolution.
- ~**wheel_diameter** (Double; default: 0.108; min: 0.01; max: 1000) Diameter of the wheel in meters. This parameter must coincide with the actual platform value to minimize estimation errors.
- ~**wheel_distance** (Double; default: 0.216; min: 0.01; max: 1000) Distance between wheels in meters. This parameter must coincide with the actual platform value to minimize estimation errors.
- ~**wheel_distance** (Double; default: 0.261; min: 0.01; max: 1000) Distance between wheels in meters. This parameter must coincide with the actual platform value to minimize estimation errors.
- ~**axel_distance** (Double; default: 0.3662; min: 0.01; max: 1.0) Distance between axels in meters. This parameter must coincide with the actual platform value to minimize estimation errors.
- ~**enable_filter** (Bool; default: True) Enable or disable the use of the low pass filter for the encoder data.
- ~**filter_coeff** (Double; default: 0.3; min: 0.01; max: 1.0) Coefficient for the first order low pass filter used to smooth the estimation of the forward speed.
......@@ -75,20 +75,20 @@ catkin_make
## Launch
This package is normally launched as part of a more complete launch file, either in simulation or with the real robot. See the documentation in [here](https://gitlab.iri.upc.edu/mobile_robotics/adc/platform/model_car/simulator/iri_model_car_how_to) for more information.
This package is normally launched as part of a more complete launch file, either in simulation or with the real robot. Check the main [model car documentation](https://gitlab.iri.upc.edu/mobile_robotics/adc/platforms/model_car/iri_model_car_how_to) for further information.
The main launch file (*node.launch*) has the following arguments:
* **node_name** (default=model_car_odometry): name of the ROS node.
* **output** (default=screen): Desired log output. Possible values are screen and log.
* **launch_prefix** (default=): Set of parameters to be pre-apended to the node launch command.
* **config_file** (default=$(find iri_model_car_odometry)/config/params.yaml): file with the node configuration. See this [section](#parameters) for more information on the available parameters.
* **config_file** (default=$(find iri_model_car_odometry)/config/params.yaml): file with the node configuration. See [the parameter section](https://gitlab.iri.upc.edu/mobile_robotics/adc/platforms/model_car/iri_model_car_odometry#parameters) for more information on the available parameters.
* **encoders_topic** (default=/encoders): Name of the encoders topic to be used.
* **odom_topic** (default=/odom): Name of the odom topic to be used
* **control_topic** (default=/control): Name of the control topic to be used.
* **ackermann_feedback_topic** (default=/ackermann_feedback): Name of the ackermann feedback topic to be used.
To include the iri_model_car_odometry into an other launch file, include the following lines:
To include the iri_model_car_odometry into another launch file, include the following lines:
```
<include file="$(find iri_model_car_odometry)/launch/node.launch">
......
......@@ -43,7 +43,7 @@ gen.add("odom_frame", str_t, 0, "Name of the odometry fram
gen.add("robot_frame", str_t, 0, "Name of the robot frame", "base_footprint")
gen.add("encoder_ticks", int_t, 0, "Number of encoder ticks per revolution", 60, 1, 1000)
gen.add("wheel_diameter", double_t, 0, "Diameter of the wheel in meters", 0.108, 0.01,1000)
gen.add("wheel_distance", double_t, 0, "Distance between wheels in meters", 0.216, 0.01,1000)
gen.add("wheel_distance", double_t, 0, "Distance between wheels in meters", 0.261, 0.01,1000)
gen.add("axel_distance", double_t, 0, "Distance betweena axels in meters", 0.3662, 0.01,1.0)
gen.add("enable_filter", bool_t, 0, "Enable the low pass filter for the encoder data", True)
gen.add("filter_coeff", double_t, 0, "Coefficient for the first order low pass filter", 0.3, 0.01,1.0)
......
......@@ -3,7 +3,7 @@ odom_frame: "car1/odom"
robot_frame: "car1/base_footprint"
encoder_ticks: 30
wheel_diameter: 0.100
wheel_distance: 0.216
wheel_distance: 0.261
axel_distance: 0.3662
enable_filter: True
filter_coeff: 0.3
......
......@@ -3,7 +3,7 @@ odom_frame: "car2/odom"
robot_frame: "car2/base_footprint"
encoder_ticks: 30
wheel_diameter: 0.100
wheel_distance: 0.216
wheel_distance: 0.261
axel_distance: 0.3662
enable_filter: True
filter_coeff: 0.3
......
......@@ -3,7 +3,7 @@ odom_frame: "model_car/odom"
robot_frame: "model_car/base_footprint"
encoder_ticks: 30
wheel_diameter: 0.100
wheel_distance: 0.216
wheel_distance: 0.261
axel_distance: 0.3662
enable_filter: True
filter_coeff: 0.3
......
......@@ -3,7 +3,7 @@ odom_frame: "model_car/odom"
robot_frame: "model_car/base_footprint"
encoder_ticks: 30
wheel_diameter: 0.100
wheel_distance: 0.216
wheel_distance: 0.261
axel_distance: 0.3662
enable_filter: True
filter_coeff: 0.3
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment