This document summarizes a student thesis project on simulating robotic rehabilitation of the upper limbs after stroke. The project aims to design a simulation environment to test and analyze robotic rehabilitation strategies using a Universal Robots UR5 manipulator. The student creates a simulation of the UR5 using recommended software but finds limitations in force control. Several challenges are identified for implementing a physical robotic rehabilitation system, including programming platforms, firmware limitations, and patient criteria. The simulation proved insufficient for testing rehabilitation strategies but provided useful lessons for future work.
Robot-assisted therapy is an effective adjunct to conventional upper limb rehabilitation after stroke. Robotic devices can provide intensive, repetitive, interactive therapy and allow accurate assessment of motor control and strength. Well-designed robots optimize rehabilitation by addressing complex sensory and motor requirements through varied, motivating activities and feedback. When combined with therapists, robots may improve outcomes, increase therapy intensity and efficiency, and help address workforce shortages in rehabilitation clinics.
Neurorobotics and Advances in rehabilitation engineeringBhaskarBorgohain4
Advances in robotics,mechatronics,cyborgs and disruptive technologies for heptics, brain machine interfaces and neurorobotics are bringing a sea change to the field of rehabilitation engineering. Carbon fibre cheetah blades, Bionic arms, c legs are helping the amputees to the extent that amputees can now run in competitive sports at the level of summer Olympics.
Brain plasticity and rehabilitation robotic therapiesDavid Karchem
The document discusses brain plasticity and rehabilitation through robotic therapies. It provides examples of how visualizing body parts and connecting areas of the brain to those body parts through a "rubber straw" metaphor can help rehabilitation. Virtual reality and specific interventions that stimulate new neural connections are discussed as ways to enhance learning and improve rehabilitation outcomes. The document also describes an experiment where blind individuals learned to "see" through vibrations on their skin connected to a video camera, demonstrating the brain's ability to adapt through neuroplasticity.
ICVR2013 Workshop: Designing an effective rehabilitation simulationSergi Bermudez i Badia
This is the talk I gave at the International Conference on Virtual Rehabilitation 2013, part of the following workshop: Designing an effective rehabilitation simulation (Gerard Fluet, Wendy Powell, Sergi Bermúdez i Badia, Qinyin Qiu)
After completing this workshop participants should be able to: (1) Outline the process for developing, designing and testing an effective rehabilitation simulation, (2) Describe the process of shaping human movement abilities using simulated activities, (3) Identify variables that need to be considered when designing a rehabilitation activity, (4) Evaluate an open source virtual environment or game for conversion to a rehab activity, (5) Identify the strengths and weaknesses of commercially available software platforms, (6) Describe commonly used metrics to measure simulated movement performance, (7) Describe key features of a rehab activity that can be used to evaluate changes in movement performance. Intended audience: Computer Engineers, Biomedical Engineers, Physical Therapists and Occupational Therapists with less than three years experience in the design and development of simulated rehabilitation activities.
Telerehab - Clinical Research & Practical Experiences, CanRehab 2019Subodh Gupta
Presentation on Tele-Rehabilitation made at Tata Memorial Centre at 2nd International Conference on Cancer Rehabilitation (Can Rehab 2019). The presentation discusses technology and clinical research for telerehabilitation, and practical experiences while treating patients online.
Neurobionics and robotic neurorehabilitationsNeurologyKota
This document discusses neurobionics, robotic neurorehabilitation, and applications of neurobionics. It summarizes key areas including: (1) neurobionics aims to integrate electronics with the nervous system to repair or substitute impaired functions, (2) robotic neurorehabilitation uses robots to assist in rehabilitation processes, and (3) applications of neurobionics include motor interfaces like robotic arms, sensory interfaces like cochlear implants, and treating conditions like epilepsy and Parkinson's disease.
Robot-assisted therapy is an effective adjunct to conventional upper limb rehabilitation after stroke. Robotic devices can provide intensive, repetitive, interactive therapy and allow accurate assessment of motor control and strength. Well-designed robots optimize rehabilitation by addressing complex sensory and motor requirements through varied, motivating activities and feedback. When combined with therapists, robots may improve outcomes, increase therapy intensity and efficiency, and help address workforce shortages in rehabilitation clinics.
Neurorobotics and Advances in rehabilitation engineeringBhaskarBorgohain4
Advances in robotics,mechatronics,cyborgs and disruptive technologies for heptics, brain machine interfaces and neurorobotics are bringing a sea change to the field of rehabilitation engineering. Carbon fibre cheetah blades, Bionic arms, c legs are helping the amputees to the extent that amputees can now run in competitive sports at the level of summer Olympics.
Brain plasticity and rehabilitation robotic therapiesDavid Karchem
The document discusses brain plasticity and rehabilitation through robotic therapies. It provides examples of how visualizing body parts and connecting areas of the brain to those body parts through a "rubber straw" metaphor can help rehabilitation. Virtual reality and specific interventions that stimulate new neural connections are discussed as ways to enhance learning and improve rehabilitation outcomes. The document also describes an experiment where blind individuals learned to "see" through vibrations on their skin connected to a video camera, demonstrating the brain's ability to adapt through neuroplasticity.
ICVR2013 Workshop: Designing an effective rehabilitation simulationSergi Bermudez i Badia
This is the talk I gave at the International Conference on Virtual Rehabilitation 2013, part of the following workshop: Designing an effective rehabilitation simulation (Gerard Fluet, Wendy Powell, Sergi Bermúdez i Badia, Qinyin Qiu)
After completing this workshop participants should be able to: (1) Outline the process for developing, designing and testing an effective rehabilitation simulation, (2) Describe the process of shaping human movement abilities using simulated activities, (3) Identify variables that need to be considered when designing a rehabilitation activity, (4) Evaluate an open source virtual environment or game for conversion to a rehab activity, (5) Identify the strengths and weaknesses of commercially available software platforms, (6) Describe commonly used metrics to measure simulated movement performance, (7) Describe key features of a rehab activity that can be used to evaluate changes in movement performance. Intended audience: Computer Engineers, Biomedical Engineers, Physical Therapists and Occupational Therapists with less than three years experience in the design and development of simulated rehabilitation activities.
Telerehab - Clinical Research & Practical Experiences, CanRehab 2019Subodh Gupta
Presentation on Tele-Rehabilitation made at Tata Memorial Centre at 2nd International Conference on Cancer Rehabilitation (Can Rehab 2019). The presentation discusses technology and clinical research for telerehabilitation, and practical experiences while treating patients online.
Neurobionics and robotic neurorehabilitationsNeurologyKota
This document discusses neurobionics, robotic neurorehabilitation, and applications of neurobionics. It summarizes key areas including: (1) neurobionics aims to integrate electronics with the nervous system to repair or substitute impaired functions, (2) robotic neurorehabilitation uses robots to assist in rehabilitation processes, and (3) applications of neurobionics include motor interfaces like robotic arms, sensory interfaces like cochlear implants, and treating conditions like epilepsy and Parkinson's disease.
Presented by Brad Aiken
Doctor and science-fiction writer Brad Aiken presents on new and upcoming technologies in neurological rehabilitation. Topics include breakthrough advances that can help people recover from stroke, brain injury, and spinal cord injury. Current, cutting-edge technologies will be discussed, as well as likely upcoming advances in this field.
A pneumatic glove and immersive virtual reality environment for hand rehabili...Ervis Peng
1) A pneumatic glove called the PneuGlove was developed to provide independent extension assistance to each finger while allowing full arm movement.
2) Two groups of stroke survivors completed a six-week rehabilitation training protocol using the PneuGlove or traditional therapy without the device.
3) Across subjects, significant improvements were observed in measures of hand function for both groups, with the PneuGlove group showing greater mean gains.
This document provides an overview of mirror therapy as a treatment approach to support upper extremity recovery after stroke. It discusses the theoretical foundations of mirror therapy, describing how visual feedback of movement can facilitate cortical reorganization. Several studies are summarized that demonstrate the effectiveness of mirror therapy for improving motor function, activities of daily living, and pain when used as an adjunct to traditional stroke rehabilitation. The document concludes with a demonstration of how mirror therapy is performed in a clinical setting.
This document describes design improvements made to a vibrotactile device used to provide tactile feedback to individuals with lower-limb prosthetics. Based on a pilot study, smaller and stronger vibration motors were selected, goniometers were replaced with IMUs for improved gait detection, and radio frequency was used for synchronization. The device housing was changed to a clamp design and voltage converters were added to power components from a single battery. These modifications aimed to improve the device's accuracy, efficiency, ease of use, and compactness.
Passenger seat is main part of vehicle which has direct effect on her/his convenience. Seat suspension can remove unwanted and harmful vibration if right parameters were selected. Each of human body organs has specific natural frequency. When vehicle vibration reaches to this natural frequency, resonance will occur, and this phenomenon is harmful in long term. Usually lumped models used to predict human body response to vibration. In this paper, via Kitazaki biodynamic model, the seat to head vibration transmissibility was minimized by artificial neural network method. By this method, the optimum spring constant, damper coefficient and mass values were found.
Passenger seat is main part of vehicle which has direct effect on her/his convenience. Seat suspension can remove unwanted and harmful vibration if right parameters were selected. Each of human body organs has specific natural frequency. When vehicle vibration reaches to this natural frequency, resonance will occur, and this phenomenon is harmful in long term. Usually lumped models used to predict human body response to vibration. In this paper, via Kitazaki biodynamic model, the seat to head vibration transmissibility was minimized by artificial neural network method. By this method, the optimum spring constant, damper coefficient and mass values were found.
UPPER EXTREMITY ROBOTICS EXOSKELETON: APPLICATION, STRUCTURE AND ACTUATIONijbesjournal
Robotic exoskeleton is getting important to human in many aspects such as power assist, muscle training, regain motor function and rehabilitation. The research and development towards these functions are expected to be combined and integrated with the human intelligent and machine power, eventually becoming another generation of robot which will enhance the machine intelligent and human power. This paper reviews the upper extremity exoskeleton with different functions, actuators and degree of freedom (DOF). Among the functions, rehabilitation and power assist have been highlighted while pneumatic actuator, pneumatic muscle, motor and hydraulic actuator are presented under the categories of actuator. In addition, the structure of exoskeleton is separated by its DOF in terms of shoulder, elbow, wrist and hand.
Mirror therapy is a rehabilitation technique that uses a mirror to create the visual illusion of movement in an impaired limb. It has been shown to help reduce pain and improve motor function for various conditions like stroke, phantom limb pain, and Complex Regional Pain Syndrome (CRPS). Several studies reviewed found mirror therapy to have a significant positive effect on motor function and activities of daily living for stroke patients, and on reducing pain for phantom limb pain and CRPS. While more high-quality research is still needed, mirror therapy shows promise as a low-cost, low-risk adjunct to traditional rehabilitation methods.
Prediction the Biodynamic Response of Seated Human Body to Vibration Using A...MOSTAFAABDEEN1970
The document describes an analytical 4-degree-of-freedom (DOF) biomechanical model and a numerical model using artificial neural networks (ANN) to predict the biodynamic response of a seated human body subjected to vertical whole-body vibration. The analytical model represents the human body as 4 rigid masses interconnected by springs and dampers. The numerical model uses ANN to simulate and predict responses for different masses and stiffnesses based on data from the analytical model, requiring less effort than solving the analytical model each time. Results from both models showed that increasing human body mass or stiffness increases the seat-to-head transmissibility, driving-point mechanical impedance, and apparent mass responses.
Gait analysis is the study of human locomotion, in particular walking and running gait patterns. It can be used to assess biomechanical abnormalities and aid in clinical diagnosis and treatment planning. Visual analysis and video recording allow observation of gait but provide limited objective data. Simple measurements of temporal and spatial gait parameters like cycle time, stride length and speed can be made using basic equipment like a stopwatch and tape measure. More advanced systems like footswitches, instrumented walkways and motion capture provide detailed quantitative spatiotemporal and kinematic data on foot-floor contact and joint motion during gait.
Pain & Spasticity Management without the PillsJennifer French
This webinar discusses pain and spasticity management options without medications. It is presented by Kimberly Anderson-Erisman from the University of Miami and Jennifer French from Neurotech Network. The webinar covers types of chronic pain and spasticity, options for pain management including medications, injections, devices, and alternative therapies. Examples of alternative therapies used by people with spinal cord injuries are discussed, such as exercise, stretching, changing position and massage. Technology integration options for pain management including TENS, spinal cord stimulation, transcranial direct current stimulation, and alternative devices are also presented.
Mri brain tumour detection by histogram and segmentationiaemedu
This document summarizes a research paper on detecting brain tumors in MRI images using a combination of histogram thresholding, modified gradient vector field (GVF), and morphological operators. The non-brain regions are removed using morphological operators. Histogram thresholding is then used to detect if the brain is normal or abnormal/contains a tumor. If abnormal, the modified GVF is used to detect the tumor contour. The proposed method aims to be computationally efficient by only performing segmentation if a tumor is detected. It was tested on many MRI brain images and performance was validated against human expert segmentation.
Combining Optical Brain Imaging and Physiological Signals to Study Cognitive ...InsideScientific
In this exclusive webinar sponsored by BIOPAC Systems and fNIR Devices, Dr. Hasan Ayaz, Dr. Kurtulus Izzetoglu and Frazer Findlay present new research capabilities enabled through the integration of optical brain imaging technology and physiological recording systems.
Key topics covered during this webinar include physiological and physical principles of optical brain imaging, theory of operation, hardware and software integration, essential fNIR signal processing (demonstrated using fnirSoft analysis software), common field applications of fNIR imaging, why and how researchers can measure physiological data such as EDA, HR and ECG and acquistion procedures for co-registration of fNIR data and physiological monitoring signals using AcqKnowledge data acquisition and analysis software.
This study compared the online effect of using a broad frequency band (8-26Hz) versus a narrow band (centered at 12Hz) for a motor imagery-based brain-computer interface (BCI). Six subjects performed cursor tasks using both bands. There was no significant difference in accuracy or invalid rates between the bands. However, subjects with high mu rhythm power performed better with the narrow band, while subjects with high beta power performed better with the broad band. Therefore, the broad band is preferred to include both mu and beta rhythms and achieve better performance in most subjects. Future work with more subjects is needed to confirm these findings.
Image guided surgery involves using preoperative scans like MRI or CT to create 3D reconstructions of the surgical area. This information can be used for surgical planning, simulation, and navigation during the procedure. For navigation, the 3D models are registered to the patient in the operating room using probes to locate anatomical landmarks. This allows the surgeon to view internal structures and track the position of surgical tools to aid precision. Key benefits are improved accuracy, reduced risks to vital structures, and assistance for complex cases where normal anatomy is distorted.
This document provides an introduction to medical image processing. It discusses various medical imaging modalities like X-ray, CT, MRI, ultrasound, PET, and angiography. It then describes the basic steps in a medical image processing system: acquisition, preprocessing, segmentation, detection, analysis, and diagnosis. Preprocessing techniques like filtering and denoising are discussed. The document concludes by mentioning some applications of medical image processing like compression, retrieval, and tumor detection.
This document discusses rehabilitation and the role of physical therapist assistants. It defines rehabilitation as training and therapy to perform normal daily activities after an illness or injury. Approximately 5.3% of physical therapist assistants work in inpatient rehabilitation settings. The salary range for PTAs nationally is $28,580 to $63,830 annually, though the average in Watertown, SD is $51,000. PTAs in rehabilitation settings typically treat patients recovering from procedures like knee replacements or conditions such as multiple sclerosis. PTAs need an associate's degree and must maintain licensure through continuing education.
Corporate Presentation Paraplegic Rehabilitation Center CSRBhanu Pratap Singh
About PRC:
PRC, Kirkee, Pune ( India) is a Rehabilitation Centre meant for the after care and rehabilitation of personnel's of Defence forces of India who are medically boarded out i.e. retired from service due to Spinal Cord Injury while serving the Nation.
12 aaom reeves workshop apr 19 research summaryNomienredes
The document summarizes research on prolotherapy, which involves injections to repair soft tissues like ligaments and tendons. It discusses definitions of prolotherapy and focuses on dextrose prolotherapy. It provides evidence that prolotherapy is not experimental, as it is taught in postgraduate medical programs and supported by published studies. Several studies on specific conditions like Achilles tendinosis, knee osteoarthritis, and low back pain are summarized, demonstrating safety and efficacy of prolotherapy though some need further research.
The InMotion Arm Robot is improving quality of life for patients recovering from movement disabilities by retraining coordinated shoulder, elbow, and hand movements through active, interactive repetitions led by the robot. A new study shows InMotion Robot-assisted therapy is effective and safe for stroke patients even years after onset, helping to achieve functional arm movement and improved quality of life. Braintree Rehabilitation Hospital uses InMotion Robots to help patients complete a high number of repetitions in an engaging way to achieve neuroplastic change and motor recovery.
Presented by Brad Aiken
Doctor and science-fiction writer Brad Aiken presents on new and upcoming technologies in neurological rehabilitation. Topics include breakthrough advances that can help people recover from stroke, brain injury, and spinal cord injury. Current, cutting-edge technologies will be discussed, as well as likely upcoming advances in this field.
A pneumatic glove and immersive virtual reality environment for hand rehabili...Ervis Peng
1) A pneumatic glove called the PneuGlove was developed to provide independent extension assistance to each finger while allowing full arm movement.
2) Two groups of stroke survivors completed a six-week rehabilitation training protocol using the PneuGlove or traditional therapy without the device.
3) Across subjects, significant improvements were observed in measures of hand function for both groups, with the PneuGlove group showing greater mean gains.
This document provides an overview of mirror therapy as a treatment approach to support upper extremity recovery after stroke. It discusses the theoretical foundations of mirror therapy, describing how visual feedback of movement can facilitate cortical reorganization. Several studies are summarized that demonstrate the effectiveness of mirror therapy for improving motor function, activities of daily living, and pain when used as an adjunct to traditional stroke rehabilitation. The document concludes with a demonstration of how mirror therapy is performed in a clinical setting.
This document describes design improvements made to a vibrotactile device used to provide tactile feedback to individuals with lower-limb prosthetics. Based on a pilot study, smaller and stronger vibration motors were selected, goniometers were replaced with IMUs for improved gait detection, and radio frequency was used for synchronization. The device housing was changed to a clamp design and voltage converters were added to power components from a single battery. These modifications aimed to improve the device's accuracy, efficiency, ease of use, and compactness.
Passenger seat is main part of vehicle which has direct effect on her/his convenience. Seat suspension can remove unwanted and harmful vibration if right parameters were selected. Each of human body organs has specific natural frequency. When vehicle vibration reaches to this natural frequency, resonance will occur, and this phenomenon is harmful in long term. Usually lumped models used to predict human body response to vibration. In this paper, via Kitazaki biodynamic model, the seat to head vibration transmissibility was minimized by artificial neural network method. By this method, the optimum spring constant, damper coefficient and mass values were found.
Passenger seat is main part of vehicle which has direct effect on her/his convenience. Seat suspension can remove unwanted and harmful vibration if right parameters were selected. Each of human body organs has specific natural frequency. When vehicle vibration reaches to this natural frequency, resonance will occur, and this phenomenon is harmful in long term. Usually lumped models used to predict human body response to vibration. In this paper, via Kitazaki biodynamic model, the seat to head vibration transmissibility was minimized by artificial neural network method. By this method, the optimum spring constant, damper coefficient and mass values were found.
UPPER EXTREMITY ROBOTICS EXOSKELETON: APPLICATION, STRUCTURE AND ACTUATIONijbesjournal
Robotic exoskeleton is getting important to human in many aspects such as power assist, muscle training, regain motor function and rehabilitation. The research and development towards these functions are expected to be combined and integrated with the human intelligent and machine power, eventually becoming another generation of robot which will enhance the machine intelligent and human power. This paper reviews the upper extremity exoskeleton with different functions, actuators and degree of freedom (DOF). Among the functions, rehabilitation and power assist have been highlighted while pneumatic actuator, pneumatic muscle, motor and hydraulic actuator are presented under the categories of actuator. In addition, the structure of exoskeleton is separated by its DOF in terms of shoulder, elbow, wrist and hand.
Mirror therapy is a rehabilitation technique that uses a mirror to create the visual illusion of movement in an impaired limb. It has been shown to help reduce pain and improve motor function for various conditions like stroke, phantom limb pain, and Complex Regional Pain Syndrome (CRPS). Several studies reviewed found mirror therapy to have a significant positive effect on motor function and activities of daily living for stroke patients, and on reducing pain for phantom limb pain and CRPS. While more high-quality research is still needed, mirror therapy shows promise as a low-cost, low-risk adjunct to traditional rehabilitation methods.
Prediction the Biodynamic Response of Seated Human Body to Vibration Using A...MOSTAFAABDEEN1970
The document describes an analytical 4-degree-of-freedom (DOF) biomechanical model and a numerical model using artificial neural networks (ANN) to predict the biodynamic response of a seated human body subjected to vertical whole-body vibration. The analytical model represents the human body as 4 rigid masses interconnected by springs and dampers. The numerical model uses ANN to simulate and predict responses for different masses and stiffnesses based on data from the analytical model, requiring less effort than solving the analytical model each time. Results from both models showed that increasing human body mass or stiffness increases the seat-to-head transmissibility, driving-point mechanical impedance, and apparent mass responses.
Gait analysis is the study of human locomotion, in particular walking and running gait patterns. It can be used to assess biomechanical abnormalities and aid in clinical diagnosis and treatment planning. Visual analysis and video recording allow observation of gait but provide limited objective data. Simple measurements of temporal and spatial gait parameters like cycle time, stride length and speed can be made using basic equipment like a stopwatch and tape measure. More advanced systems like footswitches, instrumented walkways and motion capture provide detailed quantitative spatiotemporal and kinematic data on foot-floor contact and joint motion during gait.
Pain & Spasticity Management without the PillsJennifer French
This webinar discusses pain and spasticity management options without medications. It is presented by Kimberly Anderson-Erisman from the University of Miami and Jennifer French from Neurotech Network. The webinar covers types of chronic pain and spasticity, options for pain management including medications, injections, devices, and alternative therapies. Examples of alternative therapies used by people with spinal cord injuries are discussed, such as exercise, stretching, changing position and massage. Technology integration options for pain management including TENS, spinal cord stimulation, transcranial direct current stimulation, and alternative devices are also presented.
Mri brain tumour detection by histogram and segmentationiaemedu
This document summarizes a research paper on detecting brain tumors in MRI images using a combination of histogram thresholding, modified gradient vector field (GVF), and morphological operators. The non-brain regions are removed using morphological operators. Histogram thresholding is then used to detect if the brain is normal or abnormal/contains a tumor. If abnormal, the modified GVF is used to detect the tumor contour. The proposed method aims to be computationally efficient by only performing segmentation if a tumor is detected. It was tested on many MRI brain images and performance was validated against human expert segmentation.
Combining Optical Brain Imaging and Physiological Signals to Study Cognitive ...InsideScientific
In this exclusive webinar sponsored by BIOPAC Systems and fNIR Devices, Dr. Hasan Ayaz, Dr. Kurtulus Izzetoglu and Frazer Findlay present new research capabilities enabled through the integration of optical brain imaging technology and physiological recording systems.
Key topics covered during this webinar include physiological and physical principles of optical brain imaging, theory of operation, hardware and software integration, essential fNIR signal processing (demonstrated using fnirSoft analysis software), common field applications of fNIR imaging, why and how researchers can measure physiological data such as EDA, HR and ECG and acquistion procedures for co-registration of fNIR data and physiological monitoring signals using AcqKnowledge data acquisition and analysis software.
This study compared the online effect of using a broad frequency band (8-26Hz) versus a narrow band (centered at 12Hz) for a motor imagery-based brain-computer interface (BCI). Six subjects performed cursor tasks using both bands. There was no significant difference in accuracy or invalid rates between the bands. However, subjects with high mu rhythm power performed better with the narrow band, while subjects with high beta power performed better with the broad band. Therefore, the broad band is preferred to include both mu and beta rhythms and achieve better performance in most subjects. Future work with more subjects is needed to confirm these findings.
Image guided surgery involves using preoperative scans like MRI or CT to create 3D reconstructions of the surgical area. This information can be used for surgical planning, simulation, and navigation during the procedure. For navigation, the 3D models are registered to the patient in the operating room using probes to locate anatomical landmarks. This allows the surgeon to view internal structures and track the position of surgical tools to aid precision. Key benefits are improved accuracy, reduced risks to vital structures, and assistance for complex cases where normal anatomy is distorted.
This document provides an introduction to medical image processing. It discusses various medical imaging modalities like X-ray, CT, MRI, ultrasound, PET, and angiography. It then describes the basic steps in a medical image processing system: acquisition, preprocessing, segmentation, detection, analysis, and diagnosis. Preprocessing techniques like filtering and denoising are discussed. The document concludes by mentioning some applications of medical image processing like compression, retrieval, and tumor detection.
This document discusses rehabilitation and the role of physical therapist assistants. It defines rehabilitation as training and therapy to perform normal daily activities after an illness or injury. Approximately 5.3% of physical therapist assistants work in inpatient rehabilitation settings. The salary range for PTAs nationally is $28,580 to $63,830 annually, though the average in Watertown, SD is $51,000. PTAs in rehabilitation settings typically treat patients recovering from procedures like knee replacements or conditions such as multiple sclerosis. PTAs need an associate's degree and must maintain licensure through continuing education.
Corporate Presentation Paraplegic Rehabilitation Center CSRBhanu Pratap Singh
About PRC:
PRC, Kirkee, Pune ( India) is a Rehabilitation Centre meant for the after care and rehabilitation of personnel's of Defence forces of India who are medically boarded out i.e. retired from service due to Spinal Cord Injury while serving the Nation.
12 aaom reeves workshop apr 19 research summaryNomienredes
The document summarizes research on prolotherapy, which involves injections to repair soft tissues like ligaments and tendons. It discusses definitions of prolotherapy and focuses on dextrose prolotherapy. It provides evidence that prolotherapy is not experimental, as it is taught in postgraduate medical programs and supported by published studies. Several studies on specific conditions like Achilles tendinosis, knee osteoarthritis, and low back pain are summarized, demonstrating safety and efficacy of prolotherapy though some need further research.
The InMotion Arm Robot is improving quality of life for patients recovering from movement disabilities by retraining coordinated shoulder, elbow, and hand movements through active, interactive repetitions led by the robot. A new study shows InMotion Robot-assisted therapy is effective and safe for stroke patients even years after onset, helping to achieve functional arm movement and improved quality of life. Braintree Rehabilitation Hospital uses InMotion Robots to help patients complete a high number of repetitions in an engaging way to achieve neuroplastic change and motor recovery.
This document summarizes research on robot-assisted therapy for stroke patients. The research study involved 127 veterans who received either robot-assisted therapy, intensive comparison therapy, or usual care for 12 weeks. Results showed that robot-assisted therapy and intensive therapy significantly improved motor function and quality of life compared to usual care. Robot therapy required less therapist time but achieved similar outcomes to intensive therapy. The research demonstrated the potential for robot therapy to improve outcomes for long-term stroke survivors.
Pediatric rehabilitation medicine utilizes an interdisciplinary approach to treat physical impairments in children from birth through adolescence, addressing conditions like cerebral palsy, muscular dystrophies, and injuries through therapies, procedures like Botox injections, and inpatient and outpatient programs at leading children's hospitals. New technologies also aim to help children by enhancing mobility and function through means like robotic therapy devices and prosthetics tailored for developing bodies.
Renovated, redesigned, and manufactured an improved Assistive Robotic Arm from a pre-existing robotic arm for rehabilitation purposes amongst people suffering from a neuromuscular dysfunction.
Vertebroplasty for osteoporotic crush fracturesSpinePlus
1) Percutaneous vertebroplasty is a procedure used to treat painful vertebral compression fractures, often caused by osteoporosis. It involves injecting bone cement into the fractured vertebra under imaging guidance.
2) Patient selection is key, with imaging used to confirm an acute fracture and rule out other issues. The procedure aims to reduce pain and improve mobility.
3) Early studies found improvements in pain levels, activity, and quality of life for over 80% of patients. However, a large randomized controlled trial found no difference compared to a sham procedure, questioning its effectiveness. Its use has since declined significantly.
Prolotherapy involves injecting an otherwise non-pharmacological and non-active irritant solution into the body, generally in the region of tendons or ligaments for the purpose of strengthening weakened connective tissue and alleviating musculoskeletal pain.
Percutaneous cementoplasty involves injecting acrylic cement into vertebral bodies to prevent collapse and relieve pain in patients with pathologic or compressed vertebrae. It can be used to treat osteoporotic fractures, tumors, and metastases. The procedure is performed under local anesthesia and fluoroscopy guidance. Cement is injected during its viscous phase to prevent leaks. Potential complications include cement leaks into the epidural space, veins, or disk, which can cause cord compression or embolism. The procedure provides pain relief but risks include leak-related complications and infection.
Assistive Technologies Used In The Classroomguest6f6553
The document discusses assistive technologies that can help students with disabilities access the classroom and curriculum. It provides examples of technologies like alternative keyboards and automatic page turners. It also discusses how teachers must be willing to incorporate assistive devices into their lessons and accommodate different students' needs. While technology provides new opportunities, integrating it into classrooms can be challenging due to lack of funds and training for teachers.
1) Vertebroplasty involves injecting PMMA into compressed vertebrae to relieve pain and strengthen bone by increasing load bearing and stiffness.
2) It was first performed in 1984 and widely used in the 1990s in the US to treat painful osteoporotic fractures.
3) Indications include painful new or progressive osteoporotic fractures refractory to medical therapy, after conservative treatment fails, and for certain high risk cases.
4) Clinical outcomes data from observational studies shows moderate to marked pain relief in 75-95% with long term efficacy supported.
Vertebroplasty and Kyphoplasty are performed using general anesthesia, however, this largely depends on the doctor and the needs, circumstances and preferences of the patient.
Interventional spine & pain management dr manish rajManish Raj
This document provides an overview of chronic pain and interventional pain management techniques. It defines chronic pain as pain that lasts more than 3 months and outlines its prevalence and impact, noting it affects more Americans than diabetes, heart disease, and cancer combined. Interventional pain management aims to decrease or eliminate pain through minimally invasive techniques like injections, radiofrequency ablation, and spinal cord or peripheral nerve stimulation. The document reviews common causes of back pain and neck pain, as well as conditions treated by interventional techniques. It also discusses evidence-based guidelines for interventional pain management and the multidisciplinary approach needed for successful chronic pain treatment.
Kyphoplasty and vertebroplasty are minimally invasive procedures used to treat painful vertebral compression fractures. Kyphoplasty involves inserting balloons to restore vertebral height before cement injection, while vertebroplasty only involves cement injection. Kyphoplasty has a lower cement leakage rate of around 9% compared to over 70% for vertebroplasty due to improved control of cavity filling and use of less fluid cement at lower pressures. Both procedures provide pain relief, but kyphoplasty may better restore vertebral body height in some cases.
Pain from acute vertebral fracture appears to be due in part to instability (non-union or slow union at the fracture site), while more than 1/3 of patients become chronically painful.
Traditional treatment for patients with painful VCFs includes bed rest, narcotic analgesics and bracing, resulting in increased pain because of acceleration bone loss and muscle weakness.
Vertebroplasty is an effective, minimally invasive spine procedure where acrylic bone cement is injected into a painful pathologically compressed vertebral body.
The document discusses upper limb orthosis, devices used to modify the structural and functional characteristics of the upper limb. It covers the objectives of upper limb orthosis including protection, correction, and assistance. It also discusses the classification, biomechanics, principles, and assessment of upper limb orthosis and provides descriptions and examples of specific upper limb orthoses including shoulder orthoses, arm slings, arm abduction orthoses, elbow/forearm/wrist orthoses, and elbow or wrist mobilization orthoses.
Want similar presentation ideas? Interact and follow me in Quora : https://www.quora.com/profile/Liju-Thomas-13 or
Connect with me through Facebook : http://www.facebook.com
/lijuthomas24
Researchers have always tried to build a device capable of seeing people through walls. However, previous efforts to develop such a system have involved the use of expensive and bulky radar technology that uses a part of the electromagnetic spectrum only available to the military. Now a system is being developed by Dina Katabi and Fadel Adib, could give all of us the ability to spot people in different rooms using low-cost Wi-Fi technology. The device is low-power, portable and simple enough for anyone to use, to give people the ability to see through walls and closed doors. The system, called “Wi-Vi,” stands for "Wi-Fi" and "vision." is based on a concept similar to radar and sonar imaging. But in contrast to radar and sonar, it transmits a low-power Wi-Fi signal and uses its reflections to track moving humans. It can do so even if the humans are in closed rooms or hiding behind a wall.
Simple definition for Wi-Vi is, as a Wi-Fi signal is transmitted at a wall, a portion of the signal penetrates through it, reflecting off any humans on the other side. However, only a tiny fraction of the signal makes it through to the other room, with the rest being reflected by the wall, or by other objects. Wi-Vi cancels out all these other reflections, and keeps only those from the moving human body. Previous work demonstrated that the subtle reflections of wireless inter signals bouncing off a human could be used to track that person's movements, but those previous experiments either required that a wireless router was already in the room of the person being tracked. Wi-Fi signals and recent advances in MIMO communications are used to build a device that can capture the motion of humans behind a wall and in closed rooms. Law enforcement personnel can use the device to avoid walking into an ambush, and minimize casualties in standoffs and hostage situations. Emergency responders can use it to see through rubble and collapsed structures. Ordinary users can leverage the device for gaming, intrusion detection, privacy-enhanced monitoring of children and elderly, or personal security when stepping into dark alleys and unknown places.
The concept underlying seeing through opaque obstacles is similar to radar and sonar imaging. Specifically, when faced with a non-metallic wall, a fraction of the RF signal would traverse the wall, reflect off objects and humans, and come back imprinted with a signature of what is inside a closed room. By capturing these reflections, we can image objects behind a wall.
Wi-Vi is a see-through-wall technology that is low-bandwidth, low-power, compact, and accessible to non-military entities. Wi-Vi is a see-through-wall device that employs Wi-Fi signals in the 2.4 GHz ISM band.
Design Requirements For a Tendon Rehabilitation Robot: Results From a Survey ...ertekg
Download Link > https://ertekprojects.com/gurdal-ertek-publications/blog/design-requirements-for-a-tendon-rehabilitation-robot-results-from-a-survey-of-engineers-and-health-professionals/
Exoskeleton type finger rehabilitation robots are helpful in assisting the treatment of tendon injuries. A survey has been carried out with engineers and health professionals to further develop an existing finger exoskeleton prototype. The goal of the study is to better understand the relative importance of several design criteria through the analysis of survey results and to improve the finger exoskeleton accordingly. The survey questions with strong correlations are identified and the preferences of the two respondent groups are statistically compared. The results of the statistical analysis are interpreted and insights obtained are used to guide the design process. The answers to the qualitative questions are also discussed together with their design implications. Finally, Quality Function Deployment (QFD) has been employed for visualizing these functional requirements in relation to the customer requirements.
Encapsulating And Representing The Knowledge On The Evolution Of An Engineeri...Gurdal Ertek
This paper proposes a cross-disciplinary methodology for a fundamental question in product development: How can the innovation patterns during the evolution of an engineering system (ES) be encapsulated, so that it can later be mined through data analysis methods? Reverse engineering answers the question of which components a developed engineering system consists of, and how the components interact to make
the working product. TRIZ answers the question of which problem-solving principles can be, or have been employed in developing that system, in comparison to its earlier versions, or with respect to similar systems. While these two methodologies have been very popular, to the best of our knowledge, there does not yet exist a methodology that
reverse-engineers, encapsulates and represents the information regarding the application of TRIZ through the complete product development process. This paper suggests such a methodology that consists of mathematical formalism, graph visualization, and database representation. The proposed approach is demonstrated by analyzing the design and development process for a prototype wrist-rehabilitation
robot and representing the process as a graph that consists of TRIZ principles.
http://research.sabanciuniv.edu.
IRJET- Applications of Ergonomic Analysis Tools in an Industry: A ReviewIRJET Journal
This document provides a literature review of ergonomic analysis tools used in industry. It discusses several tools for ergonomic assessment, including REBA (Rapid Entire Body Assessment), RULA (Rapid Upper Limb Assessment), OWAS (Ovako Working Posture Analysis System), and NIOSH surveys. The review summarizes several research studies that have applied these tools to analyze risks in various industries and tasks, such as small-scale casting, manual material handling, and fixed workstations. The goal of the research is to identify risks, improve worker comfort and safety, and reduce musculoskeletal disorders through ergonomic assessment and redesign of workspaces.
The document summarizes several pilots conducted as part of the NewWoW project, which examined new ways of working. Six main pilots are described:
1) Rapal pilots tested space utilization measurement tools and found they should be combined with other data to understand productivity.
2) A Senate Properties pilot examined sustainability in Finnish governmental workplace concepts and found ICT development and communications could improve sustainability.
3) A Granlund pilot tested activity-based working and found it increased interactions but more change management is needed.
4) An ISS Finland pilot tested mobile work and found it increased flexibility but device management is challenging.
5) An ISS Lahti pilot tested different desk booking systems and found automatic
MULTIPLE CONFIGURATIONS FOR PUNCTURING ROBOT POSITIONINGJaresJournal
The paper presents the Inverse Kinematics (IK) close form derivation steps using combination of analytical
and geometric techniques for the UR robot. The innovative application of this work is used in the precise
positioning of puncture robotics system. The end effector is a puncture needle guide tube, which needs
precise positioning over the puncture insertion point. The IK closed form solutions bring out maximum 8
solutions represents 8 different robot joints configurations. These multiple solutions are helpful in the
puncture robotics system, it allow doctors to choose the most suitable configuration during the operation.
Therefore the workspace becomes more adequate for the coexistence of human and robot. Moreover IK
closed form solutions are more precise in positioning for medical puncture surgery compared to other
numerical methods. We include a performance evaluation for both of the IK obtained by the closed form
solution and by a numerical method.
MULTIPLE CONFIGURATIONS FOR PUNCTURING ROBOT POSITIONINGJaresJournal
The paper presents the Inverse Kinematics (IK) close form derivation steps using combination of analytical
and geometric techniques for the UR robot. The innovative application of this work is used in the precise
positioning of puncture robotics system. The end effector is a puncture needle guide tube, which needs
precise positioning over the puncture insertion point. The IK closed form solutions bring out maximum 8
solutions represents 8 different robot joints configurations. These multiple solutions are helpful in the
puncture robotics system, it allow doctors to choose the most suitable configuration during the operation.
Therefore the workspace becomes more adequate for the coexistence of human and robot. Moreover IK
closed form solutions are more precise in positioning for medical puncture surgery compared to other
numerical methods. We include a performance evaluation for both of the IK obtained by the closed form
solution and by a numerical method.
MULTIPLE CONFIGURATIONS FOR PUNCTURING ROBOT POSITIONINGJaresJournal
The paper presents the Inverse Kinematics (IK) close form derivation steps using combination of analytical
and geometric techniques for the UR robot. The innovative application of this work is used in the precise
positioning of puncture robotics system. The end effector is a puncture needle guide tube, which needs
precise positioning over the puncture insertion point. The IK closed form solutions bring out maximum 8
solutions represents 8 different robot joints configurations. These multiple solutions are helpful in the
puncture robotics system, it allow doctors to choose the most suitable configuration during the operation.
Therefore the workspace becomes more adequate for the coexistence of human and robot. Moreover IK
closed form solutions are more precise in positioning for medical puncture surgery compared to other
numerical methods. We include a performance evaluation for both of the IK obtained by the closed form
solution and by a numerical method.
MULTIPLE CONFIGURATIONS FOR PUNCTURING ROBOT POSITIONINGJaresJournal
The paper presents the Inverse Kinematics (IK) close form derivation steps using combination of analytical and geometric techniques for the UR robot. The innovative application of this work is used in the precise positioning of puncture robotics system. The end effector is a puncture needle guide tube, which needs precise positioning over the puncture insertion point. The IK closed form solutions bring out maximum 8 solutions represents 8 different robot joints configurations. These multiple solutions are helpful in the puncture robotics system, it allow doctors to choose the most suitable configuration during the operation. Therefore the workspace becomes more adequate for the coexistence of human and robot. Moreover IK closed form solutions are more precise in positioning for medical puncture surgery compared to other numerical methods. We include a performance evaluation for both of the IK obtained by the closed form solution and by a numerical method.
At the end of this presentation, you will be able to understand what is physiotherapy and what kind of robotic devices we use. Those robotic devices have been very helpful but it can be a little challenging for us to utilize all the types of devices. The physiotherapist should know about the devices that he/she uses and have experience with it and that can be a disadvantage of the robotic devices. We have a lot of types of robotic devices for all kinds of disabilities. The patients can have more confidence and be more focused during the sessions. The devices have been an advantage for physiotherapists as well. It helps physiotherapists not to burnout during the sessions. Especially patients with disabilities like difficulty walking or even standing up. The future of physiotherapy and robotic devices is still in progress and let's see what it can bring us.
1) How will managers of a monopolistically competitive firm de.docxLynellBull52
1) How will managers of a monopolistically competitive firm decide on the optimal level of production? Elucidate.
2) Describe market forces that come into play in the short run if a monopolistically competitive firm is making a positive economic profit. How would this compare to the typical long-run equilibrium? Explain.
3) True, False Uncertain and Explain: “Happy hour” pricing by bars and restaurants (i.e., lower prices at the close of the business day) is not a logical outcome. The increase in demand for food and beverages around 5:00 p.m. should actually result in higher prices.
4) Mary and Sam are the only two growers who provide organically grown corn to a local grocery store. They know that if they cooperated and produced less corn, they could raise the price of the corn. If they work independently, they will each earn $100. If they decide to work together and both lower their output, they can each earn $150. If one person lowers output and the other does not, the person who lowers output will earn $0 and the other person will capture the entire market and will earn $200. {The table below represents the choices available to Mary and Sam.}
*What is the best choice for Sam if he is sure that Mary will cooperate?
*If Mary thinks Sam will cheat, what should Mary do and why?
*What is the prisoner’s dilemma result?
Mary
A
B
A
($100, $100)
($200, $0)
Sam
B
($0, $200)
($150, $150)
Note: A = Work independently; B = Cooperate and Lower Output. Each table entry lists Sam's earnings first, and Mary's earnings second.
Optimising agile development practices
for the maintenance operation: nine heuristics
Lise Tordrup Heeager & Jeremy Rose
# Springer Science+Business Media New York 2014
Abstract Agile methods are widely used and successful in many development situations and
beginning to attract attention amongst the software maintenance community – both researchers
and practitioners. However, it should not be assumed that implementing a well-known agile
method for a maintenance department is therefore a trivial endeavour - the maintenance operation
differs in some, important respects from development work. Classical accounts of software
maintenance emphasise more traditional software engineering processes, whereas recent re-
search accounts of agile maintenance efforts uncritically focus on benefits. In an action research
project at Aveva in Denmark we assisted with the optimisation of SCRUM, tailoring the standard
process to the immediate needs of the developers. We draw on both theoretical and empirical
learning to formulate seven heuristics for maintenance practitioners wishing to go agile.
Keywords Software maintenance . Agile methods . SCRUM . Action research
1 Introduction
Software developers have for more than a decade been concerned with a change of perspective in
favour of the lightweight flexible approaches incorporated in agile.
The document discusses key concepts in rehabilitation engineering, including:
1. Rehabilitation engineering applies science and technology to help individuals with disabilities through methods like assistive devices, orthotics, and prosthetics.
2. The design process involves analyzing problems, synthesizing solutions, evaluating options, making decisions, and implementing the chosen solution.
3. Sensory rehabilitation aims to augment or substitute for vision and hearing through methods like eyeglasses, hearing aids, Braille, and cochlear implants. Motor rehabilitation devices include wheelchairs and myoelectric prosthetic limbs.
1. Tele-rehabilitation aims to provide rehabilitation services to patients in their homes using remote monitoring and virtual therapy sessions to reduce costs and increase access to care.
2. Current rehabilitation methods are very expensive, with quantitative gait analysis systems costing $200k, and many patients do not receive needed rehabilitation after discharge from hospitals.
3. TCS proposes a low-cost tele-rehabilitation platform using sensors and games to monitor patients' physical and cognitive exercises at home or in clinical settings, with doctors providing remote feedback and monitoring progress through a cloud-based system.
The document discusses software evolution and maintenance. It covers evolutionary software development, the staged model of software lifespan, the phased model of software change, research and teaching approaches, and software maintenance. Key topics include iterative development, concept location, impact analysis, reasoning about evolution, and the end of software evolution. The purpose is to provide an overview of these topics and discuss current research and future directions.
Tele-Robotic Assisted Dental Implant Surgery with Virtual Force FeedbackNooria Sukmaningtyas
The dental implant surgical applications full of risk because of the complex anatomical
architecture of craio-maxillofacial area. Therefore, the surgeons move towards computer-aided planning
for surgeries and then implementation using robotic assisted tele-operated techniques. This study divided
into four main parts. The first part is developed by computer-aided surgical planning by image modalities.
The second part is based on Virtual Surgical Environment through virtual force feedback haptic device.
The third part is implemented the experimental surgery by integrating the prototype surgical manipulator
with the haptic device poses using inverse kinematics method. The fourth part based on monitoring the
robotic manipulator pose by using image guided navigation system to calculate the position error of the
surgical manipulator. Thus, this tele-robotic system is able to comprehend the sense of complete practice,
improve skills and gain experience of the surgeon during the surgery. Finally, the experimental outcomes
show in satisfactory boundaries.
This PhD proposal investigates forecasting and classification techniques and their applications in tourism demand. The aim is to not only consider accurate forecasting models, but also to analyze the best inputs for the models. Seasonality impact on tourism demand will also be analyzed. The outcomes could provide a better review of tourism demand forecasting model accuracy and apply powerful techniques like RBF and SVM neural networks as models.
The spiral model is a software development process that combines elements of both design and prototyping-centric models. It involves iterating through four phases - planning, risk analysis, engineering, and evaluation - with each iteration intended to incrementally approach completion of the project. The spiral model aims to reduce risk at each phase by gathering user feedback and requirements and addressing risks before proceeding. It is suited for large, complex projects where requirements are not fully known. An example is a project creating a video mail system for illiterate users through iterative user testing and feedback.
APPLICATION OF BIOMODELS FOR SURGICAL PLANNING BY USING RAPID PROTOTYPING: A ...AM Publications
The application of rapid prototyping (RP) to surgical planning came as a natural extension of the
development of the technology. Current high technology scanners analyzing biological samples present their data in a
layered format providing a straightforward interface to the RP technologies. The highest spatial resolutions are
available from CT and MRI scan data, but other modalities also provide valuable diagnostic information. Presenting
the results in a physical 3D model, either scaled 1:1 or magnified, provides the medical user with invaluable insights
beyond 2D data. Depth is a critical parameter in planning procedures. These techniques allow one to reproduce
human anatomical objects as 3D physical models, which give the surgeon a practical impression of complex
structures before a surgical intervention. This paper will focus on surgical planning and the development of
prostheses in advance of invasive procedures.
Biomodelling is an perceptive, user-friendly technology that facilitated diagnosis and operative planning.
Biomodels allowed surgeons to rehearse procedures readily and improved communication between colleagues and
patients. The paradigm shift from the visual to the visual-tactile representation of anatomical objects introduces a
new kind of interface. The RP models are very well suited for use in the opinion and the precise preoperative
simulations. The case studies included cover applications like the fabrication of custom implants & models for preoperating
surgical planning.
A Project On Robotic Exoskeleton Arm (3) (2) 2.ppthuzefa ansari
Exoskeleton is an outer framework that can be worn on a biological arm. It is powered by actuators and can provide assistance or increase the strength of the biological arm, depending on the power of the actuator. Electromyography(EMG) is the suitable approach for human-machine interface with the help of exoskeleton.
When working with EMG we actually measure the motor unit action potential [MUAP] generated in the muscle fibers. This potential builds up in the muscles when it receives a signal from the brain to contract or relax.
Common Practice Guidelines: A Significant Gap in Computational Modeling and S...BioGearsEngine
BioGears® is an open source, general-purpose human physiology simulation engine. The goal of BioGears is to provide consistent physiology for use by the medical modeling and simulation community. The accuracy of this whole-body model is assessed through a validation process which compares the simulation results to a range of observed values within the reference population. BioGears has been customized for integration with real-time training simulations to produce virtual patient responses in both software and hardware scenario-based applications. A software architecture that leverages a common data model was created to provide a well-defined interaction paradigm for models at different spatial and temporal scales. The framework can be applied for integration towards the development of predictive multiscale models for in silico clinical trials.
This talk describes:
· The motivation and purpose of the BioGears program
· The utilization of extensive user community engagement to inform design and implementation decisions
· The use of validation to provide assurance in results
· The process of translating physiology modeling and simulation research into clinical use
· The decision to allow physiology model extensions and improvements to be integrated by the user base over time
It will also include recommended best practices and lessons learned in getting BioGears adopted. Finally, perceived gaps and limitations in guidelines for establishing standardized simulation-based medicine will be presented, along with recommendations for future improvements.
This is an initiative started at the Interagency Modeling and Analysis Group and Multiscale Modeling Consortium
This document provides an overview and efficiency analysis of NLPAROPT, a parallel Non-Linear Programming (NLP) solver developed by CU Aerospace and the University of Illinois at Urbana-Champaign. NLPAROPT utilizes parallel computing techniques like MPI, ScaLAPACK, and CUDA to significantly reduce the runtime of NLP problems compared to serial solvers. The author conducted an analysis of NLPAROPT_MPI to determine optimal processor counts and blocking factors. Results showed runtime reductions of orders of magnitude and that optimal blocking factors further reduced processor idling times. Future work includes implementing additional parallelization techniques to further improve efficiency.
Similar to ntnu-project-thesis-mads-johan-laastad-fall-2016 (20)
1. NORWEGIAN UNIVERSITY OF SCIENCE AND TECHNOLOGY
TTK4550
CYBERNETICS AND ROBOTICS, PROJECT THESIS
Robotic rehabilitation of upper-limb
after stroke
Author
Mads Johan LAASTAD
Main supervisor
Associate professor Øyvind STAVDAHL MSc, PhD
Co-supervisor
Erik Kyrkjebø MSc, PhD
December 21, 2016
2. Abstract
Globally, stroke is one of the main causes of permanent neurological damage and death[18].
Partial or total paralysis in the extremities is the most common complication after a stroke,
with paralysis in upper-limbs being the most prevalent. Efficient and readily available re-
habilitation therapy is essential for the recovery process. General physical therapy is a
common approach, but resource intensive. Research on robotic rehabilitation aims to pro-
vide a viable alternative.
The motivation for this thesis is to contribute in the design of a rehabilitation robot, based
on a standard robot manipulator, aimed at rehabilitation of stroke patients with paralyzed
upper-limbs.
The main objective is to design a robotic simulation environment for testing and analysis
of robotic rehabilitation strategies. Secondary objectives include identification of imple-
mentation challenges, and suggesting feasible solutions.
A review of relevant simulation software is presented. The recommended candidate is
used to create a robotic simulation environment for the Universal Robots UR5 manipula-
tor. The resulting simulation environment proved to be insufficient for the requirements of
the robotic rehabilitation project. The main challenge identified was limitations in avail-
able control inputs within a robotic software driver, because the driver does not facilitate
force control. Suggested solutions, alternative software drivers and improvements to the
simulation environment are also presented.
Several implementation challenges are identified and partially solved including; program-
ming platform, firmware limitations, unwanted controller behavior, wrist mounting, pa-
tient criteria and minimal sampling rate.
i
3. Sammendrag
Hjerneslag er en verdensledende ˚arsak til permanente nevrologiske skader og dødsfall.
Delvis eller total lammelse i ekstremiteter er den vanligste komplikasjonen etter et hjer-
neslag, hvor lammelser i øvre lemmer er mest utbredt. Effektiv og tilgjengelig rehabiliter-
ingsterapi er essensiell for ˚a gjenopprette funksjonaliteten. Generell fysioterapi er utbredt,
men ressurskrevende. Forskning innen robot rehabilitering har som form˚al ˚a tilby et lev-
edyktig alternativ.
Motivasjonen for denne prosjektoppgaven er ˚a bidra til utviklingen av en rehabiliterings
robot, basert p˚a en standard industrirobot, som skal brukes til ˚a rehabilitere hjerneslag
pasienter med lammelser i øvre lemmer.
Hovedoppgaven er ˚a konstruere et robot simuleringsmiljø for testing og analyse av strate-
gier brukt av rehabiliterings roboten. Sekundære oppgaver er ˚a identifisere implementer-
ingsutfordringer, og komme med løsningsforslag.
En gjennomgang av relevant simuleringssoftware blir presentert. Den anbefalte kandi-
daten blir brukt til ˚a konstruere et robot simuleringsmiljø for Universal Robots sin UR5
manipulator. Det resulterende simuleringsmiljøet er ikke tilstrekkelig for robot rehabili-
teringsprosjektet. Hovedutfordringen er manglende p˚adragsmuligheter som er støttet av
robot software driveren, den støtter ikke kraftstyring. Løsningsforslag, alternative drivere
og forbedringsforslag blir ogs˚a presentert.
Flere implementasjonsutfordringer ble identifisert og delvis løst, blant annet; program-
merings plattform, firmware begrensninger, uønsket kontroller oppførsel, h˚andledds mon-
tering, pasient kriterier og minimal samplings rate.
ii
4. PROJECT ASSIGNEMENT
Robotic rehabilitation of upper-limb after stroke
BACKGROUND
Approximately 15 000 people in Norway experience a stroke each year, and the incidence
is believed to increase by up to 50 per cent in the next 20 years due to an ageing population.
Stroke patients require extensive rehabilitation training to recover. Intense repetitions of
coordinated motor activities in rehabilitation therapy and training constitute a significant
burden for therapists, and due to economic reasons the duration of primary rehabilitation
is getting shorter and shorter.
Recent systematic reviews of trials comparing conventional rehabilitation therapy by phys-
iotherapists (CT) with robotassisted therapy (RT), suggests that RT gives similar upper-
limb rehabilitation in terms of motor function recovery, activities of daily living (ADL) and
motor control. Also, extra sessions of RT in addition to regular CT have been shown to be
more beneficial than regular CT alone in motor recovery of stroke patients [1]. Robot re-
habilitation of upper-limb after stroke have thus gained increasing interest in recent years,
and new robotic devices have been designed to assist in physical rehabilitation of stroke
patients [2].
These robot rehabilitation devices may significantly improve on existing practice through
increased effectivity in rehabilitation training with less man-power, closer monitoring of
patient progress, higher quality and more objective therapeutic sessions, and more person-
alized follow-up for each individual patient.
TASK
A number of different control strategies have been employed for robot rehabilitation rang-
ing from high-level strategies – such as assistive, challenge-based, haptic or couching
strategies designed to provoke motor plasticity and thus improve motor recovery – to low-
level strategies to control force, position, impedance and admittance factors of the high-
level strategies [2].
Recent advancements in light-weight and affordable robot manipulators that complies with
safety regulations can operate without safety guards between robots and humans, and have
a potential for decreasing the cost of custom built robotic rehabilitation devices signifi-
cantly. The project shall propose a robot control strategy for rehabilitation of upper-limb
after stroke using a standard industrial robot manipulator. The proposed robot manipula-
tor is the UR5 robot from Universal Robots. The proposed strategy should be verified in
simulation and experiments.
iii
5. Task description
1. Present a short review of software used for robotic simulation environment and
choose a suitable simulation software candidate for further use
2. Set up a robotic rehabilitation simulation model of the UR5 robot manipulator from
Universal Robots
3. Choose and implement a control strategy for robotic rehabilitation in the simulation
model, and analyze the simulation performance
4. If time permits: Suggest a functional design for experimental verification of the re-
sults, implement and analyze the robot rehabilitation control strategy in experiments
Useful resources may be the Matlab Robotics System Toolbox and the V-REP robot sim-
ulator.
Objective and purpose
The objective of the project is to design a simulation environment to analyze a chosen
robot rehabilitation control system for a standard industrial robot manipulator for upper-
limb stroke patients.
Subtasks and research questions
• Is simulation of robotic rehabilitation with with standard robot manipulators feasi-
ble?
• What are the main challenges in robotic rehabilitation using standard robot manip-
ulators?
Main supervisor: Associate professor Øyvind Stavdahl, ITK
Co-supervisor: Erik Kyrkjebø, Sogn og Fjordane University College
Bibliography
• Norouzi-Gheidari, N., P.S. Archambault, and J. Fung, Effects of robot-assisted ther-
apy on stroke rehabilitation in upper limbs: Systematic review and meta-analysis of
the literature. J. of Rehab. R&D, 2012. 49(4): p. 479-495.
• Maciejasz, P., et al., A survey on robotic devices for upper limb rehabilitation. J
Neuroeng Rehab, 2014. 11(1).
iv
6. Preface
I would like to thank Erik Kyrkjebø MSc, PhD and Øyvind Stavdahl MSc, PhD for su-
pervising this project thesis. Further, I would like to thank student colleagues and PhD
candidates at the Depertment of Cybernetics for all their help and advice. Finally, a big
thank you to Christina Laastad and Bjørn Johan Laastad for proofreading the project thesis.
This project thesis is part of a robotic rehabilitation project led by Erik Kyrkjebø, and
is an extension of previous work[5][4] done by Kristine Blokkum during the fall of 2015
and spring of 2016. In her thesis, Blokkum presents background theory on different robotic
rehabilitation strategies and suggested a control strategy for implementations. A key focus
area for this thesis has been on maintaining a steady progress in the robotic rehabilitation
project and to not recreate or retrace results presented in other works.
All of the software used in this thesis were new to both the supervisors and myself. The
steep learning curve, and software complexity seized much of the time dedicated to the
thesis. Even though the resulting simulation environment was insufficient for the needs of
the robotic rehabilitation project, it provided useful information for future implementation
efforts. My personal programming skills, and knowledge related to Linux, Matlab, ROS
and Gazebo have improved significantly while working with this thesis.
v
7. Audience
To benefit from this thesis the reader is advised to have decent background knowledge in
control engineering, and robotic modeling and control. Recommended literature on these
subjects are respectively [8] and [32]. There are no requirements for background knowl-
edge in medicine, physical therapy or programming. The relevant theory for these subjects
will be presented in chapter 2 and chapter 3.
It is recommended to read the project thesis[5] and master thesis[4] written by Kristine
Blokkum during the fall of 2015 and spring of 2016. It provides valuable insight into
available robotic rehabilitation strategies and the basis for suggested controller design in-
tended for implementation on the simulation environment.
vi
12. List of Figures
1.1 Example of robotic rehabilitation with stroke patients using an exoskeleton
device called ArmeoPower. Figure taken from [16]. . . . . . . . . . . . . 2
2.1 Configuration of the UR5 manipulator. Figure taken from [24]. . . . . . . 7
2.2 Low level joint controller with feed-forward velocity and acceleration con-
trol inputs. Figure taken from [31] . . . . . . . . . . . . . . . . . . . . . 8
2.3 Artistic impression of different applications using ROS. Figure taken from
[9]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 ROS Industrial Robot architecture. Figure taken from [11] . . . . . . . . 11
2.5 URDF overview. Figure taken from [27]. . . . . . . . . . . . . . . . . . 12
2.6 Universal Robot teach pendant. Figure taken from [21]. . . . . . . . . . . 14
2.7 Blending over WP 2 with radius r. Figure taken from [26]. . . . . . . . . 15
2.8 Polyscope view of force control. Figure taken from [26]. . . . . . . . . . 15
2.9 Linear and interpolated trajectory. . . . . . . . . . . . . . . . . . . . . . 17
3.1 MATLAB to VREP communication used by Blokkum. Figure taken from
[4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Final software setup. Base OS shown in red, VM in green, ROS nodes
blue and ROS master in orange. All ROS communication are sent over
TCP/IP, especially highlighted over the virtual bridge between the main
computer and VM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1 RVIZ with MoveIt used for preliminary testing of the control interfaces. . 29
4.2 Simulation environment of Universal Robots UR5 manipulator. . . . . . . 30
xi
13. Abbreviations
6DOF = Six degrees of freedom
OS = Operating system
VM = Virtual machine
ROS = Robot Operating System
ROS-I = ROS-Industrial
API = Application programming interface
GUI = Graphical user interface
UR3 = Universal robot model 3
UR5 = Universal robot model 5
UR10 = Universal robot model 10
OSRF = Open source robotics foundation
URDF = Unified robot description format
SDF = Simulation description format
XML = Extensible markup language
TCP/IP = Transmission control protocol/Internet protocol
TCP = Tool center point
LQR = Linear quadratic regulator
RTDE = Real-time data exchange
VPL = Visual programming language
CB = Control box
URControl = Universal robot controller
xii
14. Chapter 1
Introduction
1.1 Motivation
Stroke is the leading cause of permanent neurological damage and one of the leading
causes of death among adults [13] in Norway with over 15 000 confirmed incidents an-
nually. On a global scale, about 15 million people suffer from stroke annually, with over
5 million casualties and another 5 million left with permanent neurological damage[18].
According to the Norwegian directorate of health 60 − 80% of the stroke patients will
experience complications in the immediate aftermath of a stroke. That number increases
to above 90% after 3−6 months[13]. Common complications include; paralysis, epileptic
seizure, falling, swallowing difficulties and shoulder pain. These symptoms often result in
reduced muscle strength, reduced motion control, reduced movement speed, disturbed co-
ordination and increased rate of muscle fatigue. Paralysis is a serious symptom developed
after a stroke with a crippling affect on the patient’s daily life. Partial or total paralysis
in the extremities occur in more than 80% of the stroke patients[13]. The severeness and
prevalence of paralysis makes it one of the biggest challenges related to stroke rehabilita-
tion, and is the focus of a robotic rehabilitation project was pioneered by Erik Kyrkjebø,
vice-rector of R&D, Sogn og Fjordane University College, Norway.
Traditional rehabilitation of upper-limb after stroke provided by physical therapists
have proven to be effective, but it is highly resource intensive and cannot keep up with the
growing demands. Robotic rehabilitation can hopefully become a viable, affordable and
safe rehabilitation alternative. Several studies[19][15] have already shown that robotic re-
habilitation, utilizing customized and expensive robotic exoskeletons, can rival traditional
rehabilitation in terms of quality. The robotic rehabilitation project hopes to show how an
inexpensive industrial robot can be used safely in the rehabilitation of stroke patients as a
valuable supplement to the traditional treatments. Achieving this will help society reduce
the costs associated with stroke rehabilitation, and more importantly improve the stroke
patient’s quality of life.
1
15. Chapter 1. Introduction
Figure 1.1: Example of robotic rehabilitation with stroke patients using an exoskeleton device called
ArmeoPower. Figure taken from [16].
1.2 Thesis goals
The main objective of this thesis is to design a robotic simulation environment to be used
for testing and analysis in the robotic rehabilitation project led by Erik Kyrkjebø.
The thesis will present a short review of robotic simulation software. Then, with that
insight, recommend a suitable candidate to be used as a platform for creating a robotic
simulation environment using Universal Robots UR5 manipulator and a previously devel-
oped robotic rehabilitation control strategy.
Other, secondary objectives of the thesis is determining the simulation environments feasi-
bility, and investigating some of the implementation challenges with robotic rehabilitation
using standard robot manipulators. The thesis is also intended to be the basis for a future
master thesis for the robotic rehabilitation project with a focus on physical implementation
with a real UR5 manipulator.
1.3 Contributions
The thesis presents a functional review of four possible robotic simulation software plat-
forms, and the best software candidate is used for creating a robotic simulation environ-
ment for the robotic rehabilitation project. With a defined software platform, several useful
ROS repositories and packages for both a robotic simulation environment and a physical
implementation are identified. The robotic simulation environment is built with the neces-
sary sensory and patient force inputs for realizing the suggested controller design. Compli-
cations regarding the simulation environment required a deeper understanding on how the
UR manipulators are programmed and controlled. The resulting information is presented,
together with a review of some selected drivers for the UR manipulators based on one of
2
16. 1.4 Report outline
the programming and controlling options. A constant focus on identifying implementation
challenges resulted in a number of interesting observations and reflections that will con-
tribute to a physical implementation in a future master thesis. Finally, recommendations
regarding programming basis, drivers, patient criteria and minimal sampling rate for future
implementations are presented in chapter 6.
1.4 Report outline
This report structure is based on the introduction, methods, results, and discussion(IMRAD)
structure[30]. However, the report structure does not follow the the work on the project
thesis in chronological order. This leads to some smaller differences in the report structure.
In chapter 2 it was sometimes necessary to draw natural conclusions in order to maintain a
proper flow in the report. Also, the results presented in chapter 4 is somewhat limited due
to complications with the resulting simulation environment.
Chapter 2 presents the theoretical background for this thesis. It includes an overview
of previous work regarding the robotic rehabilitation project. Background knowledge on
contained induced therapy and the Universal Robots UR5 manipulator. Information about
the robot operating system(ROS) is presented together with some relevant ROS reposi-
tories and packages that are used in this thesis. Finally, details about programming and
controlling the UR manipulator together with a review of relevant drivers.
Chapter 3 presents a review of simulation software and identifies the best suited can-
didate to be used in the thesis.
Chapter 4 presents the resulting simulation environment, together with some neces-
sary sensor modifications to suit the needs of this thesis.
Chapter 5 analyses and discuss some of the challenges with the simulation environ-
ment, and provides some suggested solutions. Some interesting observations about un-
wanted robotic behavior is presented.
Chapter 6 provides the conclusion to the main objective, sub-tasks and research ques-
tions presented in the project assignment.
Finally, chapter 7 presents a number of suggestions for future work within the robotic
rehabilitation project.
The appendix contains some short code examples and information about the T ¨UV safety
classification for Universal Robots UR5 manipulator.
3
18. Chapter 2
Theoretical background
This chapter examines important theory related to this thesis. It contains a quick review of
previous work, robotic rehabilitation theory, challenges with force control and information
about the robotic operating system(ROS).
2.1 Robotic rehabilitation strategies
The following section presents a short summary of previous work done by Kristine Blokkum
in her project thesis[5] and master thesis[4]. Theory regarding constraint induced move-
ment therapy is presented here, as it will influence the functional design of the physical
interface between the rehabilitation robot and stroke patient. This is discussed further in
chapter 5
2.1.1 Previous work
Blokkum examines several robotic therapy options, and recommends active robotic ther-
apy as the basis for the rehabilitation strategies used by the robotic rehabilitation project.
Several implementations of active robotic therapy are discussed in her work, the most rel-
evant are mentioned in this report. Her suggestions for a functional design together with
the suggested control strategy form a basis for the work presented in this thesis.
Active robotic therapy
Active robotic therapy requires the patients to take an active part in the movement by
applying a minimum force threshold. The supervising physician or therapist should be
able to change the force threshold value depending on the patient’s needs and capabilities.
There are two main rehabilitation strategies that are based on the active robotic therapy,
assistive and challenge-based rehabilitation. Both presume that there is a predefined task
or movement which the patient is trying to perform. In assistive rehabilitation the robot
5
19. Chapter 2. Theoretical background
assist the patient in performing a task. This can be done by amplifying the movement the
patient is trying to perform as long as the force threshold value is met.
Challenge-based rehabilitation is in many ways the opposite of assistive rehabilitation.
The goal is to resist the patient’s movements or in other ways challenge the patient while
performing a task. One implementation involves making the robot act as a weight for
the weak arm to move, another can be error-amplification of the movements that are not
directly contributing in performing the desired movement.
Functional design
The functional design suggested by Blokkum in her master thesis[4] is based on results
from a literature review presented in her project thesis[5]. The suggested approach pro-
vides challenge-based training for the strong patients, and assistive training for the weak
patients. The design can also be expanded to include challenge-based error-amplification
for the patients that have progressed further along in the rehabilitation.
Controller design
The rehabilitation strategies and their implementations can be realized by a joint space
hybrid position/force controller. The suggested controller design[4] requires switching
between a position controller and a force controller. For example, if the chosen rehabilita-
tion strategy is assistive rehabilitation a dead-zone will be defined in an orthogonal plane
around a predefined path in the desired direction. The controller will enable the force con-
troller while the patient is inside the dead-zone, and the gradient vector is either zero or
in the desired direction. Moving outside the dead-zone triggers the switching to a posi-
tion controller that regulates the patient arm until it is located back inside the dead-zone.
Movements with a gradient that is opposite the desired gradient will also trigger the posi-
tion controller. Further details about the switching are not relevant for this thesis, but can
be found in the original work[5][4].
In order to create a closed loop position controller it is necessary to gather measure-
ments of the robot’s position, in addition to a method of controlling its position. Similarly,
a force controller needs force measurements of the force acted upon the robot by the envi-
ronment and a way to control the force the robot acts upon the environment.
2.1.2 Constraint induced movement therapy
A common rehabilitation strategy in physical therapy consists of reducing the degree of
freedom in the afflicted limb in order to retain some degree of functionality. The strategy
is based on the human body’s natural reaction to trauma or injuries. For example, a patient
suffering from trauma or injuries in the lower limbs will naturally adopt a compensating
gait pattern with fewer degrees of freedom in order to retain locomotive mobility. This is
well documented in the gait pattern of elderly suffering from hip fractures[20][17].
The limited functionality enabled by the constraint induced movement therapy then be-
comes a platform for rebuilding muscle strength, a more complex repertoire of functional
movements and other rehabilitation efforts.
6
20. 2.2 Hardware and relevant challenge
2.2 Hardware and relevant challenge
The following section presents an overview of Universal Robots UR5 manipulator with a
small selection of technical specifications,and a relevant challenge regarding force control
in robotic manipulators.
2.2.1 Universal Robots UR5
The Universal Robots UR5 robot[26] is a relatively inexpensive 6-axis industrial manipu-
lator with a reach of 85 cm and a maximal payload of 5 kg. The manipulator consists of
six rotational joints shown in figure 2.1, all with a maximum joint ranges of ±360◦
and
maximum joint speed of ±180◦
/s. Several built-in safety mechanisms are constantly ac-
tive with standard firmware running. This includes an emergency shutdown[25] triggered
when a maximum force acting on the robot Tool Center Point(TCP) exceeds 100N, and a
maximum momentum of the robot arm exceeds 10kgm
s . There are some measurement un-
certainty related with the robot’s internal sensors. The producer specifies a force trueness
of 25 N, and a momentum trueness of 3kgm
s .
Figure 2.1: Configuration of the UR5 manipulator. Figure taken from [24].
7
21. Chapter 2. Theoretical background
2.2.2 Challenge with force control in robot manipulators
Universal Robot (UR) do not provide direct insight into the firmware controller design,
probably because it is regarded as a trade secret. This thesis attempts to better under-
stand why adequate force control is difficult without direct control of joint torque or joint
velocity. This research question is a highly relevant challenge for this thesis.
At the mechanical level every joint in the UR manipulator is moved by a three-phase
AC motor, the motors are in turn controlled by integrated motor drives with space vector
control[24]. Manipulating the frequency and voltage input to the motor lead to an almost
linear correlation[6] to joint speed and joint torque. The inner control loop handles joint
torque control and joint velocity control in each joint directly. Outside this inner control
loop is a joint position feedback control loop. Figure 2.2 illustrate the joint controller
architecture from a similar 6DOF robot manipulator. Where τffw = feed forward joint
torque, ˙qref = feed forward reference joint velocity and qref = reference joint position. In
the UR manipulator each joint is individually controlled by a similar version of the joint
controller, with a central computer that calculate references for each of the joints.
Figure 2.2: Low level joint controller with feed-forward velocity and acceleration control inputs.
Figure taken from [31] .
Preferably it is possible to get access to all three control inputs; position, velocity and
acceleration, but as illustrated in chapter 5 this is not always the case. Challenges rise from
trying to design a force controller which is located outside the cascaded control structure
in figure 2.2. It might work in a theoretical world with perfect mathematical models and
perfect signals generation, but in an actual implementation it can lead to some unwanted
behavior. The force control inputs need to be kinematically transformed, integrated twice
and differentiated twice before they are applied as a joint torque, greatly amplifying any
noise signals in the process. This will undoubtedly cause internal fighting between the
control loops and give unpredictable results. In the author’s interpretation of a best case
scenario it will respond to force inputs and move in the desired direction, but with a twitch-
8
22. 2.3 Supportive software
ing motion as each waypoint feed to the position controller leads to a constant acceleration
and deceleration of the manipulator. Tuning the controller will also be a challenge. This
implementation will most likely not meet the soft real-time requirements for the intended
robotic rehabilitation strategy.
2.3 Supportive software
Most of the software used in this thesis were unknown to the author and the supervisors.
Therefore, a detailed description of relevant software tools used in this project thesis will
be presented in the following section. A compressed overview of high-level concepts of
ROS[12] is presented, followed by a quick description of ROS repositories and packages
used in this thesis.
2.3.1 Robot Operating System (ROS)
Figure 2.3: Artistic impression of different appli-
cations using ROS. Figure taken from [9].
The Robot Operating System, hereby re-
ferred to as ROS, is an attempt to create a
universal and flexible framework for writ-
ing robot software. Based on the provided
functionality, it is more precise to call
ROS a common robot programming inter-
face, instead of a robot operating system.
Having a standardized framework makes
it easier to produce robotic software across
different hardware platforms and program-
ming languages. It is developed and main-
tained by the Open Source Robotics Foun-
dation. A main goal for ROS is to fa-
cilitate collaborative robotic software de-
velopment across different hardware plat-
forms by utilizing a large library of repos-
itories.
2.3.1.1 ROS Master
The ROS Master provides naming and registration services to the entire ROS network.
It enables individual ROS nodes to locate each other across different software platforms
through standard TCP protocol. Once the connection have been established the nodes
communicate with each other peer-to-peer.
Another important task the master node provides is a parameter service. Parameters
are shared global variables within the ROS network. Although ROS is not intended to be
used as a real-time system, it supports threading. The master node’s parameter service
avoid common problems related to shared variables in a threaded system.
9
23. Chapter 2. Theoretical background
2.3.1.2 Nodes and topics
ROS uses a graph based architecture for communication. In its most basic form, a graph
consists of two elements; nodes and edges. A node is graphically depicted as a circle
or a square and an edge is graphically depicted as a dotted or solid line connecting two
nodes. All communication between nodes happen over the edges or as they are refereed
to in ROS terminology; a topic. A node can publish information to a topic, or subscribe
to a topic of interest. There are no limitations on how many topics a node can publish or
subscribe to. The communication protocols are over TCP/IP with each node having it’s
own unique port number. Since all communication between nodes are standardized the
nodes can run on different computers with different operating systems. In addition, the
nodes can be programmed in different programming languages. This is the true strength
of ROS; a robust cross-platform comparability.
2.3.1.3 ROS packages
Software in ROS is organized in packages. The packages provide useful functionality with
easy application in order to encourage code reuse within the robotic community. Individ-
ual packages might contain ROS nodes, ROS-independent library’s, configuration files,
SDF model files, third-party software, or anything else that constitutes a useful module.
Repositories contains a collection of useful ROS packages.
2.3.1.4 Catkin workspace
A software workspace introduces a standard for organizing all the files and directories
in a large and complex project into one coherent structure. This allows the programmer
to efficiently maintain a large project, organize various source code and resource into a
single ROS package; and thereby helps to promote code sharing and cross platform code
re-usability.
The Catkin workspace is popular within the ROS community, and it is therefore the
preferred workspace in this project thesis. The workspace is divided into several sub-
spaces each with a specific task. This thesis will focus on the source space located inside
the src/ folder. It will contain all the ROS packages needed to build a robotic simulation
environment, and custom scripts used for development and testing purposes. A generic
package file structure can be seen in the example below.
1 w o r k s p a c e f o l d e r / −− WORKSPACE
2 s r c / −− SOURCE SPACE
3 CMakeLists . t x t −− The ’ t o p l e v e l ’ CMake f i l e
4 package 1 / −− Generic package name
5 CMakeLists . t x t −− CMake b u i l d f i l e
6 package . xml −− Metadata about package
7 i n c l u d e / −− C++ i n c l u d e headers
8 msg / −− Folder c o n t a i n i n g Message ( msg ) types
9 s r c / −− Source f i l e s
10 srv / −− Folder c o n t a i n i n g Serv ice ( srv ) types
11 s c r i p t s / −− Executable s c r i p t s
10
24. 2.3 Supportive software
2.3.1.5 Messages and services
ROS uses a simplified message description language for describing data values that ROS
nodes publish. Message descriptions are stored in .msg files inside the src/package 1/msg/
sub-directory. In a similar manner a simplified service description language is used for de-
scribing ROS service types. It builds directly upon the .msg format to enable request/re-
sponse communication between nodes. Service descriptions are stored in the .srv files in
the src/package 1/srv/ sub-directory.
2.3.2 Applied ROS packages
The following subsections describes important and relevant ROS packages that are used
for building the robotic simulation environment in chapter 4.
2.3.2.1 ROS-Industrial
ROS-Industrial (ROS-I) is an open-source repository containing libraries, tools, sensors,
interfaces and drivers for industrial hardware. The repository overview seen in figure
2.4 provides all the necessary infrastructure for building robot models from the included
vendor specific packages.
Figure 2.4: ROS Industrial Robot architecture. Figure taken from [11]
11
25. Chapter 2. Theoretical background
Importantly, one of the supported vendors are Universal Robots. The ROS-I repository
forms the basis for the simulation environment used in this thesis.
2.3.2.2 Universal Robots
The universal robot repository is part of the larger ROS-I repository. It contains vendor
specific robotic models, parameters, interactions, communication interfaces, standard con-
trollers and visual representation. Included in the supportive packages are URDF files for
the UR3, UR5 and UR10 robot manipulators. These features makes it a highly useful
repository for this project thesis.
2.3.2.3 URDF
The Unified Robot Description Format(URDF) is a ROS package used for standardized
description of all the elements in a robot. The files are written in extensible markup lan-
guage (XML) format, and contain kinematic and dynamic properties of a specific robot
model. Chapter 4 will utilize the URDF architecture seen in figure 2.5 to build in a plugin
for measuring the force and torque on the UR5 end effector.
Figure 2.5: URDF overview. Figure taken from [27].
12
26. 2.4 Controlling the UR manipulators
This modular approach to URDF files is in line with the method of reuse-ability that
ROS was founded on. There are however, some drawbacks when model’s objective is to
interact with the surrounding simulation environment. For example, friction and inertia
are two important environmental interactions that are not described in a URDF file. To
overcome these shortcomings in a Gazebo simulation, a more complex SDF model file is
built around the generalized URDF model.
2.3.2.4 RVIZ
RVIZ is a 3D visualization environment for ROS. It provides a graphic overview of the
robot’s sensory inputs, trajectory planning and motion execution. Visualization and log-
ging of sensory information is an important part in developing and debugging. For this
thesis RVIZ was used together with MoveIt, a motion planning library, for early testing
and debugging.
2.4 Controlling the UR manipulators
During preliminary testing of the simulation environment presented in chapter 4 several
challenges appeared which required a more detailed understanding of the way the UR5
is programmed and controlled. The information gathered is presented in this section. It
describes the three main ways of programming the Universal Robot, gives details about
the Ethernet connections of the standard UR firmware controller (URControl) and dis-
cuss a selection of drivers that can be used for programming the robot via these network
connections.
2.4.1 Programming
There are three different ways of programming the UR manipulators; with a teach pendant,
or using code generated in URScript or C. Both the teach pendant and URScript runs on
the original firmware with a version of a low-level robot controller called URControl. The
internal controller sends commands to the joint servos at 125Hz and is thus able to evaluate
a new set of instructions every 8th
millisecond.
2.4.1.1 C programming
Universal Robot provides a C library for direct control of all joint servos in the robot. With
direct control of the applied joint torques it possible to create a custom low level controller
that runs on the robot with minimal delay. The fastest implementation will still have a
updating speed limited by the joint servos updating rate of 125 Hz.
Using programs or drivers with the C API will be the best control options for this
project. However, there are several disadvantages. It is necessary to install the program on
the robot controller box in order to use the C API interface. This might have some legal
ramifications that will be discussed further in chapter 5.
13
27. Chapter 2. Theoretical background
2.4.1.2 Teach pendant
Figure 2.6: Universal Robot teach pendant. Fig-
ure taken from [21].
The teach pendant is running a program
called Polyscope which is a graphical user
interface (GUI). It provides control and
programming interactions with the UR
manipulator. Polyscope can be a power-
ful tool for fast implementation, prototyp-
ing and debugging, but it was mainly de-
veloped for users without a programming
background. Polyscope is mostly a visual
programming language (VPL) and can not
be used for offline programming.
2.4.1.3 URScript
URScript is a robot programming lan-
guage developed by Universal Robot.
Like any other programming language,
URScript provides basic functionality like
variables, types, flow of control statements
and basic threading. It also provides a lot of robot specific functionality such as built-in
variables and functions that monitor and control the I/O and movements of the robot.
However, it does not support classes, and the threading functionality is only basic. It sup-
ports nested threading and basic mutex operations to avoid race conditions, but it does
not support parameters in thread function calls or semaphores. More limitations in thread
handling is found in the documentation; ”A couple of things should be noted. First of all,
a thread cannot take any parameters, and so the parentheses in the declaration must be
empty. Secondly, although a return statement is allowed in the thread, the value returned
is discarded, and cannot be accessed from outside the thread.”
Although it is not explicitly stated in the documentation, the impression is that URScript
does not support shared variables. In the URScript language, there are four different meth-
ods of moving the robot; move, servo, speed and force.
Move
Move commands are simple point-to-point movements. Motions commands can be linear
in Cartesian or joint space, or circular in Cartesian space. Speed and acceleration param-
eters in the function call controls the trapezoidal speed profile of the move command. A
move trajectory with several waypoints will make the robot momentarily come to a hold
at each point, unless a blend parameter is given. The blending functionality can be show
in a simple trajectory example with three waypoints.
Figure 2.7 illustrates how URControl uses the blend radius parameter to merge two
trajectories together with a smooth transition. The new trajectory prevents the robot from
coming to a complete stop at the WP 2 waypoint at the cost of never accurately reaching it.
This makes move commands with blend parameters unsuited for accurate position control.
14
28. 2.4 Controlling the UR manipulators
Figure 2.7: Blending over WP 2 with radius r.
Figure taken from [26].
Servo
The servo commands gives direct control
of the position of individual joints in or-
der to provide a high level of precision and
control. It moves the joint to the desired
position with a trapezoidal speed profile
and then stops all motion. Firmware 3.1
or later versions provides the user with a
lookahead time and a gain parameter in
the function call. This works in a simi-
lar manner as the blend parameter, it either
soften or sharpen the desired trajectory.
Section 2.5.3 will discuss an alternative
method for trajectory smoothing called in-
terpolation.
Speed
The speed command makes the robot accelerate linearly to the desired velocity and move
with a constant velocity in either joint space or Cartesian tool space. Once a desired
velocity is reached, the robot keeps moving at the desired velocity until a new command
is issued, or a joint limit is reached.
Force
Figure 2.8: Polyscope view of force
control. Figure taken from [26].
The force mode command enables simple built-in
force control, making the robot compliant along one
or more axes while still moving along other axes.
Along/around compliant axes the robot arm will
comply with the environment, which means it will
automatically adjust its position in order to achieve
the desired force. It is also possible to make the
robot arm itself apply a force to its environment.
However, this force controller design is fixed, and
this will severely limited the desired applications
for this project. Force commands is therefore be-
lieved to be unsuited as a basis for force control in
the suggested controller design.
15
29. Chapter 2. Theoretical background
2.4.2 Programming summary
This thesis have outlined the three main methods of programming the UR manipulators.
The information presented and the following discussion suggests that the teach pendant
is unsuitable for this project thesis. The uncertainties raised in section 5.2.4 regarding
C programming are not definitively confirmed, but the concerns does not grant further
use in this project thesis. The remaining option would be to control the robot through
URScript commands. However, the URScript language have some limitations that makes
it unsuitable to be the preferred programming language for a large and complicated project.
The best option is a driver written in a well known programming language that wraps
custom programs into URScript functions for the URControl to read and execute. Using
standard firmware, the driver communicates with URControl over Ethernet connections.
2.4.3 Ethernet connections
With the stock firmware running, data regarding the robot’s state, temperature, joint posi-
tions, joint orientations, etc. are continuously streamed through four TCP/IP server sockets
in the controller. It is possible to create custom programs or drivers to read and write to
the sockets.
2.4.3.1 Dashboard server
The dashboard server is used by the robot GUI, called Polyscope, to load and execute
programs and is found on port 29999. The main functions of the server are to load, play,
pause and stop a URScript program. As of firmware version 3.0, it can also be used to
power the arm on and off, release the brakes and, from version 3.1, unlock the protective
stop.
2.4.3.2 Primary and secondary client interfaces
The controller exposes two interfaces which a client can connect to; primary port 30001
and secondary port 30002. The data streams provide robot state information like joint
position and orientation, voltages, temperatures, Cartesian position, IO status, TCP force,
etc. The primary interface transmit robot state data and additional messages, while the
secondary interface transmit robot state data and as of firmware version 3.1, it streams
firmware information. Both interfaces accept URScript commands with a 10 Hz update
rate, however it can not be recommended because the commands are not read in a deter-
ministic manner.
2.4.3.3 Real time interface
The real time interface is found on port 30003. It provides a similar set of robot state
information at a much faster update rate of 125Hz. The data stream contains information
about the actual joint position and speed, target joint position, joint moment, joint current,
and joint temperature. The interface can also receive URScript commands with the same
125Hz update rate.
16
30. 2.5 Review of existing drivers
2.4.3.4 Real-time data exchange interface
For the newest firmware versions, CB3/CB3.1 with software 3.3 or later, UR has added a
fourth client interface called the real-time data exchange (RTDE) on port 30004. It pro-
vides an interface to synchronize external applications with the UR controller over a stan-
dard TCP/IP connection, without breaking any real-time properties of the UR controller.
The synchronization is configurable and can include outputs like robot-, joint-, tool- and
safety status, analog and digital I/O’s.
2.5 Review of existing drivers
This section will discuss a selection of existing drivers for the UR robot manipulators.
Drivers like the ur c api written by Kelsey Hawkins from Georgia Tech and ur sanntid
developed[29] by Torstein Anderssen Myhre and Johannes Schrimpf form NTNU and Sin-
tef Raufoss Manufacturing will not be considered since their work relies on the previously
discussed C API.
2.5.1 ur driver
The ur driver[2] has been part of ROS since the development of ROS Electric in 2011 and
was originally written by Stuart Glaser. Significant contributions have later been made
by Felix Messmer, Alexander Bubeck and Shaun Edwards. The ur driver is a package in
the universal robot repository that provides a ROS interface for controlling the UR robot
manipulators. In chapter 4, it is used to create a simulation environment for the UR5 robot.
Figure 2.9: Linear and interpolated trajectory.
The driver is written in Python and
exposes a joint trajectory interface. It is
theoretically capable of supporting com-
munication update rates of 125 Hz. The
actual update rate is disputed, as several
sources report significantly lower update
rates. During initialization is spawns sev-
eral threads for communication and con-
trol. The two threads connects to port
30002 and 30003 respectively, where they
parse the received robot state information
and publishes it onto ROS topics. The last
thread opens a new socket on port 50001
where it sends a custom URScript program to the robot. Byte-encoded instructions are
sent over the new socket to URControl where they are parsed by the new custom program
which call the appropriate URScript functions. The custom program allows joint trajectory
control based on the basic move and servo commands. The lack of control interfaces pro-
vided by the ur driver will be discussed further in chapter 5. The joint trajectory interface
uses interpolation to generate a smooth trajectory that goes through all the waypoints, in-
stead of using the blend or lookahead time parameter discussed in section 2.4.1.3. Figure
2.9 illustrate examples of a trajectory made from discrete waypoints with a linear point-
17
31. Chapter 2. Theoretical background
to-point solution, and with a cubic interpolation solution. The driver performs a quadruple
oversampling of the interpolation to ensure a smooth trajectory execution of servo com-
mands.
When URControl revives a new program it will immediately stop any program cur-
rently running and execute the newest program. This might lead to an abrupt transition in
the robot’s motion, and is not properly handled by the ur driver. The custom URScript is
long, slow and complicated. It introduces significant delays from a new command is re-
ceived until the robot actually moves. Although the robot should be controllable at 125Hz,
experiments done by [3] shows that the actual performance is 2-10 times slower. Addition-
ally, comparability with the latest firmware is also questionable due to protocol changes in
the robot’s TCP/IP client interfaces.
2.5.2 python-urx
The python-urx[28] driver was developed in 2012 by Oliver Roulet-Dubonnet for Sintef
Raufoss Manufacturing. It is originally intended for pick and place operations, but it has
been used for welding and other sensor based applications that do not require high control
frequency.
The driver is written in python and communicates mainly on the slower primary and
secondary interfaces at a update rate of 10 Hz. It has built-in functionality to listen to the
real time interface at 125 Hz, but it is turned off by default. The driver can only send
programs to the robot through the slower 10 Hz interfaces. As previously mentioned,
sending programs over the primary or secondary interfaces is problematic because the
programs are not guaranteed to be executed in a deterministic manner. The developer
comments in the source code and warns about a delay of several 10th
of a second from
sending a new program to the robot starts moving. The driver handles both joint position
changes and requests for I/O changes. It provides support for URScript all commands
move and speed, but it does not support the servo and force commands.
2.5.3 ur modern driver
The ur modern driver[3][1] package was developed by Thomas Timm Andersen, a robotics
engineer from the Technical University of Denmark, as part of his PhD thesis on sensor-
based real time control of robots. The driver is written in C++ and is designed to be a
direct replacement for the ur driver with a lot of improved functionality.
The driver provides two interfaces; a joint velocity interface and a joint trajectory
interface. The joint velocity interface is based on the speed command discussed in section
2.4.1.3, it takes the published velocities and directly forwards them to the robot controller
for the fastest possible execution. The trajectory interface is based on the servoj command
discussed in section 2.4.1.3 and closely resembles the ur driver solution with a custom
program calling URScript commands. This is done to ensure backwards compatibility
with existing robotics projects. The trajectory interface receives new goals and verifies
that the trajectory is valid. If it is approved, the driver does cubic interpolation between the
trajectory goals and transmits the intermittent joint position to the custom script running
on the UR controller.
18
32. 2.5 Review of existing drivers
During initialization the main thread spawns a total of four threads, two socket com-
munication threads and two threads for parsing the information. The first thread briefly
connects on the primary client interface to obtain the current firmware version. This is
done in order to ensure backwards compatibility with older firmware versions. The first
thread then disconnects from the primary and connects to the secondary client interface
where it continuously monitor I/O and the robot’s current state. A new thread is spawned
to read data from the socket, parse the information and via a condition variable it notifies
the main thread when new data is available. Then the main thread spawns a second com-
munication thread that connects to the real time interface on port 30003 and a new thread
is spawned that reads, parses and pass information back to the main thread. This means
that the driver can operate at a 10Hz or 125Hz update rate.
The driver supports I/O interactions and all main URScript commands for motion,
including commands needed for providing force control of the UR manipulator. It is also
compatible with large ROS repositories that provides position and force control.
19
34. Chapter 3
Robotic simulation software
This chapter contains a short review of four potential simulation software candidates, ar-
guments for choosing one for implementation, and a description of the software setup used
in this project thesis.
The work presented here was done without some of the extensive background knowl-
edge presented in chapter 2, especially the details about the ur driver was at the time
unknown to the author. This is important to note, as this information would have altered
the selection outcome.
3.1 Short review of simulation software
Creating a accurate simulation environment is one the main goals of this project thesis.
Previous attempts[4] at simulating the newly developed controller have failed due to a
number of unknown reasons, but it was believed that communication problems between
the Matlab script containing the controller and the simulation software V-REP was the
main cause.
Some of the requirements for a potential simulation tool includes a preexisting UR5
model, accepting external controller inputs generated in Matlab, an adequate library and
preferably a large community providing essential guidance and support.
Another preference by the author is easy compatibility with the robot operating sys-
tem(ROS), preferably through a preexisting application programming interface(API).
Based on these requirements and preferences a total of four simulation software can-
didates where evaluated; V-REP, URSim, Gazebo and Matlab.
3.1.1 V-REP
V-REP is the simulation software used by Blokkum in her master thesis[4]. The software
is developed by Coppelia Robotics and supports several programming languages and is
available for Windows, Mac OS and Linux users. V-REP provides several external con-
trol inputs[23] options; child scripts within the V-REP platform, plugins, remote API,
21
35. Chapter 3. Robotic simulation software
ROS interfaces or through a tailored application script. The remote API contains built-in
functions that allow communication with V-REP through the languages C/C++, Python,
Java, MATLAB/Octave, Urbi and Lua. The ROS interfaces also allows V-REP to receive
communication and control inputs from ROS nodes.
V-REP has several advantages; an intuitive GUI, accurate graphics engine, large com-
munity, extensive documentation and good online tutorials. However, it has some draw-
backs, most noticeably the communication problems pointed out by Blokkum[Blokkum].
She chooses to communicate and pass control inputs from MATLAB to V-REP though a
remote API. To avoid the problems discussed above it might be wise to choose a differ-
ent way of communicating external control input, for example via the ROS interface or a
different plugin.
Figure 3.1: MATLAB to VREP communication used by Blokkum. Figure taken from [4].
Blokkum also speculated[4] that there might be an underlying built-in controller in the
V-REP’s UR5 model that interfered with the controller inputs. Some efforts have been
made by the author to clarify this statement without yielding any conclusive results. It
might be caused by the challenge with implementing force control described in section
2.2.2, but time restrictions prevented a deeper look into the code for the V-REP models
she used.
Specific model code generated for the V-REP simulator can not be reused for the phys-
ical implementation, but using a ROS interface allows much of the code for controlling and
analyzing to be written in Matlab and subsequently be reused at a later stage.
3.1.2 URSim
Universal Robots has created its own offline simulator[22]. It mainly runs on Linux(Mint
17.1 and Ubuntu 14.04) but it can also run on Windows inside a custom virtual ma-
chine(VM) that is based on Linux (Ubuntu).
URSim is a 3D robot manipulator simulator with the same GUI, called Polyscope, used
with the physical UR robot manipulators. The simulation software comes with preexisting
models of the UR3, UR5 and UR10. Using a simulator that is directly developed by the
relevant robot manufacturer is tempting. One of the advantages is that it guarantees that
22
36. 3.1 Short review of simulation software
the kinematics and dynamics of the robot is correct. Detailed information of this kind
is however actively shared by Universal Robots to all software developers and therefore
provides no real advantage. There are some tutorials about URSim available, but they are
limited and URSim lacks a proper support community.
URSim supports programming of the UR manipulator with Polyscope and URScript.
The ability to reuse code used in the simulator for a physical implementation is consid-
ered an advantage, but as we discussed in chapter 2.4.1 there are some limitations using
Polyscope and URScript. There is no available ROS interface for URSim, theoretically
network communication between the simulator and Matlab would be possible. The re-
quired workload for establishing such an interface is extensive. Reading through the doc-
umentation revealed a potential problem with some of the software limitations to this sim-
ulator. There are some limitations to the simulator since no real robot arm is connected.
Specially the force control will be limited in use. Although the exact source of the prob-
lems quoted in this statement is unknown to the author, they pose a serious threat to the
desired outcome of the simulation environment. It raises some serious doubts about UR-
Sim’s ability to handle controller inputs from an external source. In addition, the lack of
proper documentation raises concerns about the accuracy and quality of the simulation.
3.1.3 Gazebo
Gazebo is a 3D dynamic simulator with the ability to accurately and efficiently simulate
robots in complex environments. It was originally developed in 2002 by Dr. Andrew
Howard and PhD Nate Koenig, and is now supported and developed by the Open Source
Robotics Foundation(OSRF). Several high level concepts are involved in running a Gazebo
simulation[10].
World files The world description file contains all the elements in a simulation, including
robots, lights, sensors and static objects. The file is formatted using the Simulation
Description Format(SDF), and typically has a .world extension. The Gazebo server
reads this file to generate and populate a simulation environment.
Model files The model file uses the same SDF format as world files, but it only contains
one specific model. The purpose of these files is to facilitate model reuse and sim-
plify world files. Several models are provided by Gazebo’s online model database,
and even more can be sourced from the extensive community of Gazebo users.
Environment variable Environmental variables are used to locate files, and set up com-
munication between the Gazebo server and clients. A proper software workspace
will generate this set up automatically, but it can also be done manually by the user.
Gazebo server Through a command line the server parses a world description file and
then simulates the world using a physics- and sensor engine. The server generates
all the raw simulation data, but it does not include any graphical representation.
Graphical client The graphical client connects to the Gazebo server and visualizes all the
elements in the simulation environment. It also provides basic tools for interacting
with the running simulation. This interaction includes but is not limited to; spawning
23
37. Chapter 3. Robotic simulation software
and deleting objects, moving and scaling objects and modifying camera angle and
lighting.
Plugins Plugins provide simple and convenient interfaces with Gazebo. They can be
loaded though command lines, or by modifying a world/model file. Most plugins
are loaded by the server, but some can be loaded by the client.
Gazebo is the preferred simulation environment used by the ROS community. Some
key features include multiple physics engines, rich library of robot models and environ-
ments, wide variety of sensors and an intuitive GUI. It is supported by RVIZ, a powerful
robot visualization tool, that provides visualization of path planning, current states, sensor
inputs and logging information for debugging. Gazebo runs on Linux, supporting almost
all main versions of Ubuntu depending on the chosen ROS version. It has an extensive
library of preexisting robot models, a large community and several independent tutorial
sources available. A large robotics repository called ROS-Industrial includes a model of
the UR5 and UR10.
Since Gazebo and RVIZ are built on the ROS platform they use standard ROS inter-
faces by default. However it is possible to interact though other custom interfaces. The
UR5 and UR10 models from ROS-Industrial is designed with a ROS interface that can
communicate with a UR5 robot simulation in Gazebo and a physical UR5 robot. This
ability to interconnect between a simulated and a physical robot is highly appealing for
this project. It means that code generated for the simulation can be reused for implemen-
tation on a physical UR5 robot.
3.1.4 Matlab
Matlab has a free integrated package extension called Robotic System Toolbox with some
existing models of robot manipulator. Of these, the PUMA560 model is an older 6 DOF
robot consisting of the standard layout of six prismatic joints. The model has an adequate
level of real world accuracy and is fully integrated in the Matlab platform. The main idea
is to retrofit the PUMA560 robot model with the physical and kinematic parameters of the
UR5. There are some clear kinematic differences between the UR5 and the PUMA560,
but the PUMA560 model could be used as a template for a UR5 model, and it has the
added benefit of avoiding cross platform communication problems between Matlab and a
third party simulation software. Attempts have been made at contacting the author, or any
of the code maintainers, of the Robotics Toolbox package through a support forum[14]
with only one reply.
Unlike the other software discussed in this section Matlab is not a dedicated robotic
simulation software. It lacks preexisting code support for robotic interactions with the
environment like friction, collision, etc.. A member of the online community also warns
about the lack of support for simulation of human machine interactions.
3.2 Selecting simulation software
URSim was for a long time a serious simulation software candidate for this thesis, but it
had too many drawbacks with accepting external controller inputs and incomplete docu-
24
38. 3.2 Selecting simulation software
mentation. Blokkum’s experiences and the inability to locate the source of the problems
was a decisive factor for not choosing V-REP. Matlab falls short because it is not a ded-
icated simulation software, and it seem that the PUMA560 robot model is no longer be
regularly maintained by the developers.
Ultimately, Gazebo was chosen as the simulation software for creating the simulation
environment in this thesis. The ability to hot-swapping from simulator to hardware, large
online community, extensive tutorials, preexisting UR5 model and recommendations from
colleges at the cybernetics community at NTNU’s department of engineering cybernetics
were important factors in this decision.
In hindsight, as we will see in chapter 5, choosing Gazebo was not the best decision
for the desired outcome of this project thesis. This is partly due to the challenges with
implementing force control described in chapter 2.2.2, and will be discussed in greater
detail in chapter 5.
3.2.1 Software setup
There are some software requirements that follow from using a simulation environment
generated with Gazebo and the relevant ROS repositories and packages. ROS is mainly
supported on Linux distributions including all stable versions of Ubuntu. There is no direct
comparability with Windows and Mac OS, but a custom Linux based virtual machine(VM)
with a pre-installed version of ROS is available for download. The latest three distribu-
tions of ROS are in chronological order from oldest to latest release; ROS Indigo Igloo,
ROS Jade Turtle and ROS Kinetic Kame. All three distributions are still maintained and
supported by the development team. The ROS-I repository requires the older distribution
version ROS Indigo Igloo. In turn this ROS distribution version needs to run on a trusty
version of Ubuntu 14.04.
Matlab is intended to be used for data analysis and direct interaction with the robot
simulation. It is therefore important to have a ROS interface with the simulation environ-
ment. This can be provided through the Robotic System Toolbox that among other things
includes a ROS interface for Matlab. It is uncertain how stable Matlab will be on a Linux
platform, and as a preventive measure it was decided to run Matlab on a Windows OS.
The architecture should not interfere with the cross-platform communication, since ROS
is made to communicate with TCP/IP protocols. For example, the communication be-
tween the simulation environment in a Linux based VM and ROS nodes created in Matlab
running in Windows.
25
39. Chapter 3. Robotic simulation software
The resulting software setup is a base OS running Windows 7 with and a VM running
Ubuntu 14.04. The VM runs ROS Indigo Igloo with the ROS repositories and ROS pack-
ages discussed previously. From the base OS we will run Matlab version R2016b with the
added extension Robotic System Toolbox.
Figure 3.2: Final software setup. Base OS shown in red, VM in green, ROS nodes blue and ROS
master in orange. All ROS communication are sent over TCP/IP, especially highlighted over the
virtual bridge between the main computer and VM .
26
40. Chapter 4
Implementation and results
4.1 Building the simulation environment
The entire simulation environment is located in the /src folder inside the established catkin
workspace. It consist of two packages;
• universal robot
• project thesis
The universal robot package is part of the ROS-I repository, it contains the UR5 ma-
nipulator model, drivers, kinematics, configurations and a basic position controller. The
project thesis package contains python code for testing and analysis of the simulation en-
vironment.
4.1.1 Modifying the simulation environment
We need to make some modifications to the simulation environment to make it suit the
needs of the robotic rehabilitation project.
4.1.1.1 Force Torque sensor
In order to implement a hybrid force and position controller we need to know the applied
force by the patient at the end effector. In the physical UR5 robot this can be done by
installing a force sensor at the contact point between the end effector and the patients
wrist. In the Gazebo simulator this can be achieved through an existing plugin. Installing
this plugin into the simulation environment is done by modifying a URDF file in the uni-
versal robot package, specifically the universal robot/ur description/urdf/ur.gazebo.xacro
file.
27
41. Chapter 4. Implementation and results
The following code is added to the URDF file;
1 <?xml v e r s i o n =” 1.0 ” ?>
2 <robot xmlns:xacro =” h t t p : / /www. ros . org / wiki / xacro ”>
3 <xacro:macro name=” ur arm gazebo ” params=” p r e f i x ”>
4 <!−− S t a r t of e x p e r i m e n t a l code −−>
5 <gazebo r e f e r e n c e =”${ p r e f i x } w r i s t 3 j o i n t ”>
6 <provideFeedback>t r u e</ provideFeedback>
7 </ gazebo>
8
9 <!−− Experimental code: The f t s e n s o r plugin −−>
10 <gazebo>
11 <plugin name=” f t s e n s o r ” filename =” l i b g a z e b o r o s f t s e n s o r . so ”>
12 <updateRate>80.0</ updateRate>
13 <topicName>f t s e n s o r w r i s t 3 j o i n t t o p i c</ topicName>
14 <jointName>${ p r e f i x } w r i s t 3 j o i n t</ jointName>
15 </ plugin>
16 </ gazebo>
17 <!−−End of e x p e r i m e n t a l code −−>
18 </ xacro:macro>
19 </ robot>
As previously mentioned the URDF files are all written in XML. To the original URDF
file we have added a ft sensor plugin. This plugin adds a force/torque sensor to the
wrist 3 joint. We can specify the desired sampling rate. According to Gertjan Ettema
PhD, professor at Department of Neuroscience, Faculty of Medicine NTNU, the quickest
human reaction time is approximately 25ms. The reaction time is measured from the initial
human sense input is registered by the central nervous system, to movement begins in the
extremities. This insight was gained during a course lecture[7] and subsequent discussions
with the professor.
It is safe to assume that all other voluntary movements have a dynamic rate that is
slower than 40Hz. In accordance with Nyquist sampling theorem we set the sampling rate
to be twice as fast as the quickest dynamic in the system, in this case 80Hz.
The sensor output is published on a topic called ft sensor wrist 3 joint topic. It is con-
tained in a ROS message called geometry msgs.msg.WrenchStamped. More information
about the structure of the WrenchStamped ROS message can be found in the appendix.
From here it is relatively easy to create a ROS node that subscribes to the newly estab-
lished topic and extracts the relevant force variables. Ultimately, these variables will be
the sensor basis for force control of the UR5 robot simulation.
4.2 Communication between Matlab and ROS
In this thesis, Matlab is intended to be a tool for analysis and generation of patient force
inputs. In order to establish a connection between Matlab and the ROS master running
on the VM we need to initiate a ROS node inside Matlab, aptly named ”MatlabNode” for
this thesis. It is then possible to utilize built-in functions provided by the Robotic System
Toolbox to interact with the ROS network.
Figure 7.2.4 in the appendix shows a built-in function called applyForce. It takes in a
torque and force vector and applies it to any Gazebo body in the simulation environment.
28
42. 4.3 Tools for preliminary testing
In this example we apply it to the robots end effector, simulating the contact point as
between the robot and the patient.
4.3 Tools for preliminary testing
A ROS package called MoveIt was intended as a development tool for preliminary testing
of the control interfaces. It is used together with RVIZ, which was discussed in section
2.3.2.4. MoveIt comes installed with the ROS-I repository and contains control theory,
path planning algorithms and cost functions needed for trajectory planning and control.
RVIZ provides an easy to use GUI with real-time visual representation of the robots state
and animations of the planned path.
Figure 4.1: RVIZ with MoveIt used for preliminary testing of the control interfaces.
After preliminary testing are complete, it is intended to use Matlab for more detailed
measurements. Including position and force control inputs, and calculation of the con-
troller efficiency.
29
43. Chapter 4. Implementation and results
4.4 Resulting simulation environment
Combining everything we have learned about Gazebo, ROS, ROS-I and universal robot we
are now able to create a simulation environment for the Universal Robots UR5 manipulator
inside the VM. The sensor modifications previously mentioned and the connection with
Matlab are also running in the background.
Figure 4.2: Simulation environment of Universal Robots UR5 manipulator.
30
44. Chapter 5
Analysis and discussion
5.1 Challenges with the simulation environment
Preliminary testing of the simulation environment revealed a number of challenges. This
chapter gives a quick description of the main challenges and the suggested solutions.
5.1.1 Position control
Testing of position control in the simulation environment were done with MoveIt, an ex-
isting ROS motion library described in section 4.3. Interactions with MoveIt were done
with RVIZ and a simple python test script. Testing reveled a challenge with using a highly
developed and efficient motion library. Normally users feed a set of waypoints to MoveIt,
which in turn generates a joint trajectory that is sent to the ur driver for parsing to URCon-
trol or a simulation before being executed. Testing the standard trajectory builder revealed
trajectories that rotates the end effector in a way that might harm the patient. This can
happen even if the user specifies the exact position and orientation of the end effector in
each waypoint. MoveIt is a sophisticated and advanced motion planning library, and as a
consequence it will always try to find the optimal solution for a trajectory. All the joints in
the UR5 robot has the potential to rotate ±360◦
. An optimal solution according to MoveIt
might include a large angular rotation in one of the robot joints in order to achieve a higher
range of potential angular motion in the specific joint. This can result in a trajectory, with
a fixed waypoint orientation in point A and point B, where the robot twists severely around
one of the joints while transitioning from A to B. In the setting of this robotic rehabilitation
project, with a delicate interaction between an industrial robot manipulator and a stroke
patient, this is not a desired behavior.
Adopting a simpler Cartesian trajectory planner from the same library was the simple
solution for testing purposes. It computes a simple and predictable trajectory where the
end effector moves linearly in Cartesian space between the provided waypoints with a fixed
orientation. A drawback with the new trajectory planner is an increased path planning time
and a higher rate of rejected trajectories.
31
45. Chapter 5. Analysis and discussion
5.1.2 Force control
A big challenge was identified while testing force control in the simulation environment.
The UR5 robot’s standard firmware support both velocity and position control inputs,
which is needed for realizing the suggested controller design described in section 2.1.1.
During preliminary research of the universal robot repository an incorrect assumption was
made about the available control input options. It was believed that the ROS repository,
designed with vendor specific details and real hardware interaction, would support both
position and velocity control inputs. This assumption turned out to be incorrect. Inside the
universal robot repository the ur driver package is responsible for providing the user with
a communication and control interface to the robot. Research into the ur driver, presented
in section 2.5.1, showed that the driver only supports position control inputs through the
joint trajectory interface. Without the ability to directly apply joint torque or joint veloc-
ity inputs it will not be possible to simulate the force control presented in the suggested
controller design. Contacting the driver developers and other resource persons inside the
ROS community concluded that it would be very difficult to alter the ur driver to support
velocity control.
Further research into alternative drivers for the UR manipulators are presented in sec-
tion 2.5. The most promising candidate was the ur modern driver, which was created as
a directly replacement for the ur driver. The developer addressed and improved several
problems with the original driver, and importantly added support for direct velocity con-
trol. Attempts to run the simulation environment with the new ur modern driver failed
due to initialization problems. During the ur modern driver initialization process several
threads are spawned to establish the firmware version and network connection protocol
with the robot, described in more detail in section 2.5.3. However, this information is
not provided by the simulated robot model. This makes it very difficult to connect the
ur modern driver with the simulation environment. Attempts at altering the initialization
of the driver by generating fake communications signals from the simulated robot have not
been successful.
5.1.3 Simulation of patient force input
During testing patient force inputs were generated in Matlab by a function called apply-
Force and sent over a ROS interface to the Gazebo server. The function calls a ROS service
provided by Gazebo called gazebo msgs/ApplyBodyWrench.srv. This service applies lin-
ear force and torque to any Gazebo body with parameters that decide magnitude, starting
time, duration and reference frame of the applied wrench. The specified Gazebo body was
in this case the end effector of the UR5 robot, and the force was applied relative to the
world frame. Generated patient force could then be registered by the force/torque sensor
we added in section 4.1.1.1 and be used for direct force control with a feedback loop.
This was an easy way of generating force on the end effector for early testing, but it is an
inadequate representation of a human arm. Preliminary plans were made for adding the
patient arm into the simulation environment, but time restrictions caused by the challenges
described above did not allow for further research into this subject.
32
46. 5.2 Implementation challenges
5.2 Implementation challenges
5.2.1 Controller design
Making changes to the suggested controller design is not a major focus in this thesis.
However, there are some potential issues with the design that should be addressed.
The suggested controller design described in 2.1.1 switches between a position con-
troller and a force controller. Regardless of the chosen rehabilitation strategy, instantly
switching between a force- and position controller will be experienced by the patient as
a sudden and abrupt change. To a patient that is inside the dead-zone while using assis-
tive rehabilitation, moving outside the dead-zone and enabling the position controller will
feel like hitting a brick wall. A dampening effect in the transition from force- to position
controller would be preferred.
5.2.2 Wrist mounting
A suggested functional design of the physical interface between the rehabilitation robot
and the stroke patient is a wrist-guard. The wrist-guard would also intentionally limit
the stroke patients range of motions in the wrist. This could be a basis for constraint
inducement movement therapy discussed in section 2.1.2.
Constraint induced movement therapy in the upper-limb after a stroke have been discussed[7]
in October 2016 with Torunn Askim PhD, associate professor at Department of Neuro-
science, Faculty of Medicine NTNU. She stated that; ”If there are any benefits, they are
not well documented within upper-limb stroke rehabilitation.” She does not recommend
this rehabilitation strategy on stroke patients. As a suggestion she recommends to only
include patients that are able to move their wrist ±10◦
in all directions. This would ensure
that patients have a minimal functionality in the wrist, and therefore be more responsive
to the robotic rehabilitation efforts.
5.2.3 Maximum force emergency shutdown
It is unclear whether a built-in safety mechanism, where all forces acting on the robots
TCP exceeding 100N will trigger an emergency shutdown, is going to be a challenge in
the implementation process. The human arm constitutes approximately 6,5% of the total
body weight[4], given an average human male weighing 80 kg this translates to roughly
5.2 kg. Since the UR5 robot has a maximum carrying capacity of 5 kg, we have to assume
that stroke patients in the robotic rehabilitation program are unable to generate a enough
muscular force to counteract the pull of gravity and stay within the UR5s carrying capacity.
However, patients that meet the requirements for participating in the robotic rehabilitation
program might suffer from spasticity, a medical condition leading to a sudden stiffness
or tightness in muscles. It is likely that weak patient suffering from spasticity will pose
a challenge for the robotic rehabilitation project. Triggering the emergency shutdown
could occur when the robot is carrying much of the patient’s arm weight and the patient
experiences a spastic arm reflex in a vector pointed downwards.
Patients with a high frequency tremble might also pose a similar challenge to the
robotic rehabilitation project. It is not possible to disable the safety mechanism while
33
47. Chapter 5. Analysis and discussion
using standard firmware.
5.2.4 Programming basis
In section 2.4.1.1 the possibilities of using the C API as a programming basis for control
over the UR5 manipulator is discussed. Legal speculations are a bit outside the scope of
this thesis, but the plausibility and potential ramifications makes it a relevant subject. As an
example, the T ¨UV safety certificate is issued directly to URSafety, a safety subsystem of
the original firmware. More details about the UR5 specific T ¨UV safety classification can
be found in the appendix. Running a custom program parallel with, or as a replacements of,
the original firmware might legally be seen as a significant change of the original product.
Completely replacing it means that the built in safety mechanisms in the original firmware
will be ignored. Such an intrusive change will most likely result in the UR5 product losing
its T ¨UV safety and ISO classifications. Such a scenario would pose a big challenge for
the robot rehabilitation project, where the end goal is close collaboration between the UR
robot manipulator and stroke patients. Work towards approving the project for human
clinical trials will most likely be set back significantly in time, and the cost of reinstating
the safety classifications.
A decision to use the C API or URScript as a programming basis will significantly af-
fect the controller design. Using the C API as a total replacement for the original firmware
will undoubtedly be the best solution for a low level controller, as it provides direct control
over joint torque and joint velocity in each joint. Using a driver based on the C API will re-
sult in a similar level of control without the added workload of designing a new driver. The
URScript programming basis is safer in a legal sense but more constrained. The available
motion commands have some clear limitations, and the lowest control level provided by
drivers based on this method is a joint velocity interface provided by the ur modern driver.
34
48. Chapter 6
Conclusion
6.1 Feasibility of simulation environment
The resulting simulation environment handles position control inputs but currently fails
at providing a simulation basis for force control inputs. With the current setup it is not
possible to realize the suggested robotic rehabilitation strategy inside the simulation envi-
ronment created in this thesis.
6.2 Physical implementation
6.2.1 Constraint induced movement therapy
Based on the recommendation made by Torunn Askim the decision is to not implement
constraint induced movement therapy for this project- and master thesis. This implies that
the wrist mounting between the robot and the patient must be developed to ensure minimal
restrictions on the patients wrist.
6.2.2 Minimal sampling rate
The discussion in section 4.1.1.1 regarding the force/torque sensor sampling rate resulted
in a recommended minimal sensor sampling rate. The same argumentation can be used for
a physical implementation.
The recommended minimum sampling rate regarding for the physical force/torque sen-
sor and the suggested controller design is 80 Hz.
6.2.3 Programming basis for UR manipulator
Based on the concerns discussed in 5.2.4, all drivers based on the C API were excluded
from the reviews presented in 2.5. This approach is also believed to be unsuited for further
physical implementations.
35
49. Chapter 6. Conclusion
The recommendation is a driver based on URScript commands. Several potential
drivers were reviewed in section 2.5. The ur modern driver is believed to be the best can-
didate for further development. The driver exposes a velocity interface that could be a used
as a basis for force control, but the resulting controller needs to be verified in experiments.
6.2.4 Patient exclusion
The research and conclusions presented in this thesis set some requirements the patients
must fulfill before they are able to participate in the robotic rehabilitation program.
The decision to use standard firmware implies that weak patients suffering from spas-
ticity or high frequency trembles should be excluded from robotic rehabilitation until they
are able to support the majority of their own arm weight. The exact criteria needs to be
established based on further research.
Another requirement is that patients should be able to generate a minimal wrist motion
of ±10◦
in all directions in the affected arm.
Together, these criteria ensures a minimal level of functionality in the stroke patients
upper-limbs. This provides a platform for further rehabilitation effort provided by the
robotic rehabilitation strategies.
36
50. Chapter 7
Future work
Work with the robotic rehabilitation project will be continued by the same author in a
master thesis, with the guidance of Erik Kyrkjebø and Øyvind Stavdahl. This will ensure
continuity and steady progress for the robotic rehabilitation project.
7.1 Improvements to the simulation environment
7.1.1 Implementing force control
With an experienced programmer and enough time it is possible to create support for
force control input within the current simulation software setup by modifying the current
ur driver or the newly developed ur modern driver. The latter option should be preferred
as it is still regularly maintained and supported by the developer. The challenges with
force control described in section 2.2.2 should also be avoided.
Another solution is to try again with the V-REP simulator, based on the review pre-
sented in section 3.1 it should provide a good basis for the simulation environment. It is
recommended to use a ROS interface for providing control inputs, instead of the plugin
Blokkum used in [4] for communication with Matlab.
7.1.2 Simulation of patient force inputs
The robotic rehabilitation project require a simulation environment with a realistic repre-
sentation of patient force inputs. The temporary solution applied in this thesis was always
intended to be improved, but time restrictions prevented further development.
7.2 Physical implementation
The cybernetics department at the Norwegian university of science and technology will
provide a physical UR5 robot for experimental implementation of the robotic rehabilitation
37
51. project in a future master thesis. The department will also contribute a 6-axis force/torque
sensor that can be used for accurate measurements of patient force inputs.
7.2.1 Improvement to controller design
Improvements to the controller design need to be made in order to achieve the desired
dampening effect discussed in section 5.2.1.
For example, a suggested controller design solution related to assistive rehabilitation
can be realized by a linear quadratic regulator (LQR). It requires redefining the dead-zone
around the desired trajectory from a hard constraint, to a soft constraint. The LQR would
than penalize deviations from the desired path, and at the same time, penalize the controller
for failing to amplify the patient force inputs. In a similar manner, rehabilitation based
on challenge-based error-amplification can be realized by inverting the sign of the cost
function parameters. This controller design will be provide the desired behavior related
to the two main rehabilitation strategies, but with some drawbacks. The feasibility of
the newly suggested controller design is unclear. It requires a mathematical model of the
system, something that is currently not developed. Tuning the cost parameters will also be
a challenge. Further development and research into the newly suggested controller design
is necessary.
7.2.2 Patient exclusion criteria
The minimal muscle strength required by stroke patients suffering from spasticity and high
frequency tremble needs to be defined. There should be a general limit, and a specific limit
for Universal Robots UR5 manipulator. A standard medical test suited for determining the
muscle strength in stroke patients should also be identified.
7.2.3 Wrist mounting
Before a physical implementation of the robotic rehabilitation project can be realized,
the physical interface connecting the robot end effector and the wrist of the stroke patient
needs to be developed. Based on the discussion in section 5.2.2, the wrist mounting should
not interfere with any movement in the wrist.
7.2.4 Experimental verification
Implementing the robotic rehabilitation strategy with a driver based on the URScript and
the provided Ethernet interfaces needs to be verified in experiments. The feasibility, ef-
ficiency and safety of the resulting controller is unknown. There is a small chance that a
velocity interface will not provide a sufficient basis for the robotic rehabilitation require-
ments.
38
52. Bibliography
[1] Sorce code for ur modern driver. https://github.com/ThomasTimm/ur_
modern_driver, Desember 2016.
[2] Source code for ur driver. https://github.com/ros-industrial/
universal_robot/tree/indigo-devel/ur_driver, Desember 2016.
[3] Thomas Timm Andersen. Optimizing the Universal Robots ROS driver. Technical
University of Denmark, Department of Electrical Engineering, 2015.
[4] Kristine Blokkum. Design and analysis of a hybrid position/force controller for
robotic rehabilitation of upper limb after stroke. Master’s thesis, Norwegian Uni-
versity of Science and Technology, Department of Engineering Cybernetics, 2016.
[5] Kristine Blokkum. Functional review on robotic rehabilitation of upper limb after
stroke. Master’s thesis, Norwegian University of Science and Technology, Depart-
ment of Engineering Cybernetics, 2016.
[6] Sylvester J. Campbell. Solid-State AC Motor Controls. Marcel Dekker, Inc., 1987.
[7] Faculty of Medicine NTNU Department of Neuroscience. Bev3103 - movement
control and motion problems. http://www.ntnu.edu/studies/courses/
BEV3103, October 2016.
[8] Jens G. Balchen & Trond Andresen & Bjarne A. Foss. Reguleringsteknikk. NTNU,
Institutt for teknisk kybernetikk, 2003.
[9] Open Source Robotics Foundation. Artistic impression of ros. http://www.ros.
org/history/, December 2016. See figure 3.1.2 on page 11.
[10] Open Source Robotics Foundation. Gazebo simulator tutorials. http://
gazebosim.org/tutorials, December 2016.
[11] Open Source Robotics Foundation. Ros-i overview. http://wiki.ros.org/
Industrial, December 2016.
39
53. [12] Open Source Robotics Foundation. Ros-i overview. http://www.ros.org/,
December 2016.
[13] Helsedirektoratet. Nasjonal retningslinje for behandling og rehabilitering ved hjer-
neslag. ISBN-978-82-8081-153-0, 2010.
[14] Mads Johan Laastad. Retrofitting the puma560 into a ur5 model. https:
//groups.google.com/forum/#!topic/robotics-tool-box/
9RNSE6021Fs, September 2016.
[15] P. Maciejasz. A survey on robotic devices for upper limb rehabilitation. J Neuroeng
Rehab. R&D, 2014.
[16] Hocoma media center. Example image of robotic rehabilitation. https://www.
hocoma.com/uploads/pics/1508_armeopower.jpg, December 2016.
[17] Lofthus & Meyer. Consequences of hip fracture on activities of daily life and resi-
dential needs. 2004.
[18] Christopher Murray and Alan Lopez. The world health report 2002 - reducing risks,
promoting healthy life. pages 7–14, 2002.
[19] N. Norouzi-Gheidari, P.S. Archambault, and J. Fung. Effects of robot-assisted ther-
apy on stroke rehabilitation in upper limbs: Systematic review and meta-analysis of
the literature. J. of Rehab. R&D, pages p. 479–495, 2012.
[20] Prestmo. The trondheim hip fracture trial. 2015.
[21] Industrial robot. Teach pendant image. http://industrialrobotinfo.
apps-1and1.net/wp-content/uploads/2015/04/ur_teach_
pendant_moving-co.jpg, December 2016.
[22] Universal Robot. Offline simulation of universal robot products. http:
//www.universal-robots.com/download/?option=23952#
section16597, December 2016.
[23] Coppelia Robotics. External controller tutorial. http://www.
coppeliarobotics.com/helpFiles/, December 2016.
[24] Universal Robots. Service manual for ur5 with cb3.0/cb3.1-controller.
https://www.universal-robots.com/download/?option=15833#
section15832, December 2016. See figure 3.1.2 on page 11.
[25] Universal Robots. Service manual for ur5 with cb3.0/cb3.1-controller - limit-
ing safety functions. https://www.universal-robots.com/download/
?option=15833#section15832, December 2016. See table on page I-14.
[26] Universal Robots. Ur5 user manual. https://www.universal-robots.
com/download/?option=22045#section22032, December 2016.
[27] ROS. Urdf overview. http://wiki.ros.org/urdf, December 2016.
40
54. [28] Oliver Roulet-Dubonnet. Source code for python-urx. https://github.
com/SintefRaufossManufacturing/python-urx/tree/master/
examples, December 2016.
[29] Johannes Schrimpf. Sensor-based Real-time Control of Industrial Robots. Norwe-
gian University of Science and Technology, Department of Engineering Cybernetics,
2013.
[30] Luciana B. Sollaci and Mauricio G. Pereira. The introduction, methods, results, and
discussion (IMRAD) structure: a fifty-year survey. Journal of the Medical Library
Association, 2004.
[31] Andreas Stolt. On Robotic Assembly using Contact Force Control and Estimation
Department of Automatic Control. PhD thesis, Lund Institute of Technology, Lund
University, 2015. Figure 2.4, page 23.
[32] Mark W. Spong & Seth Hutchinson & M. Vidyasagar. Robot modeling and control.
John Wiley & Sons, Inc., 2006.
41
56. Appendix
ROS message WrenchStamped
We can get more information about the structure of the WrenchStamped ROS message
using the ROS command ”rosmeg show <ROSmsgtype>”:
1 madlaa@ubuntu : ˜ / catkin ws$ rosmsg show WrenchStamped
2 [ geometry msgs / WrenchStamped ] :
3 std msgs / Header header
4 uint32 seq
5 time stamp
6 s t r i n g frame id
7 geometry msgs / Wrench wrench
8 geometry msgs / Vector3 f o r c e
9 f l o a t 6 4 x
10 f l o a t 6 4 y
11 f l o a t 6 4 z
12 geometry msgs / Vector3 torque
13 f l o a t 6 4 x
14 f l o a t 6 4 y
15 f l o a t 6 4 z
Matlab node
The following code snippet shows a skeleton framework for establishing a Matlab ROS
node, and connecting it to the Gazebo simulation environment.
1 %% I n i t i a l i z e matlab node and connect to ROS master
2 ip matlab node = ’ 129.241.154.109 ’ ;
3 i p u r 5 r o b o t = ’ 192.168.152.130 ’ ;
4 r o s i n i t ( i p u r 5 r o b o t , ’ NodeHost ’ , ip matlab node , ’NodeName ’ , ’ MatlabNode ’
) ;
5
6 %% Get l i s t of a l l models c u r r e n t l y running in gazebo
7 models = getSpawnedModels ( gazebo ) ;
8
9 %Lanch f i l e catkin ws / s r c / u n i v e r s a l r o b o t / ur gazebo / launch / ur5 . launch
spawns UR5 model with name tag ’ robot ’
10 gazebo = ExampleHelperGazeboCommunicator ( ) ;
11 ur5 = ExampleHelperGazeboSpawnedModel ( ’ robot ’ , gazebo ) ;
12 [ ur5Links , u r 5 J o i n t s ] = getComponents ( ur5 ) ;
13
14 %% Generate f o r c e on the UR5s end e f f e c t o r
15 stopTime = 5; % [ Seconds ] , i f n e g a t i v e time the f o r c e a c t s i n d e f i n i t l y
16 f o r c e V e c t o r = [20 −20 −0]; % [ Newtons ] , applyed in world frame
17 torqueVector = [0 0 0 ] ; % [ Newton−meters ] , applyed in world frame
18 applyForce ( ur5 , ur5Links {7} , stopTime , forceVector , torqueVector ) ;
19
20 %rosshutdown ;
The launch file used to spawns the UR5 model automatically generates a name tag to
the Gazebo model, in this case ’robot’.
43