803 research outputs found
A Non-blocking Buddy System for Scalable Memory Allocation on Multi-core Machines
Common implementations of core memory allocation components handle concurrent allocation/release requests by synchronizing threads via spin-locks. This approach is not prone to scale with large thread counts, a problem that has been addressed in the literature by introducing layered allocation services or replicating the core allocators - the bottom most ones within the layered architecture. Both these solutions tend to reduce the pressure of actual concurrent accesses to each individual core allocator. In this article we explore an alternative approach to scalability of memory allocation/release, which can be still combined with those literature proposals. We present a fully non-blocking buddy-system, that allows threads to proceed in parallel, and commit their allocations/releases unless a conflict is materialized while handling its metadata. Beyond improving scalability and performance it is resilient to performance degradation in face of concurrent accesses independently of the current level of fragmentation of the handled memory blocks
Performance Analysis of Low-Cost Tracking System for Mobile Robots
This paper proposes a reliable and straightforward approach to mobile robots (or moving objects in general) indoor tracking, in order to perform a preliminary study on their dynamics. The main features of this approach are its minimal and low-cost setup and a user-friendly interpretation of the data generated by the ArUco library. By using a commonly available camera, such as a smartphone one or a webcam, and at least one marker for each object that has to be tracked, it is possible to estimate the pose of these markers, with respect to a reference conveniently placed in the environment, in order to produce results that are easily interpretable by a user. This paper presents a simple extension to the ArUco library to generate such user-friendly data, and it provides a performance analysis of this application with static and moving objects, using a smartphone camera to highlight the most notable feature of this solution, but also its limitations
NBBS: A Non-blocking Buddy System for Multi-core Machines
Common implementations of core memory allocation components, like the Linux buddy system, handle concurrent allocation/release requests by synchronizing threads via spinlocks. This approach is not prone to scale with large thread counts, a problem that has been addressed in the literature by introducing layered allocation services or replicating the core allocators—the bottom most ones within the layered architecture. Both these solutions tend to reduce the pressure of actual concurrent accesses to each individual core allocator. In this article we explore an alternative approach to scalability of memory allocation/release, which can be still combined with those literature proposals. We present a fully non-blocking buddy-system, where threads performing concurrent allocations/releases do not undergo any spinlock based synchronization. Our solution allows threads to proceed in parallel, and commit their allocations/releases unless a conflict is materialized while handling its metadata. Conflict detection relies on conventional atomic machine instructions in the Read-Modify-Write (RMW) class. Beyond improving scalability and performance, our solution can also avoid wasting clock cycles for spin-lock operations by threads that could in principle carry out their memory allocation/release in full concurrency. Thus, it is resilient to performance degradation—in face of concurrent accesses—independently of the current level of fragmentation of the handled memory blocks
Multiobjective optimization of a cable-driven robot for wrist rehabilitation using a genetic algorithm
This paper presents a multi-objective optimization using a genetic algorithm to reduce the size of the current configuration of a cable-driven end-effector robot for wrist rehabilitation. The objective of this work is to obtain a smaller robot with good performance by employing a constrained genetic algorithm (GA) so the device can be light and wearable. The optimization was performed to study the effect of the robot dimensions and in the end, a new solution that can reduce the robot size by 35% and increase the performance by 1.8% was found
Mechanism and Machine Science Educational Workshop Based on Schröder-Reuleaux Ancient Models of Politecnico di Torino
Around the world, there are many collections of models of mechanisms and machine components of historical value. Among these, there is an important collection kept at the Politecnico di Torino, Department of Mechanical and Aerospace Engineering-DIMEAS. It consists of about 85 Reuleaux models manufactured by the Schröder company of Darmstadt in the second half of the 19th century. It includes linkages, gears, cam-follower systems, belt drives, couplings and clutches whose history is reconstructed. Some models are still used effectively today in teaching the science of mechanisms and machine. The paper presents both the important historical collection and the didactic methodology adopted in the course “Mechanics of Automatic Machines” in which students practice the developing of virtual models of some selected mechanisms
Rehabilitation Machine for Bariatric Individuals
Obesity is known to be growing worldwide. The World Health Organization (WHO) reports that obesity has tripled since 1975. In 2016, 39% of adults over 18 years old were overweight, and 13% were obese. Obesity is mostly preventable by adopting lifestyle improvements, enhancing diet quality, and doing physical exercise. The workload of the physical exercises should be proportionate to the patient’s capabilities. However, it must be considered that obese people are not used to training; they may not endure physical exertion and, even more critically, they could have some psychological impediments to the workouts. Physical exercises and equipment must, therefore, guarantee comfort and prevent situations in which the bariatric individual may feel inadequate. For these reasons, this study aims to design an innovative system to approach simple physical activities, like leg and arm exercises, to bariatric users to enable them to recover mobility and muscle tone gradually. The leading feature of this architecture is the design of hidden exercise mechanisms to overcome the psychological barriers of the users toward these kinds of machines. This paper proposes the initial design of the main sub-systems composing the rehabilitation machine, namely the leg curl and leg extension mechanism and its control architecture, the upper body exercises system, and a series of regulation mechanisms required to accommodate a wide range of users. The proposed functional design will then lead to the development of a prototype to validate the machine
Decoupled motion planning of a mobile manipulator for precision agriculture
Thanks to recent developments in service robotics technologies, precision agriculture (PA) is becoming an increasingly prominent research field, and several studies were made to present and outline how the use of mobile robotic systems can help and improve farm production. In this paper, the integration of a custom-designed mobile base with a commercial robotic arm is presented, showing the functionality and features of the overall system for crop monitoring and sampling. To this aim, the motion planning problem is addressed, developing a tailored algorithm based on the so-called manipulability index, that treats the base and robotic arm mobility as two independent degrees of motion; also developing an open source closed-form inverse kinematics algorithm for the kinematically redundant manipulator. The presented methods and sub-system, even though strictly related to a specific mobile manipulator system, can be adapted not only to PA applications where a mobile manipulator is involved but also to the wider field of assistive robotics
A Non-blocking Buddy System for Scalable Memory Allocation on Multi-core Machines
Common implementations of core memory allocation components, like the Linux
buddy system, handle concurrent allocation/release requests by synchronizing
threads via spin-locks. This approach is clearly not prone to scale with large
thread counts, a problem that has been addressed in the literature by
introducing layered allocation services or replicating the core allocators-the
bottom most ones within the layered architecture. Both these solutions tend to
reduce the pressure of actual concurrent accesses to each individual core
allocator. In this article we explore an alternative approach to scalability of
memory allocation/release, which can be still combined with those literature
proposals. Conflict detection relies on conventional atomic machine
instructions in the Read-Modify-Write (RMW) class. Furthermore, beyond
improving scalability and performance, it can also avoid wasting clock cycles
for spin-lock operations by threads that could in principle carry out their
memory allocation/release in full concurrency. Thus, it is resilient to
performance degradation---in face of concurrent accesses---independently of the
current level of fragmentation of the handled memory blocks
- …