Efficient Robot Movement
Retina, 103 74 71 bytes

&lt;
&gt;&gt;&gt;
+`(&gt;(\^*&gt;){3})\^
^$1
+`\^(&gt;\^*&gt;)\^
$1
&gt;&gt;(\^*)&gt;(\^+)
&lt;$2&lt;$1
&lt;?&gt;*$



Try it online! Link includes test cases. Explanation:

&lt;
&gt;&gt;&gt;


Turn left turns into triple right turns.

+`(&gt;(\^*&gt;){3})\^
^$1


Reduce all turns modulo 4.

+`\^(&gt;\^*&gt;)\^
$1


Cancel out movements in opposite directions.

&gt;&gt;(\^*)&gt;(\^+)
&lt;$2&lt;$1


Turn a triple right turn back into a left turn. This also handles the case of &gt;&gt;^&gt;^ which needs to become &lt;^&lt;^.

&lt;?&gt;*$


Delete unnecessary trailing turns.