Giter Club home page Giter Club logo

nao_dcm's Introduction

#nao_dcm

##ROS Stack for Aldebaran's Nao Humanoid

  • Goal is to connect to the machine of Nao and not the API provided by Aldebaran.
  • ฮ™t makes use only of the DCM and Memory Proxies.
  • Supports V4.0 robots (H21 and H25 Body Types).
  • Written purely in C++ and uses the C++ SDK (1.14.5).

Version

0.0.1 (Beta)

Requirements

nao_dcm requires several packages to be installed in order to work properly:

Basic Usage

###Bringup nao_dcm driver (remotely)

roslaunch nao_dcm_bringup nao_dcm_{BodyType}_remote.launch

{BodyType} is either H21 or H25.

This will connect to Nao Robot, start the cameras and open up a simple dashboard for monitoring and basic control over Nao.

###MoveIt Demo

roslaunch nao_dcm_moveit_config moveit_planner_{BodyType}.launch

{BodyType} is either H21 or H25.

This requires that you have connected to the Robot/Simulation via nao_dcm driver and will open up rviz with the Navigation plugin configured to give Nao trajectories to execute.

###Webots Simulation

Launch your Webots for Nao Simulator and then follow the instructions above to bringup nao_dcm driver (remotely). On some versions of Webots, it is required that you move the head before you get camera feedback. Also, changing the camera resolution via dynamic reconfigure will not have any effect as Webots uses fixed resolution.

###Gazebo Simulation

roslaunch nao_dcm_gazebo nao_dcm_gazebo_{BodyType}.launch

{BodyType} is either H21 or H25.

**NOTE: **This is work in progress and may not work very well.

This will launch Gazebo Simulator and trajectory controllers to simulate the real robot. This is somewhat equivalent as bringing up nao_dcm_driver (remotely). Thus, then for example you can use MoveIt Demo to give trajectories to Nao to execute.

Basic Options/Guidelines

###Gazebo arguments/options

All properties are located in the gazebo launch files (in each body type).

  • use_pid - true/false => Choose whether to use pid control in motors or not. Currently, usage without PIDs is highly unstable. Also, PID values REALLY need tuning. So, please contribute to that direction.

###URDF/XACRO properties

All properties are located in robot.xacro file.

  • nao_meshes - true/false => Choose whether to use nao_meshes 3D Objects or not
  • use_helmet - true/false => Choose whether to mount on Nao the Helmet (along with 2 cameras)
  • helmet_cameras_viz - true/false => Choose whether to visualize the cameras on Helmet
  • use_odroid - true/false => Choose whether to mount Odroid Bag on Nao
  • use_hector_imu - true/false => Choose whether to use hector_imu_plugin or the default by Gazebo for IMU simulation

###nao_meshes Integration

Download nao_meshes repo, generate the meshes (it creates .obj for visual and .ply for collisions) and convert them to collada (.dae) in the same folders with Blender or Meshlab (do not change any orientation [visual components are rotated] - export only the parts and not the whole scene). No *_dcm_* is needed for the nao_meshes. For quick results you can always fall-back to boxes and cylinders (simple change to false the xacro property {nao_meshes} at this file). All packages work the same with or without nao_meshes.

Notes/Limitations

  • nao_dcm can be run locally, but you need to have built and installed ROS Hydro on Nao as nao_dcm requires ros_controls packages (available only on >= Hydro). Yet, running nao_dcm driver remotely is identical in performance as running it locally (if the connection is strong and persistent - Wi-Fi usage is not recommended).
  • Tutorials will become available as soon as possible.
  • Integration with nao_meshes for better visual feedback. You can disable it if you want a rough 3D model made of boxes and cylinders. NOTE: You need to convert the .obj and the .ply 3D objects to the collada format (in the same folder).
  • Although my intension is to provide ROS integration to the machine, basic gait and motion planning schemes are on the way for those that want quick results/feedback.
  • Integration for LED, IR and Audio hardware is not available and is not on my agenda. So, feel free to contribute in that direction.
  • This is only ONE part of my Diploma Thesis ("Navigation of Humanoid Robots in Unknown Space With Dynamic Obstacles"), so many parts of the code are not perfect and well-thought. So, PRs for code improvement are welcomed.

Origin of the Name

Since my intention is to use the lowest level of Aldebaran's API possible and its name is DCM, I decided to name the ROS Stack nao_dcm.

License

BSD

Copyright (c) 2014, Konstantinos Chatzilygeroudis

nao_dcm's People

Contributors

costashatz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.