| 
    MRPT
    2.0.4
    
   | 
 
A class to interface a Rovio robot (manufactured by WowWee).
Supports: Simple motion commands, video streaming.
#include <mrpt/hwdrivers/CRovio.h>
Classes | |
| struct | TEncoders | 
| struct | TOptions | 
| struct | TRovioState | 
Public Types | |
| enum | status {  idle, driving_home, docking, executing_path, recording_path }  | 
Public Member Functions | |
| void | initialize () | 
| Establish Connection with Rovio and log in its system: Important, fill out "options" members BEFORE calling this method.  More... | |
| bool | move (char direction, int speed=5) | 
| move send Rovio the command to move in the specified direcction  More... | |
| bool | rotate (char direction, int speed=5) | 
| rotate send Rovio the command to rotate in the specified direcction 'r'->right, 'l'->left  More... | |
| bool | takeHeadUp () | 
| Head positions.  More... | |
| bool | takeHeadMiddle () | 
| bool | takeHeadDown () | 
| bool | pathRecord () | 
| bool | pathRecordAbort () | 
| bool | pathRecordSave (const std::string &path_name) | 
| bool | pathDelete (const std::string &path_name) | 
| bool | pathGetList (std::string &path_list) | 
| Get list of saved paths.  More... | |
| bool | pathRunForward () | 
| bool | pathRunBackward () | 
| bool | pathRunStop () | 
| bool | pathRunPause () | 
| bool | pathRename (const std::string &old_name, const std::string &new_name) | 
| bool | goHome (bool dock, int speed=5) | 
| goHome(bool dock) drives Rovio in front of charging station if the paremeter dock is set to false, otherwise it also docks  More... | |
| void | loadConfig (const mrpt::config::CConfigFileBase &configSource, const std::string §ion) | 
| Loads the rovio camera calibration parameters (of leave the default ones if not found) (See CGenericSensor), then call to "loadConfig_sensorSpecific".  More... | |
| bool | retrieve_video () | 
| This function launchs a thread with the function "thread_video()" which gets frames into a buffer.  More... | |
| bool | stop_video () | 
| This function stops and joins the thread launched by "retrieve_video()".  More... | |
| bool | getNextImageSync (mrpt::obs::CObservationImage::Ptr &lastImage) | 
| Returns the next frame from Rovio's live video stream, after starting the live streaming with retrieve_video()  More... | |
| bool | captureImageAsync (mrpt::img::CImage &out_img, bool recttified) | 
| Returns a snapshot from Rovio, if rectified is set true, the returned image is rectified with the parameters of intrinsic_matrix and distortion_matrix.  More... | |
| bool | isVideoStreamming () const | 
| Return true if video is streaming correctly.  More... | |
| bool | getRovioState (TRovioState &state) | 
| Returns a TRovioState with internal information of Rovio (State, Navigation Signal Strength, Wifi Signal Strength)  More... | |
| bool | getEncoders (TEncoders &encoders) | 
| Returns a TEncoders with information of Rovio encoders (since last read, it seems Rovio is continuously reading with unknown sample time)  More... | |
| bool | getPosition (mrpt::math::TPose2D &out_pose) | 
| Returns the Rovio's pose.  More... | |
| CRovio () | |
| virtual | ~CRovio () | 
Public Attributes | |
| struct mrpt::hwdrivers::CRovio::TOptions | options | 
| struct mrpt::hwdrivers::CRovio::TEncoders | encoders | 
Private Member Functions | |
| void | thread_video () | 
| This function takes a frame and waits until getLastImage ask for it, and so on.  More... | |
| bool | send_cmd_action (int act, int speed) | 
| bool | path_management (int act) | 
| bool | path_management (int act, const std::string &path_name) | 
| bool | general_command (int act, std::string &response, std::string &errormsg) | 
Private Attributes | |
| std::thread | m_videoThread | 
| bool | m_videothread_must_exit | 
| bool | m_videothread_initialized_done | 
| bool | m_videothread_initialized_error | 
| bool | m_videothread_finished | 
| mrpt::obs::CObservationImage::Ptr | buffer_img | 
| std::mutex | buffer_img_cs | 
      
  | 
  default | 
      
  | 
  virtual | 
Definition at line 509 of file CRovio.cpp.
References isVideoStreamming(), and stop_video().
| bool CRovio::captureImageAsync | ( | mrpt::img::CImage & | out_img, | 
| bool | recttified | ||
| ) | 
Returns a snapshot from Rovio, if rectified is set true, the returned image is rectified with the parameters of intrinsic_matrix and distortion_matrix.
This function works asynchronously and does not need to have enabled the live video streaming.
Definition at line 344 of file CRovio.cpp.
References mrpt::hwdrivers::CRovio::TOptions::cameraParams, mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, mrpt::img::CImage::loadFromStreamAsJPEG(), options, mrpt::hwdrivers::CRovio::TOptions::password, mrpt::img::CImage::undistort(), and mrpt::hwdrivers::CRovio::TOptions::user.
      
  | 
  private | 
Definition at line 106 of file CRovio.cpp.
References mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, options, mrpt::hwdrivers::CRovio::TOptions::password, and mrpt::hwdrivers::CRovio::TOptions::user.
Referenced by getEncoders(), getPosition(), getRovioState(), and pathGetList().
| bool CRovio::getEncoders | ( | TEncoders & | encoders | ) | 
Returns a TEncoders with information of Rovio encoders (since last read, it seems Rovio is continuously reading with unknown sample time)
Definition at line 403 of file CRovio.cpp.
References convertToLong(), encoders, mrpt::obs::gnss::error, general_command(), mrpt::hwdrivers::CRovio::TEncoders::left, and mrpt::system::os::strcpy().
| bool CRovio::getNextImageSync | ( | mrpt::obs::CObservationImage::Ptr & | lastImage | ) | 
Returns the next frame from Rovio's live video stream, after starting the live streaming with retrieve_video()
Definition at line 325 of file CRovio.cpp.
References buffer_img, buffer_img_cs, and isVideoStreamming().
| bool CRovio::getPosition | ( | mrpt::math::TPose2D & | out_pose | ) | 
Returns the Rovio's pose.
Definition at line 471 of file CRovio.cpp.
References general_command(), mrpt::math::TPose2D::phi, mrpt::system::os::strcpy(), mrpt::math::TPose2D::x, and mrpt::math::TPose2D::y.
| bool CRovio::getRovioState | ( | TRovioState & | state | ) | 
Returns a TRovioState with internal information of Rovio (State, Navigation Signal Strength, Wifi Signal Strength)
Definition at line 369 of file CRovio.cpp.
References mrpt::obs::gnss::error, general_command(), mrpt::system::os::strcpy(), and mrpt::math::TPose2D::x.
| bool CRovio::goHome | ( | bool | dock, | 
| int | speed = 5  | 
        ||
| ) | 
goHome(bool dock) drives Rovio in front of charging station if the paremeter dock is set to false, otherwise it also docks
Definition at line 191 of file CRovio.cpp.
References send_cmd_action().
| void CRovio::initialize | ( | ) | 
Establish Connection with Rovio and log in its system: Important, fill out "options" members BEFORE calling this method.
| std::runtime | On errors | 
Definition at line 51 of file CRovio.cpp.
References mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, options, mrpt::hwdrivers::CRovio::TOptions::password, THROW_EXCEPTION_FMT, and mrpt::hwdrivers::CRovio::TOptions::user.
| bool CRovio::isVideoStreamming | ( | ) | const | 
Return true if video is streaming correctly.
Definition at line 307 of file CRovio.cpp.
References m_videoThread, and m_videothread_finished.
Referenced by getNextImageSync(), stop_video(), and ~CRovio().
| void CRovio::loadConfig | ( | const mrpt::config::CConfigFileBase & | configSource, | 
| const std::string & | section | ||
| ) | 
Loads the rovio camera calibration parameters (of leave the default ones if not found) (See CGenericSensor), then call to "loadConfig_sensorSpecific".
| This | method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value. | 
Definition at line 202 of file CRovio.cpp.
References mrpt::hwdrivers::CRovio::TOptions::cameraParams, mrpt::img::TCamera::loadFromConfigFile(), and options.
| bool CRovio::move | ( | char | direction, | 
| int | speed = 5  | 
        ||
| ) | 
move send Rovio the command to move in the specified direcction
| direction | 'f'->forward, 'b'->backward, 'r'->right, 'l'->left | 
Definition at line 118 of file CRovio.cpp.
References send_cmd_action().
      
  | 
  private | 
Definition at line 82 of file CRovio.cpp.
References mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, options, mrpt::hwdrivers::CRovio::TOptions::password, and mrpt::hwdrivers::CRovio::TOptions::user.
Referenced by pathDelete(), pathRecord(), pathRecordAbort(), pathRecordSave(), pathRunBackward(), pathRunForward(), pathRunPause(), and pathRunStop().
      
  | 
  private | 
Definition at line 92 of file CRovio.cpp.
References mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, options, mrpt::hwdrivers::CRovio::TOptions::password, and mrpt::hwdrivers::CRovio::TOptions::user.
| bool CRovio::pathDelete | ( | const std::string & | path_name | ) | 
Definition at line 164 of file CRovio.cpp.
References path_management().
| bool CRovio::pathGetList | ( | std::string & | path_list | ) | 
Get list of saved paths.
Definition at line 168 of file CRovio.cpp.
References mrpt::obs::gnss::error, and general_command().
| bool CRovio::pathRecord | ( | ) | 
Definition at line 158 of file CRovio.cpp.
References path_management().
| bool CRovio::pathRecordAbort | ( | ) | 
Definition at line 159 of file CRovio.cpp.
References path_management().
| bool CRovio::pathRecordSave | ( | const std::string & | path_name | ) | 
Definition at line 160 of file CRovio.cpp.
References path_management().
| bool CRovio::pathRename | ( | const std::string & | old_name, | 
| const std::string & | new_name | ||
| ) | 
Definition at line 178 of file CRovio.cpp.
References mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, options, mrpt::hwdrivers::CRovio::TOptions::password, and mrpt::hwdrivers::CRovio::TOptions::user.
| bool CRovio::pathRunBackward | ( | ) | 
Definition at line 175 of file CRovio.cpp.
References path_management().
| bool CRovio::pathRunForward | ( | ) | 
Definition at line 174 of file CRovio.cpp.
References path_management().
| bool CRovio::pathRunPause | ( | ) | 
Definition at line 177 of file CRovio.cpp.
References path_management().
| bool CRovio::pathRunStop | ( | ) | 
Definition at line 176 of file CRovio.cpp.
References path_management().
| bool CRovio::retrieve_video | ( | ) | 
This function launchs a thread with the function "thread_video()" which gets frames into a buffer.
After calling this method, images can be obtained with getNextImageSync()
Definition at line 278 of file CRovio.cpp.
References m_videoThread, m_videothread_finished, m_videothread_initialized_done, m_videothread_initialized_error, m_videothread_must_exit, and thread_video().
| bool CRovio::rotate | ( | char | direction, | 
| int | speed = 5  | 
        ||
| ) | 
rotate send Rovio the command to rotate in the specified direcction 'r'->right, 'l'->left
Definition at line 136 of file CRovio.cpp.
References send_cmd_action().
      
  | 
  private | 
Definition at line 69 of file CRovio.cpp.
References mrpt::format(), mrpt::comms::net::http_get(), mrpt::hwdrivers::CRovio::TOptions::IP, options, mrpt::hwdrivers::CRovio::TOptions::password, and mrpt::hwdrivers::CRovio::TOptions::user.
Referenced by goHome(), move(), rotate(), takeHeadDown(), takeHeadMiddle(), and takeHeadUp().
| bool CRovio::stop_video | ( | ) | 
This function stops and joins the thread launched by "retrieve_video()".
Definition at line 312 of file CRovio.cpp.
References isVideoStreamming(), m_videoThread, and m_videothread_must_exit.
Referenced by ~CRovio().
| bool CRovio::takeHeadDown | ( | ) | 
Definition at line 154 of file CRovio.cpp.
References send_cmd_action().
| bool CRovio::takeHeadMiddle | ( | ) | 
Definition at line 153 of file CRovio.cpp.
References send_cmd_action().
| bool CRovio::takeHeadUp | ( | ) | 
Head positions.
Definition at line 152 of file CRovio.cpp.
References send_cmd_action().
      
  | 
  private | 
This function takes a frame and waits until getLastImage ask for it, and so on.
Definition at line 213 of file CRovio.cpp.
References buffer_img, buffer_img_cs, mrpt::hwdrivers::CRovio::TOptions::cameraParams, mrpt::hwdrivers::CFFMPEG_InputStream::close(), mrpt::format(), mrpt::hwdrivers::CRovio::TOptions::IP, m_videothread_finished, m_videothread_initialized_done, m_videothread_initialized_error, m_videothread_must_exit, mrpt::hwdrivers::CFFMPEG_InputStream::openURL(), options, and mrpt::hwdrivers::CFFMPEG_InputStream::retrieveFrame().
Referenced by retrieve_video().
      
  | 
  private | 
Definition at line 34 of file CRovio.h.
Referenced by getNextImageSync(), and thread_video().
      
  | 
  private | 
Definition at line 35 of file CRovio.h.
Referenced by getNextImageSync(), and thread_video().
| struct mrpt::hwdrivers::CRovio::TEncoders mrpt::hwdrivers::CRovio::encoders | 
Referenced by getEncoders().
      
  | 
  private | 
Definition at line 28 of file CRovio.h.
Referenced by isVideoStreamming(), retrieve_video(), and stop_video().
      
  | 
  private | 
Definition at line 32 of file CRovio.h.
Referenced by isVideoStreamming(), retrieve_video(), and thread_video().
      
  | 
  private | 
Definition at line 30 of file CRovio.h.
Referenced by retrieve_video(), and thread_video().
      
  | 
  private | 
Definition at line 31 of file CRovio.h.
Referenced by retrieve_video(), and thread_video().
      
  | 
  private | 
Definition at line 29 of file CRovio.h.
Referenced by retrieve_video(), stop_video(), and thread_video().
| struct mrpt::hwdrivers::CRovio::TOptions mrpt::hwdrivers::CRovio::options | 
Referenced by captureImageAsync(), general_command(), initialize(), loadConfig(), path_management(), pathRename(), send_cmd_action(), and thread_video().
| Page generated by Doxygen 1.8.14 for MRPT 2.0.4 Git: 33de1d0ad Sat Jun 20 11:02:42 2020 +0200 at sáb jun 20 17:35:17 CEST 2020 |