Most importantly, we needed software that is very intuitive to use. Maple was the perfect software to meet these requirements.
(PRWEB) October 21, 2015
Kinova Robotics designs and manufactures innovative robotics products for personal assistance and service functions. Their flagship robotic arm JACO, now in its second generation, enriches the lives of people with limited upper-body mobility by enabling them to perform routine daily tasks safely and independently. Maple™, Maplesoft’s flagship product for technical computing and documentation, was used by engineers at Kinova to derive and manage the complex matrix equations that underlie the advanced algorithms which control the JACO robotic arm, leading to improved functionality.
JACO features six interlinked segments - the last of which is a three-fingered hand – and operates with 6 degrees of freedom. With a reach of 90cm, it can be mounted onto a motorized wheelchair or a fixed base. Using a joystick controller, the user can move the robot’s hand in three-dimensional space to grasp and release objects as required, to perform routine tasks.
Kinova’s Robotic Algorithms and Control Team faced a key challenge in the design of the arm’s controller. In order to safely operate the robotic arm, they needed to design advanced algorithms involving large matrix equations to calculate the kinematics and applied forces through the arm.
An added complexity is that these computations, which are run on a microcontroller, must be performed repeatedly, at very short time intervals. Therefore, the algorithms must be continuously refreshed at a rapid rate, which creates a very large matrix of simultaneous trigonometric equations.
This kind of mathematical challenge is where Maple excels. Maple’s high-performance symbolic computation engine enables you to describe, visualize and solve complex mathematical problems. Maple features efficient algorithms and tools for high performance computing and large-scale problem solving, enabling it to solve even those problems that are beyond the reach of other software systems.
“We needed software that is known for its robustness – one that is able to manage large equations and matrix computations, and return symbolic solutions. Most importantly, we needed software that is very intuitive to use. Maple was the perfect software to meet these requirements,” says Dr. Alexandre Lecours, project manager in the Robotic Algorithms and Control Team.
Using Maple, the team set about defining the problem and creating a program to solve it. The first step was to define the inputs to the program – which included the number of links, their lengths, and the joint angles. After defining the relationships between these variables, they were able to create a system of trigonometric equations that represented the problem to be solved.
Then, they used Maple’s symbolic computation engine to analyze and simplify these equations to generate the output function, which calculates the position of the hand.
This optimized output function – still in its symbolic form - was then converted into C++ code for use in simulation, and in the arm’s embedded controller. Dr. Lecours explained the reasons for this approach. “We could have done the computation directly in C++,” he says. “However, there are a number of calculations within the matrices that would have resulted in a multiplication by zero. Maple enabled us to evaluate these ahead of time and factor them out, to arrive at a reduced set of equations with fewer computations.”
Given that these computations are being continuously performed with every change in any one of the motors as the robotic arm moves around, having the code in its most optimized form enables the controller to run more efficiently. By eliminating all the null branches of calculations, the controller is able to determine the hand position faster, providing more refined control and ultimately a better user experience.
Dr. Lecours and his colleagues continue to use Maple to develop embedded controllers for their other robotic products. He concludes, “There wasn’t any other software that could help us solve this problem symbolically. Not only was Maple intuitive to use, the Maple code was much easier to understand than the C++ code. This enabled us to quickly develop and debug our product, significantly reducing our development time.”
To learn more about this and other biomechanical applications, view the Maplesoft-IEEE Spectrum Webinar, “System-Level Modeling Techniques Bring Dramatic Improvements to Biomechanical Systems Design.”
Maplesoft™, a subsidiary of Cybernet Systems Co., Ltd. in Japan, is the leading provider of high-performance software tools for engineering, science, and mathematics. Its product suite reflects the philosophy that given great tools, people can do great things.
Maplesoft’s core technologies include the world’s most advanced symbolic computation engine and revolutionary physical modeling techniques. Combined together, these technologies enable the creation of cutting-edge tools for design, modeling, and high-performance simulation.
Maplesoft’s products help to reduce errors, shorten design times, lower costs, and improve results. The Maplesoft product suite includes Maple™, the technical computing and documentation environment, and MapleSim™, the high-performance, multi-domain modeling and simulation tool for physical systems.
Engineers, scientists, and mathematicians use Maplesoft products to enable them to work better, faster, and smarter. Maplesoft’s customers include Ford, Bosch, Boeing, NASA, Canadian Space Agency, Canon and Motorola, covering sectors such as automotive, aerospace, electronics, defense, energy, financial services, consumer products, and entertainment. With Toyota, Maplesoft founded the Plant Modeling Consortium to promote the development of new design techniques for automotive and related industries.
Visit http://www.maplesoft.com to learn more.
About Cybernet Systems Co., Ltd.
Cybernet Systems in Japan provides world-class solutions and services in the CAE and IT areas. For more information, visit http://www.cybernet.co.jp/english/.