{"id":1049,"date":"2026-01-06T13:04:57","date_gmt":"2026-01-06T18:04:57","guid":{"rendered":"https:\/\/carleton.ca\/trustcav\/?post_type=cu-events&#038;p=1049"},"modified":"2026-03-16T10:49:46","modified_gmt":"2026-03-16T14:49:46","slug":"getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session","status":"publish","type":"cu-events","link":"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/","title":{"rendered":"Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles"},"content":{"rendered":"<p>For an autonomous vehicle or mobile robot to effectively navigate both structured and unstructured environments requires knowledge of the vehicle\u2019s \u201cstate\u201d, which may include its position, orientation, speed, or other information about its status in the world in which it operates. \u00a0Solving the state estimation problem is one of the three fundamental challenges in autonomy engineering, alongside planning and control. \u00a0This short workshop is designed to provide postgraduate-level students with a review and introduction to the fundamentals of state estimation for linear and nonlinear systems with a focus on the unique challenges associated with wheeled autonomous vehicles.<\/p>\n<p><strong>Joshua Marshall<\/strong>, PhD, PEng, is a Professor in the Department of Electrical &amp; Computer Engineering at Queen\u2019s University, Kingston, ON, where he teaches in the Mechatronics &amp; Robotics Program and leads the Offroad Robotics research group. \u00a0His research focuses on field and mobile robotics, autonomous driving in challenging conditions, systems control engineering, vehicle navigation and mapping.\u00a0 For more information about his research and teaching, visit the <a href=\"http:\/\/queensu.ca\/offroad-robotics\">group<\/a> and his <a href=\"http:\/\/queensu.ca\/offroad-robotics\/people\/joshua-marshall\">full bio<\/a>.<\/p>\n<script type=\"text\/javascript\">var gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener(\"DOMContentLoaded\",o):document.addEventListener(\"gform_main_scripts_loaded\",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook(\"action\",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook(\"filter\",o,n,r,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,n){gform.removeHook(\"action\",o,n)},removeFilter:function(o,n,r){gform.removeHook(\"filter\",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+\"_\"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==n?t.apply(null,r):r[0]=t.apply(null,r)})),\"filter\"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});<\/script>\n                <div class='gf_browser_gecko gform_wrapper gravity-theme gform-theme--no-framework' data-form-theme='gravity-theme' data-form-index='0' id='gform_wrapper_2' >\n                        <div class='gform_heading'>\n                            <h2 class=\"gform_title\">Registration Form - April Workshop<\/h2>\n                            <p class='gform_description'><\/p>\n                        <\/div><form method='post' enctype='multipart\/form-data'  id='gform_2'  action='\/trustcav\/wp-json\/wp\/v2\/cu-events\/1049' data-formid='2' >\n                        <div class='gform-body gform_body'><div id='gform_fields_2' class='gform_fields top_label form_sublabel_above description_below'><div id=\"field_2_17\"  class=\"gfield gfield--type-section gsection field_sublabel_above gfield--has-description field_description_below gfield_visibility_hidden\"  data-js-reload=\"field_2_17\"><div class='admin-hidden-markup'><i class='gform-icon gform-icon--hidden'><\/i><span>Hidden<\/span><\/div><h3 class=\"gsection_title\">Next Steps: Install a Payment Add-On<\/h3><div class='gsection_description' id='gfield_description_2_17'>To accept payments on this form you will need to install one of our payment add-ons. To learn more about your payment add-on options, visit the following page (https:\/\/www.gravityforms.com\/blog\/payment-add-ons). Important: Delete this tip before you publish the form.<\/div><\/div><div id=\"field_2_12\"  class=\"gfield gfield--type-section gsection field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_12\"><h3 class=\"gsection_title\">Contact Details<\/h3><\/div><fieldset id=\"field_2_1\"  class=\"gfield gfield--type-name gfield_contains_required field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_1\"><legend class='gfield_label gform-field-label gfield_label_before_complex'  >Name<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend><div class='ginput_complex ginput_container ginput_container--name no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name gform-grid-row' id='input_2_1'>\n                            \n                            <span id='input_2_1_3_container' class='name_first gform-grid-col gform-grid-col--size-auto' >\n                                                    <label for='input_2_1_3' class='gform-field-label gform-field-label--type-sub '>First<\/label>\n                                                    <input type='text' name='input_1.3' id='input_2_1_3' value=''   aria-required='true'    autocomplete=\"given-name\" \/>\n                                                <\/span>\n                            \n                            <span id='input_2_1_6_container' class='name_last gform-grid-col gform-grid-col--size-auto' >\n                                                            <label for='input_2_1_6' class='gform-field-label gform-field-label--type-sub '>Last<\/label>\n                                                            <input type='text' name='input_1.6' id='input_2_1_6' value=''   aria-required='true'    autocomplete=\"family-name\" \/>\n                                                        <\/span>\n                            \n                        <\/div><\/fieldset><fieldset id=\"field_2_2\"  class=\"gfield gfield--type-email gfield--width-full gfield_contains_required field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_2\"><legend class='gfield_label gform-field-label gfield_label_before_complex'  >Email<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_text\">(Required)<\/span><\/span><\/legend><div class='ginput_complex ginput_container ginput_container_email gform-grid-row' id='input_2_2_container'>\n                                <span id='input_2_2_1_container' class='ginput_left gform-grid-col gform-grid-col--size-auto'>\n                                    <label for='input_2_2' class='gform-field-label gform-field-label--type-sub '>Enter Email<\/label>\n                                    <input class='' type='text' name='input_2' id='input_2_2' value=''    aria-required=\"true\" aria-invalid=\"false\"  autocomplete=\"email\"\/>\n                                <\/span>\n                                <span id='input_2_2_2_container' class='ginput_right gform-grid-col gform-grid-col--size-auto'>\n                                    <label for='input_2_2_2' class='gform-field-label gform-field-label--type-sub '>Confirm Email<\/label>\n                                    <input class='' type='text' name='input_2_2' id='input_2_2_2' value=''    aria-required=\"true\" aria-invalid=\"false\"  autocomplete=\"email\"\/>\n                                <\/span>\n                                <div class='gf_clear gf_clear_complex'><\/div>\n                            <\/div><\/fieldset><div id=\"field_2_22\"  class=\"gfield gfield--type-section gsection field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_22\"><h3 class=\"gsection_title\">Institution Information<\/h3><\/div><div id=\"field_2_23\"  class=\"gfield gfield--type-text field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_23\"><label class='gfield_label gform-field-label' for='input_2_23' >University<\/label><div class='ginput_container ginput_container_text'><input name='input_23' id='input_2_23' type='text' value='' class='large'      aria-invalid=\"false\"   \/> <\/div><\/div><div id=\"field_2_25\"  class=\"gfield gfield--type-text gfield--width-full field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_25\"><label class='gfield_label gform-field-label' for='input_2_25' >Department<\/label><div class='ginput_container ginput_container_text'><input name='input_25' id='input_2_25' type='text' value='' class='large'      aria-invalid=\"false\"   \/> <\/div><\/div><div id=\"field_2_26\"  class=\"gfield gfield--type-number field_sublabel_above gfield--no-description field_description_below gfield_visibility_visible\"  data-js-reload=\"field_2_26\"><label class='gfield_label gform-field-label' for='input_2_26' >Student ID<\/label><div class='ginput_container ginput_container_number'><input name='input_26' id='input_2_26' type='text'    value='' class='large'      aria-invalid=\"false\"  \/><\/div><\/div><\/div><\/div>\n        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_2' class='gform_button button' value='Submit'  onclick='if(window[\"gf_submitting_2\"]){return false;}  window[\"gf_submitting_2\"]=true;  ' onkeypress='if( event.keyCode == 13 ){ if(window[\"gf_submitting_2\"]){return false;} window[\"gf_submitting_2\"]=true;  jQuery(\"#gform_2\").trigger(\"submit\",[true]); }' \/> \n            <input type='hidden' class='gform_hidden' name='is_submit_2' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='2' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_2' value='WyJbXSIsIjI5OTRjYWM3ZDVmMDhlNGMwMzNhNTc2NGZlYzBiZDA2Il0=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_target_page_number_2' id='gform_target_page_number_2' value='0' \/>\n            <input type='hidden' class='gform_hidden' name='gform_source_page_number_2' id='gform_source_page_number_2' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <p style=\"display: none !important;\"><label>&#916;<textarea name=\"ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"ak_js\" value=\"68\"\/><script>document.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );<\/script><\/p><\/form>\n                        <\/div><script type=\"text\/javascript\">\ngform.initializeOnLoaded( function() {gformInitSpinner( 2, 'https:\/\/carleton.ca\/trustcav\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_2').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_2');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_2').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_2').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_2').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_2').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_2').val();gformInitSpinner( 2, 'https:\/\/carleton.ca\/trustcav\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [2, current_page]);window['gf_submitting_2'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_2').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [2]);window['gf_submitting_2'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_2').text());}, 50);}else{jQuery('#gform_2').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [2, current_page]);gform.utils.trigger({ event: 'gform\/postRender', native: false, data: { formId: 2, currentPage: current_page } });} );} );\n<\/script>\n\n","protected":false},"template":"","meta":{"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_mi_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_links_to":"","_links_to_target":""},"daevent-type":[39],"event-audience":[],"event-featured":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles - Events - TrustCAV<\/title>\n<meta name=\"description\" content=\"For an autonomous vehicle or mobile robot to effectively navigate both structured and unstructured environments requires knowledge of the vehicle\u2019s\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/\",\"url\":\"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/\",\"name\":\"Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles - Events - TrustCAV\",\"isPartOf\":{\"@id\":\"https:\/\/carleton.ca\/trustcav\/#website\"},\"datePublished\":\"2026-01-06T18:04:57+00:00\",\"dateModified\":\"2026-03-16T14:49:46+00:00\",\"description\":\"For an autonomous vehicle or mobile robot to effectively navigate both structured and unstructured environments requires knowledge of the vehicle\u2019s\",\"breadcrumb\":{\"@id\":\"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/carleton.ca\/trustcav\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Events\",\"item\":\"https:\/\/carleton.ca\/trustcav\/cu-events\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/carleton.ca\/trustcav\/#website\",\"url\":\"https:\/\/carleton.ca\/trustcav\/\",\"name\":\"TrustCAV\",\"description\":\"Carleton University\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/carleton.ca\/trustcav\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles - Events - TrustCAV","description":"For an autonomous vehicle or mobile robot to effectively navigate both structured and unstructured environments requires knowledge of the vehicle\u2019s","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/","url":"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/","name":"Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles - Events - TrustCAV","isPartOf":{"@id":"https:\/\/carleton.ca\/trustcav\/#website"},"datePublished":"2026-01-06T18:04:57+00:00","dateModified":"2026-03-16T14:49:46+00:00","description":"For an autonomous vehicle or mobile robot to effectively navigate both structured and unstructured environments requires knowledge of the vehicle\u2019s","breadcrumb":{"@id":"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/carleton.ca\/trustcav\/cu-events\/getting-started-with-control-and-estimation-for-autonomous-vehicles-2nd-session\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/carleton.ca\/trustcav\/"},{"@type":"ListItem","position":2,"name":"Events","item":"https:\/\/carleton.ca\/trustcav\/cu-events\/"},{"@type":"ListItem","position":3,"name":"Follow That Robot! Getting Started with State Estimation for Autonomous Vehicles"}]},{"@type":"WebSite","@id":"https:\/\/carleton.ca\/trustcav\/#website","url":"https:\/\/carleton.ca\/trustcav\/","name":"TrustCAV","description":"Carleton University","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/carleton.ca\/trustcav\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"}]}},"acf":{"Date":"2026.04.09","Start Time":"16:00","End Time":"18:00","Multi Day Event":"","Location: Building":"canal","Event Location":"TBD","show_cost":"yes","Cost":"","audience":false,"Contact Name":"","Contact Email":"","Contact Phone":"","More Info Link":"","Location: Room":"2202"},"_links":{"self":[{"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/cu-events\/1049"}],"collection":[{"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/cu-events"}],"about":[{"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/types\/cu-events"}],"version-history":[{"count":3,"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/cu-events\/1049\/revisions"}],"predecessor-version":[{"id":1135,"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/cu-events\/1049\/revisions\/1135"}],"wp:attachment":[{"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/media?parent=1049"}],"wp:term":[{"taxonomy":"daevent-type","embeddable":true,"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/daevent-type?post=1049"},{"taxonomy":"event-audience","embeddable":true,"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/event-audience?post=1049"},{"taxonomy":"event-featured","embeddable":true,"href":"https:\/\/carleton.ca\/trustcav\/wp-json\/wp\/v2\/event-featured?post=1049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}