@@ -8,22 +8,27 @@ There are two possible collision's triggers:
...
@@ -8,22 +8,27 @@ There are two possible collision's triggers:
When a collision detection is triggered, an ICP for each laser is performed. When an ICP has been succesful (meaning that the points used for the calculation are more than *icp_min_points* and the error per point is lees than *icp_max_err_by_points*) its odometry is compared with the wheel odometry. If the difference between both is big enough (meaning that is bigger than *odom_trans_th* or *odom_angular_th*), is considered as a collision. The node that performs that ICP is [iri_laser_scan_icp](https://gitlab.iri.upc.edu/mobile_robotics/dogs_project/iri_laser_scan_icp).
When a collision detection is triggered, an ICP for each laser is performed. When an ICP has been succesful (meaning that the points used for the calculation are more than *icp_min_points* and the error per point is lees than *icp_max_err_by_points*) its odometry is compared with the wheel odometry. If the difference between both is big enough (meaning that is bigger than *odom_trans_th* or *odom_angular_th*), is considered as a collision. The node that performs that ICP is [iri_laser_scan_icp](https://gitlab.iri.upc.edu/mobile_robotics/dogs_project/iri_laser_scan_icp).
A ROS [laser scan range filter](http://wiki.ros.org/laser_filters) is performed on laser scans to remove the closest points (the object that performs the collision and is a mobile object) before the ICP.
This node also provides the following configuration files located in [config](./config) directory:
This node also provides the following configuration files located in [config](./config) directory:
- ~**calculate_ang_vel** (Boolean; default: False): Flag to calculate robot angular vel from odometry.
- ~**calculate_ang_vel** (Boolean; default: False): Flag to calculate robot angular vel from odometry.
...
@@ -54,9 +59,11 @@ It also provides a [default bno055 calibration file](./calibration/bno055.cal).
...
@@ -54,9 +59,11 @@ It also provides a [default bno055 calibration file](./calibration/bno055.cal).
- ~**collision_timeout** (Double; default: 4.0; min: 1.0; max: 10.0): Timeout to detect an end of collision.
- ~**collision_timeout** (Double; default: 4.0; min: 1.0; max: 10.0): Timeout to detect an end of collision.
- ~**collision_acc_transition_counter_en** (Boolean; default: False): Enable the collision counter for accelerometer detections.
- ~**collision_acc_transition_counter_en** (Boolean; default: False): Enable the collision counter for accelerometer detections.
- ~**collision_acc_th** (Double; default: 9.8; min: 0.1; max: 160.0): Acceleration threshold to detect a collision.
- ~**collision_acc_th** (Double; default: 9.8; min: 0.1; max: 160.0): Acceleration threshold to detect a collision.
- ~**collision_acc_th_end** (Double; default: 9.8; min: 0.1; max: 160.0): Acceleration threshold to detect an end of collision.
- ~**collision_acc_counter_limit** (Integer; default: 6; min: 1; max: 30): Number of low acc imu meassures to detect an end of collision.
- ~**collision_acc_counter_limit** (Integer; default: 6; min: 1; max: 30): Number of low acc imu meassures to detect an end of collision.
- ~**collision_ang_vel_transition_counter_en** (Boolean; default: False): Enable the collision counter for angular velocity detections.
- ~**collision_ang_vel_transition_counter_en** (Boolean; default: False): Enable the collision counter for angular velocity detections.
- ~**collision_ang_vel_th** (Double; default: 0.3; min: 0.1; max: 1.0): Angular velocity threshold to detect a collision.
- ~**collision_ang_vel_th** (Double; default: 0.3; min: 0.1; max: 1.0): Angular velocity threshold to detect a collision.
- ~**collision_ang_vel_th_end** (Double; default: 0.3; min: 0.1; max: 1.0): Angular velocity threshold to detect an end of collision.
- ~**collision_ang_vel_counter_limit** (Integer; default: 6; min: 1; max: 30): Number of low acc imu meassures to detect an end of collision.
- ~**collision_ang_vel_counter_limit** (Integer; default: 6; min: 1; max: 30): Number of low acc imu meassures to detect an end of collision.
- ~**odom_trans_th** (Double; default: 0.1; min: 0.01; max: 0.5): Max translational difference between wheels and ICP odometries.
- ~**odom_trans_th** (Double; default: 0.1; min: 0.01; max: 0.5): Max translational difference between wheels and ICP odometries.
- ~**odom_angular_th** (Double; default: 0.154¡; min: 0.01; max: 0.7): Max angular difference between wheels and ICP odometries in rad.
- ~**odom_angular_th** (Double; default: 0.154¡; min: 0.01; max: 0.7): Max angular difference between wheels and ICP odometries in rad.
...
@@ -119,7 +126,7 @@ It also provides a [default bno055 calibration file](./calibration/bno055.cal).
...
@@ -119,7 +126,7 @@ It also provides a [default bno055 calibration file](./calibration/bno055.cal).
sudo ldconfig
sudo ldconfig
```
```
At this point we will have installed all the c++ libraries. /etc/ must have the following lines:
At this point we will have installed all the c++ libraries. */etc/ld.so.conf.d/iri.conf* must have the following lines:
```
```
/usr/local/lib/iri/iriutils
/usr/local/lib/iri/iriutils
/usr/local/lib/iri/comm
/usr/local/lib/iri/comm
...
@@ -174,6 +181,7 @@ This node provides the following launch files:
...
@@ -174,6 +181,7 @@ This node provides the following launch files:
-*odom_topic*: Odometry input data topic name to be remaped.
-*odom_topic*: Odometry input data topic name to be remaped.
-*front_laser_topic*: Front laser input data topic name to be remaped.
-*front_laser_topic*: Front laser input data topic name to be remaped.
-*rear_laser_topic*: Rear laser input data topic name to be remaped.
-*rear_laser_topic*: Rear laser input data topic name to be remaped.
-*relocalization_topic_name*: relocalization output topic name to be remaped.
-*icp_service_name*: Laser_scan ICP service to be remaped.
-*icp_service_name*: Laser_scan ICP service to be remaped.
-*diagnostics*: Flag to launch diagnostics agregator.
-*diagnostics*: Flag to launch diagnostics agregator.
-*output*: Ros node launch output's parameter.
-*output*: Ros node launch output's parameter.
...
@@ -188,7 +196,7 @@ This node provides the following launch files:
...
@@ -188,7 +196,7 @@ This node provides the following launch files:
-*diagnostics*: Flag to launch diagnostics agregator.
-*diagnostics*: Flag to launch diagnostics agregator.
-*sim_time*: Boolean to set */use_sim_time* parameter.
-*sim_time*: Boolean to set */use_sim_time* parameter.
-**collisions.launch**: General launch file with IMU driver, IMU bias filter, laser_scan ICP and collision managment. It has the following arguments:
-**collisions.launch**: General launch file with IMU driver, IMU bias filter,laser scan range filters, laser_scan ICP and collision managment. It has the following arguments: