#111 Autonomous Control Library v1.0

[Music] hello and welcome to another video by the danvas software pae team today i'm going to review the autonomous control library blocks let's start by looking at what is autonomy well autonomous does not always mean full self-driving vehicles in fact autonomy is broken down into six different levels starting with level zero which is no autonomy level one is driver-assisted features like anti-lock braking and cruise control this low-level autonomy moves up to partial and conditional control like collision detection braking and self parking and on to high and full self operating so where does danfoss fit in danfoss controllers have been performing level one and two autonomy for a long time and in 2020 we released the autonomous control library to provide our plus one guide users the core functionality required for all levels of autonomy danfoss continues to develop and integrate new autonomous vehicle technologies into its existing plus one platform the davis vehicle is one of several test platforms used at our application development centers for testing integration of new sensors and technologies each of the testing and development vehicles used by danfoss served as stock machines which were then modified to provide autonomous functionality with the addition of the off-the-shelf sensors and tight integration with dan foss microcontrollers these vehicles were quickly adapted to navigate environments without an operator the autonomous control library is another septan fossus taking to provide our customers with the technology needed to enter the autonomous market dan foss's first release of the autonomous control library includes seven function blocks and focuses on localization and navigation the seven blocks are extended kalman filter or ekf position origin path follower relative position universal transverse mirror catter or utm conversion utm conversion with zone and wheel odometry each block has a service tool p1d file to monitor its checkpoints the acl library along with other plus one files and tools can be downloaded from the update center see video number 66 for more information on using the update center localization or position sensing is the process of producing a constant and reliable estimate of a vehicle's location in the world navigation is the process of determining a path to reach a goal location now let's take a look at a simplified guide application like any application we start with our inputs in this case it is the vehicle steering and movement sensors and gps values we will take those values convert them and get a value that is our starting and current position we will also calculate our wheel odometry then combine gps and sensor data to get an improved position estimate we will plan our path and calculate curvature commands to steer and follow the path of course what the application looks like depends somewhat on the vehicle and when we take into consideration things like calculating sensor inputs mode switching geo fencing error checking and functional safety the application grows much bigger than our simplified one let's start with localization the first part is to determine where our origin is this will start with inputting gps data when introducing gps data to the state matrix it must first be transformed into cartesian units typically metric meters the utm conversion blocks take the latitude and longitude data and convert it to utm values the danfoss acl utm blocks output millimeters this transformation is based on the universal transverse mere catter or utm projection the converted utm coordinate data is expressed in terms of x east millimeters and y north millimeters a specifically defined grid regions around the globe you might be asking why convert the values why not just use gps utm provides a constant distance relationship anywhere on the map in angular coordinate systems like latitude and longitude the distance covered by a degree of longitude differs as you move towards the north and south poles and only equals the distance covered by a degree of latitude at the equator the utm system allows the coordinate numbering system to be tied directly to a distance measuring system there are no negative numbers it is a decimal based system and the danfoss function blocks measure in millimeters the utm conversion zone block adds the input for user specified utm zone they can be used together or separately the origin function block captures the starting utm position of the machine for relative position and other calculations the input from the utm conversion block is set when the system is told to set the origin this would normally be when there is accurate gps data available or if the custom utm position is used the relative position block takes in the origin and utm values from one of the utm blocks and calculates the relative position between the machine's current position and the origin relative utm is stored as x and y distance from the origin in millimeters this simplifies operations for downstream blocks so calculations do not need to be done in raw latitude and longitude values in this way a vehicle moving east reports an increasing x position while heading north it reports an increasing y position the wheel odometry function block provides wheel odometry information the function block converts machine speed and steering angle inputs into vehicle movements velocity and yaw rate the pair consists of the linear velocity millimeters per second and the angular velocity degrees per second the values are defined relative to a coordinate frame which has its origin on the center of the fixed axle the wheel odometry block also has inputs for standard deviation values of the steering and velocity sensors the values characterize the amount of noise in the sensor the output is a velocity yaw deviations for both and a status for when new data is available let's take a closer look at the inputs related to vehicle movement yaw rotation is a movement around the axis of a rigid body or vehicle that changes the direction it is pointing to the left or right of its direction of motion an inertial measurement unit or imu device can be used to bring in acceleration data an imu device measures and reports a vehicle-specific force angular rate and the orientation of the vehicle using a combination of accelerometers and gyroscopes velocity and acceleration are two inputs we need velocity is the rate of change of position a magnitude and direction acceleration is the rate of change of velocity when using gps there are some concerns that lead us to consider other ways to calculate our position gps has low operating frequency and sensor errors so it is impossible to measure the position accurately in real time we also run into issues when using gps in tunnels and in buildings with the vehicle movement sensor data coming from the can bus we can combine data from each of those sensors to produce an improved estimate of the vehicle's position in orientation over time when we have reliable gps data it can be used to verify our position a common approach for localization is the extended kalman filter or ekf algorithm the ekf is a state estimation algorithm for non-linear systems which allows for the fusion of multiple sensor readings in a typical scenario a vehicle may contain a gps unit and imu and wheel odometry sensors the extended kelman filter or ekf position block receives sensor data from a utm block an internal measurement unit or imu and wheel odometry data the filter then fuses these different sensor measurements together to create an improved localization estimate the output is the utm x and y coordinates yaw and their deviation values each sensor input includes a standard deviation signal that describes the amount of potential error in a given reading this helps the function block appropriately filter the incoming signals based on its level of confidence most sensors have a standard process for determining their deviation values once the localization subsystem has provided information regarding the vehicle's current position the next step in the autonomous pipeline is to plan a path to reach a gold location typically a path will consist of a series of evenly spaced temporary goals or waypoints that can be followed using these waypoints a path following the algorithm can be used to steer the vehicle and remain on the path these wave points are used to determine a line segment in space this segment along with the desired look ahead distance is used to determine an optimal look ahead point on the segment to drive towards given the coordinates of this lookahead point relative to the vehicle's coordinate frame the required steering angle can be computed according to the vehicle's wheelbase and resulting steering angle the planned path parameters are an input to the path follower function block which allows a machine to follow a path plan made up of series of bezier curves paths can be loaded as a fixed path when the machine starts or can be added dynamically the block has inputs of a look ahead distance it uses the ekf block current position outputs and path plan waypoint information like x and y values one of the function blocks outputs is a command of curvature to bring the machine into the path within the look ahead distance which can be used for a steering command positive values are left curves the more positive the sharper the left turn negative values are right curves the more negative the sharper the right turn the block also has a tracking error output that tracks the current position versus the plan position the path follower is used to command the vehicle steering and velocity to follow the path plan as closely as possible the vehicle's current position is used to identify the closest wave points in the path these wave points are used to determine a line segment in space this segment along with the desired look ahead distance that is the l on the image is used to determine an optimal look ahead point on the segment to drive towards autonomy is just like any other new technology in our industry initially it seems complicated but this is usually because we look at it as one big page we have to break it down into smaller pages which allows us to better understand how it works i hope this video provides you with information on how the danfoss acl blocks work and even more on how autonomy works dan foss has committed to continue to provide its guide users with the tools they need to allow them to easily and quickly develop autonomous machines this includes software and hardware this concludes our video on the acl function blocks for more information on plus one software please remember to visit our forum or our help desk and don't forget to subscribe to our youtube channel to see our latest video releases thank you for listening