This node provides a system to detect and manage collisions using a [bno055 IMU](https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor) connected with an [USB to TTL serial cable](https://www.mouser.es/ProductDetail/Adafruit/954?qs=GURawfaeGuBg0XxCeRWeUA==).
This node provides a system to detect and manage collisions using a [bno055 IMU](https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor) connected with an [USB to TTL serial cable](https://www.mouser.es/ProductDetail/Adafruit/954?qs=GURawfaeGuBg0XxCeRWeUA==).
There are two possible collision's triggers:
***Acceleration trigger:** When an acceleration is bigger than *collision_acc_th*.
***Angular velocity trigger:** When the difference between IMU's angular velocity readings and the one calculated with the odometry is bigger than *collision_ang_vel_th*.
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).
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: