By: Tate McGeary
To send commands to the MicroBiPed, the group first has to figure out and interpret what the various telemetry commands were. To do this first, the Arxterra Application was set in RC mode with Bluetooth off and developer mode on. By setting developer mode the telemetry response are displayed on the phone’s screen. What is immediately seen is a 5 element matrix of the telemetery
EG: 01 01 FF 01 FF
The below information is available in a PDF file provided by Professor Hill. It is only written here to give some insight on how to interpret the information without going through the whole PDF, however it is recommended to go through the PDF in order to understand and be able to customize the Arxterra application to one’s own needs. If you already know the information, jump to the interpretation section.
It is also important to note that the Arxterra sends a 7 element matrix to the microcontroller as
[1], [2], [3], [4], [5], [6], [7]
With [1] being a packet ID sent to the microcontroller to ensure the correct command, this should be A5. And with [7] being a LRC. If one wants more information on refer to Professor Hill’s lecture provided here. These elements are taken care of already in the Arxterra code.
What is of interest are elements 2-6, this tells the microcontroller what command to issue and how to move. Below is a flowchart of a portion of the command code provided by the Arxterra company, if one wants to see how movement or actions are decided.
Element [2]: Command Bit: I.E. if the command bit is a 0x01 or 1 that tells the command decoder to issue a move command.
Element [3] and [5]: These elements are direction bits. Particularly note that there are two direction bits, that is because the telemetry being used is primarily for tracked vehicles. That means each element is for a different track; [3] is for the left track direction, forward or reverse, [5] is for right track direction, forward or reverse.
In these two elements 01 is forward direction and 02 is reverse direction. For a tracked vehicle it means having the motors spin in forward or reverse, but for a walking robot it just means go forward or go backwards.
Element [4] and [6]: These represent power to the motor. For a walking robot using servos these bits are not important as servos only really have two speeds, not moving to full speed, while typical DC motors can have their speed modified.
Interpretation of the telemetries:
The first step that was done, was to go through both the sliders and the joystick mode to write down all the telemetry response that would be need.
It was immediately determined that 01 means forward direction and 02 means reverse direction for a track, to move forward elements [3] and [5] both need to be 01. This means the decision to go forward will be written as
if (data3 == 1 && data 5 == 1)
Since [4] and [5] are merely power and the BiPed uses servos, those elements can safely be ignored.
To turn right the commands are [3] = 01 and [5] = 02 or [5] != 1. This means our turn left code will be written as
if ((data3 == 1 && data5 != 1))
For turning left [3] and [5] are the opposite: [3] != 1 or [3] = 02 and [5] = 1. The code will then be written as
if ((data3 != 1 && data5 == 1))
So by taking the direction bits for the tracks, the group reinterpreted them to be used for a walking robot by creating the decision tree to interpret forward, right, and left through if else statements. Note: While neutral has been left out it remains the same in micro BiPed and BiPed the telemetry is as follows: 01 04 00 04 00. Giving the statement
if(data3 == 4 && data5 == 4)
Below is the flow chart to help anyone visualize what is happening. If any errors are spotted notify the group if possible for corrections, thank you.