Executing a custom motion pattern, whether with a single motion axis or with multiple axes is a special topic of mechatronics and robotics as well. It is applicable for mobile systems (like ROVs, UAVs, Drones etc.) under the umbrella of route planning, becoming the gesture & mimics for humanoid robots, and trajectory waypoints for serial robot arms and parallel robots such as Stewart Platforms or Hexapods.
Replicating human gestures & mimics also require custom motion playback capabilities, but with another robot type (Humanoid robot image in courtesy of Engineered Arts)
No matter what the end-use is, the underlying principle of motion playback is quite similar. One needs to control each actuator/motor, in a combined closed-loop to achieve the desired motion outcome. This would require a sophisticated control system and would require at least 2 different feedback controlled loops. First feedback controlled loop is required for controlling the desired position/speed/torque of individual actuators/motors. The 2nd feedback controlled loop is required for controlling the desired position/speed of the moving part/mechanism/entire robot. There may be more feedback chains and loops to control other parameters of the motion such as time, applied force and orientation of the robot as well.
As the name implies, this is an automatic control system and it falls into the subject of Control Engineering, which is taught under various academic disciplines such as Robotics, Mechatronics or Electrical Engineering. Read our other blog post to learn more about the main concepts of Control Engineering.
The Need and the Usage of Motion Playback with a Hexapod Positioner System
Hexapod Positioner System -also known as Stewart Platforms- are generally used either for precision -and static- positioning applications or for dynamic motion generation applications.
Flight Simulation is a good example of the Hexapod Robots for the purpose of custom dynamic motion playback
Although the platform position of the Hexapod can be changed by sending some rapid commands, they are not meant for this kind of operation and the delays of communication would penalize this usage. The dynamic motion playback use case would generally require other ways to control the device in a more dynamic manner.
There are 2 predominant options to achieve a dynamic motion playback with Hexapod Robots:
Application of predefined, analytically calculated AND repeating motion patterns such as pure sinusoidal vibration or half-sine oscillation patterns. Such patterns can be generated internally by the embedded controller of the platform and the controller can operate the platform to achieve the calculated set-points indefinitely in real-time, This would remove the need for communicating back and forth with the external software and only the actual position feedback needs to be streamed.
Importing a list of arbitrary points with timestamps at once to the embedded controller of the platform. The controller will operate the platform to reach each and every point in the list. This would require some special commands between the user software and the embedded controller.
Acrome Stewart Platforms have both 2 options of dynamic motion generation in their Graphical User Interface
For option #1, the user interface software of the Stewart Platforms has some knobs/buttons to control the repeating and continuous motion patterns. The Vibration and Oscillation mode of Acrome Stewart Platform software is a good example for this.
But for option #2, there has to be some way of inputting the list of coordinate points to the platform. A 2D data list on the user interface software may be possible, but it will be quite time consuming to write each value of such a list, since each pose of the robot has at least 6 coordinates. Another approach might be using a programming language and sending the 2D data array using the API (Application Programming Interface) of the platform.
The last, and probably the most popular method is to import the list of coordinate points from a spreadsheet file, such as a .csv or .xlsx™ file at once and as a bulk data input. In the next section of this blog, we will be focusing on this method of This is a 2 step process and we will be providing the step by step instructions on how to use ACROME’s Stewart Platform graphical user interface along with a spreadsheet file to import the motion playback setpoints.
Setting up the system
In this section, we will be giving a detailed description on how to use ACROME’s Stewart Platform graphical user interface (GUI) software to input the list of coordinate points to the hexapod system and play (back) the custom motion profile. We will first introduce the Spreadsheet file format, which includes the 6D coordinates and timestamps. Then we will show how to load such a file with the GUI software and finally how to run the system and observe the generated motions.
Introducing the Spreadsheet file format
The setpoints (ie. waypoints) of the custom motion pattern has to be prepared in a compatible file and data format with the firmware of the hexapod. The Acrome Stewart Platforms works with the .csv file format. Prepared .csv files can be loaded using the user interface software. The top row defines the format of the .csv file and the format should be as follows:
"elapsedTime, x, y, z, roll, pitch, yaw"
In this format; the unit of time is in seconds, the units of the x, y, z axes coordinates are in millimeters, and the units of the roll, pitch and yaw angles are in degrees. Below screenshot shows how the file looks in Microsoft Excel® environment.
To convert an Excel file from .xlsx format to .csv, go to "Save As" in the "File" tab of Excel and select ".csv" from the options provided. Your file will be converted to a comma-separated values (.csv) format as below.
CSV file format is actually a text file with comma (;) used as a special character to separate the consecutive values - as the name implies
Frequently Asked Questions about data points
Although the .CSV file format is self-explanatory, the values in the file have a tight correlation with the capability and motion (ie. workspace) limit of the hexapod robot used with. Before getting into the generation part, we need to share a short-list of very frequently asked questions about the data points.
Data Points Limit (ie. File read limit) The number of lines and size of the CSV file is dependant on the performance of the host computer. The recommended maximum number of lines is 1 Million lines, which is approx. a 50MB file size.
Min. (elapsed) time step The minimum time interval is 4ms (0.004s). In the CSV file, time is expressed as the time elapsed from the initiation of the first movement. > 1st Row Elapsed Time column: 0.004 > 2nd Row Elapsed Time column: 0.008 > 3rd Row Elapsed Time column: 0.020 can be exemplified in this format
Correlation between the time step and motion execution time The processing of each row in the CSV file is adjusted by the time in the first column. The motion is not waited for completion before moving to the next line.
Motion limits (ie. pre-check for out of workspace) Each point specified in the CSV file is provided as input for the kinematic solution. The system does not try to go to a point outside the workspace of the system. The system will not attempt to go to a point outside its operating range.
Canceling the motion (ie. Clear Motion command) The motion can be stopped with the Clear Motion button.
Changing the motion (row by row) values on the fly While the system is in motion , you cannot instantly change the values read from the CSV file. To modify the values, stop the motion using the Clear Motion button. Update and re-import the CSV file. This is the current state of the firmware and can be altered in future revisions.
Using the GUI to import the prepared Spreadsheet
After preparing the motion data in the format above, click the browse button (...) on the interface and select the prepared file. Depending on the file size (ie. number of data points) and the computer’s performance as well, the data points will be populated in the table below the file selection section within some time. You may scroll down the table using the vertical scrollbar and confirm if all the data points are read correctly.
Make sure that motor power and kinematic solutions are enabled on the Stewart Platform software before clicking the Run button.
Data point contents of the CSV file will be populated and be seen on the User Interface as soon as the file is selected
After clicking the Run, the data points in the .csv file will be run continuously until the end. “Clear Motion” button may be clicked at any time to stop the sequence of the motion.
Operation
After the .CSV data file is imported, all it needs is to click the Run button (the motor and kinematics should be enabled before). The Stewart Platform starts executing the custom motion data points one by one sequentially until the list is finished. Meanwhile, the Platform also starts moving in real-time. So, the user can observe the motion from the User Interface during the operation. To stop the operation from the hardware, the e-Stop button can be used.
Custom motion pattern generation using Stewart Platform Software (The product motion video will be added soon).
Conclusion
In this blog post, we described the concept of custom motion playback, and the use of the 6D Hexapod Positioner System for this purpose. Hexapod Positioners in general are powerful tools for achieving precise and intuitive motion control in a variety of applications. Creating dynamic motion patterns is a frequently requested capability and is quite easy to achieve with suitable software and platforms.
Contact ACROME if you have an application in your mind, learn further details or ask for a live demo.
Oops! Something went wrong while submitting the form.
Discover Acrome
Acrome was founded in 2013. Our name stands for ACcessible RObotics MEchatronics. Acrome is a worldwide provider of robotic experience with software & hardware for academia, research and industry.