8 research outputs found
The icub software architecture: evolution and lessons learned
The complexity of humanoid robots is increasing with the availability of new sensors, embedded CPUs and actuators. This wealth of technologies allows researchers to investigate new problems like whole-body force control, multi-modal human-robot interaction and sensory fusion. Under the hood of these robots, the software architecture has an important role: it allows researchers to get access to the robot functionalities focusing primarily on their research problems, it supports code reuse to minimize development and debugging, especially when new hardware becomes available. But more importantly it allows increasing the complexity of the experiments that can be implemented before system integration becomes unmanageable and debugging draws more resources than research itself. In this paper we illustrate the software architecture of the iCub humanoid robot and the software engineering best practices that have emerged driven by the needs of our research community. We describe the latest developments at the level of the middleware supporting interface definition and automatic code generation, logging, ROS compatibility and channel prioritization. We show the robot abstraction layer and how it has been modified to better address the requirements of the users and to support new hardware as it became available. We also describe the testing framework we have recently adopted for developing code using a test driven methodology. We conclude the paper discussing the lessons we have learned during the past eleven years of software development on the iCub humanoid robot
The design and validation of the R1 personal humanoid
In recent years the robotics field has witnessed an interesting new trend. Several companies started the production of service robots whose aim is to cooperate with humans. The robots developed so far are either rather expensive or unsuitable for manipulation tasks. This article presents the result of a project which wishes to demonstrate the feasibility of an affordable humanoid robot. R1 is able to navigate, and interact with the environment (grasping and carrying objects, operating switches, opening doors etc). The robot is also equipped with a speaker, microphones and it mounts a display in the head to support interaction using natural channels like speech or (simulated) eye movements. The final cost of the robot is expected to range around that of a family car, possibly, when produced in large quantities, even significantly lower. This goal was tackled along three synergistic directions: use of polymeric materials, light-weight design and implementation of novel actuation solutions. These lines, as well as the robot with its main features, are described hereafter
Nifti2Dicom v0.4.1
<p>Nifti2Dicom (2012-01-13) 0.4.1</p>
<ul>
<li>Use full path for Qt includes</li>
<li>Add some documentation and fix Copyright</li>
<li>Remove dist target</li>
<li>Always build GUI</li>
<li>Cleanup CMake stuff</li>
</ul
Nifti2Dicom v0.4.8
<p>Nifti2Dicom (2014-06-02) 0.4.8</p>
<ul>
<li>Fix build with VTK 6</li>
<li>Fix Keywords entry in .desktop file</li>
<li>Cleanup and split nifti2dicom</li>
</ul
Nifti2Dicom v0.4.9
<p>Nifti2Dicom (2014-10-24) 0.4.9</p>
<ul>
<li>Update vtkKWImage from ITKApps repository</li>
<li>Fix issues with VTK version >=6</li>
<li>Add FindTCLAP.cmake file to be able to use it w/o pkg-config</li>
<li>Fix empty statement</li>
<li>Use "cmake -E copy" instead of "cp"</li>
<li>Do not add manpages target if gzip is not available</li>
<li>Use a vector instead of variable length arrays</li>
<li>Add icon to qnifti2dicom on windows</li>
<li>Link qnifti2dicom with qtmain and build as WIN32 and MACOSX_BUNDLE</li>
<li>Use FindQt4 imported targets if available</li>
<li>Build with Qt4 definitions and disable MSVC warnings</li>
<li>Fix adding -DDEBUG on multi-config generators</li>
<li>Do not set position of the windows</li>
<li>Bugfixes and improvements in the image widget in the init phase</li>
<li>Use Nifti2Dicom instead of QNifti2Dicom as displayed string in GUI</li>
<li>Packaging for Windows</li>
<li>Fix build with Qt 5</li>
</ul
Nifti2Dicom v0.4.4
<p>Nifti2Dicom (2012-07-29) 0.4.4</p>
<ul>
<li>Added 64x64 icon</li>
<li>Added MetaImage, Nrrd and VTK to filter</li>
<li>Fix QNifti2Dicom not executing --help and --version when DISPLAY is not set</li>
</ul
Nifti2Dicom v0.4.10
<p>Nifti2Dicom (2015-08-27) 0.4.10</p>
<ul>
<li>Add AppData application description</li>
</ul
Nifti2Dicom v0.4.3
<p>Nifti2Dicom (2012-06-28) 0.4.3</p>
<ul>
<li>Filtering files when opening NIfTi/DICOM (Issue #14)</li>
<li>Fix warnings on .desktop file reported by lintian</li>
<li>Fix build on Mac OS</li>
<li>Fix "Crash if nifti image opened is not a nifti image" (Issue #12)</li>
<li>Fix "Crash if DICOM opened is not a DICOM" (Issue #13)</li>
<li>Improve information about the opened volume (Issue #7)</li>
<li>Create and install manpages</li>
<li>Cleanup (translate comments into English and remove old GDCM 1 stuff</li>
<li>Added progress bar in the finalizing page (Issue #17)</li>
<li>Improved information about opened volume (Issue #7)</li>
</ul