-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathmainpage.dox
45 lines (36 loc) · 2.79 KB
/
mainpage.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
\mainpage
\htmlinclude manifest.html
\b roomba_500_series contains two nodes for interfacing a Roomba 500 series robot with ROS, however it is possible to use the iRobot OI library to do your own nodes to customize the data exchange between ROS and the Roomba. The iRobot OI library is based on the \link http://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf Open Interface Specifications \endlink document released by iRobot
\section codeapi iRobot OI Code API
- \link irobot::OpenInterface iRobot OpenIterface (C++) \endlink
\section interaction Roomba Interaction
Currently the iRobot OI library allows for almost all the Roomba interactions provided by the Open Interface, from which one can probably point out the following:
Odometry:
- \link irobot::OpenInterface::odometry_x_ Odometry x \endlink
- \link irobot::OpenInterface::odometry_y_ Odometry y \endlink
- \link irobot::OpenInterface::odometry_yaw_ Odometry theta \endlink
- After aquiring encoder data the \link irobot::OpenInterface::calculateOdometry() calculateOdometry \endlink function should be called
Sensor data:
- \link irobot::OpenInterface::cliff_ Cliff state \endlink
- \link irobot::OpenInterface::bumper_ Bumper state \endlink
- \link irobot::OpenInterface::ir_bumper_ IR bumper state \endlink
- \link irobot::OpenInterface::wheel_drop_ Wheel drop state \endlink
- \link irobot::OpenInterface::cliff_signal_ Cliff signal \endlink
- \link irobot::OpenInterface::bumper_signal_ Bumper signal \endlink
- \link irobot::OpenInterface::ir_bumper_signal_ IR bumper signal \endlink
- \link irobot::OpenInterface::ir_char_ IR character received \endlink
- \link irobot::OpenInterface::buttons_ Buttons \endlink
Actuate on the Roomba:
- \link irobot::OpenInterface::drive() Settings Roomba speeds\endlink
- \link irobot::OpenInterface::setSong() Settings songs \endlink
- \link irobot::OpenInterface::playSong() Playing songs \endlink
- \link irobot::OpenInterface::setLeds() Settings songs \endlink
The following functions will cause the OI mode to change, locking out the user from the robot, thus lossing control over the Roomba:
- \link irobot::OpenInterface::clean() Enter cleaning mode \endlink (same as pressing the clean button on the Roomba during normal operation)
- \link irobot::OpenInterface::max() Enter max cleaning mode \endlink
- \link irobot::OpenInterface::spot() Enter spot cleaning mode \endlink (same as pressing the spot button on the Roomba during normal operation)
- \link irobot::OpenInterface::goDock() Go to the base station \endlink (same as pressing the dock button on the Roomba during normal operation)
\section interaction Go Dock
An ROS service was added to the roomba_500_series package to allow for the Roomba to dock without leaving the OI mode required to maintain control. More on this on the wiki page.
*/