Difference between revisions of "HamsterAPICPP"
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:HamsterAPI]] | [[Category:HamsterAPI]] | ||
− | HamsterAPI Class Documentation | + | === HamsterAPI Class Documentation === |
Hamster class File Description | Hamster class File Description | ||
Line 9: | Line 9: | ||
+ | == Constructor: Hamster(const AgentID & agent_id, HamsterClientParameters params = HamsterClientParameters()) == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! Constructor: Hamster(const AgentID & agent_id, HamsterClientParameters params = HamsterClientParameters()) | + | !Method Name !! Constructor: Hamster(const AgentID & agent_id, HamsterClientParameters params = HamsterClientParameters()) |
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 26: | Line 27: | ||
|} | |} | ||
− | + | == Image getCameraImage() const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 42: | Line 43: | ||
|} | |} | ||
+ | == Pose getPose()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 59: | Line 61: | ||
|} | |} | ||
− | + | == IMU getIMU()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 75: | Line 77: | ||
|} | |} | ||
+ | == GPS getGPS()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 90: | Line 93: | ||
|} | |} | ||
+ | == LidarScan getLidarScan()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 106: | Line 110: | ||
|} | |} | ||
− | + | == ColoredScan getColoredScan()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
ColoredScan getColoredScan()const | ColoredScan getColoredScan()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 117: | Line 120: | ||
It contains the raw lidar scan and the associated pixels RGB color of the image. | It contains the raw lidar scan and the associated pixels RGB color of the image. | ||
Buffer Size - 1 | Buffer Size - 1 | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
ColoredScan | ColoredScan | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 131: | Line 132: | ||
− | + | == Speed getSpeed()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! Speed getSpeed()const | !Method Name !! Speed getSpeed()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 141: | Line 141: | ||
The is usually the speed given by the latest speed command or from the wandering / navigation. | The is usually the speed given by the latest speed command or from the wandering / navigation. | ||
Buffer Size - 1. | Buffer Size - 1. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
Speed | Speed | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 153: | Line 151: | ||
− | + | == HamsterMode getHamsterMode()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
HamsterMode getHamsterMode()const | HamsterMode getHamsterMode()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 178: | Line 175: | ||
− | + | == OccupancyGrid getSLAMMap()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
OccupancyGrid getSLAMMap()const | OccupancyGrid getSLAMMap()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Retrieves the current SLAM map that was loaded or created by the hamster as an occupancy grid. | Retrieves the current SLAM map that was loaded or created by the hamster as an occupancy grid. | ||
Buffer Size - 1. | Buffer Size - 1. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
OccupancyGrid | OccupancyGrid | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 200: | Line 194: | ||
− | + | == HamsterConnections getConnectedHamsters()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
HamsterConnections getConnectedHamsters()const | HamsterConnections getConnectedHamsters()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 213: | Line 206: | ||
If the current hamster got an heartbeat from all the others, there will be 3 connections on the list. | If the current hamster got an heartbeat from all the others, there will be 3 connections on the list. | ||
Buffer Size - 1. | Buffer Size - 1. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
HamsterConnections | HamsterConnections | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 226: | Line 217: | ||
− | + | == BatteryState getBatteryState()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
BatteryState getBatteryState()const | BatteryState getBatteryState()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
− | |||
Retrieves the current battery state of the hamster. | Retrieves the current battery state of the hamster. | ||
Buffer Size - 1. | Buffer Size - 1. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
BatteryState | BatteryState | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 250: | Line 237: | ||
− | + | == NetworkState getNetworkState()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
NetworkState getNetworkState()const | NetworkState getNetworkState()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Retrieves the current network state of the hamster with the network. | Retrieves the current network state of the hamster with the network. | ||
Buffer Size - 1. | Buffer Size - 1. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
NetworkState | NetworkState | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 274: | Line 258: | ||
− | + | == NavigationState getNavigationState()const == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
NavigationState getNavigationState()const | NavigationState getNavigationState()const | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 288: | Line 271: | ||
* Failure. | * Failure. | ||
Buffer Size - 1. | Buffer Size - 1. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
NavigationState | NavigationState | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 300: | Line 281: | ||
− | + | == void sendSpeed(float velocity, float wheels_angle)== | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
void sendSpeed(float velocity, float wheels_angle) | void sendSpeed(float velocity, float wheels_angle) | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 311: | Line 291: | ||
* If there is an active goal, the speed request will be ignored and an HamsterError will be thrown. | * If there is an active goal, the speed request will be ignored and an HamsterError will be thrown. | ||
* This method is based on ackermann speed. | * This method is based on ackermann speed. | ||
− | |||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 324: | Line 301: | ||
− | + | == void sendOccupancyGrid(const OccupancyGrid & grid) == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
void sendOccupancyGrid(const OccupancyGrid & grid) | void sendOccupancyGrid(const OccupancyGrid & grid) | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Sends an Occupancy Grid to the server to be published. | Sends an Occupancy Grid to the server to be published. | ||
Can be viewed via RViz. | Can be viewed via RViz. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
|- | |- | ||
− | | Possible Errors (HamsterError) | + | | Possible Errors (HamsterError) || |
− | + | * Connection issue | |
− | + | |} | |
− | |||
+ | == void switchMode(const HamsterMode & mode) == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
void switchMode(const HamsterMode & mode) | void switchMode(const HamsterMode & mode) | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Line 355: | Line 329: | ||
* Mapping. | * Mapping. | ||
* Localization. | * Localization. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
Line 363: | Line 336: | ||
|} | |} | ||
− | + | == void navigateTo(const Goal & goal) == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! void navigateTo(const Goal & goal) | + | !Method Name !! void navigateTo(const Goal & goal) |
|- | |- | ||
| Method Description || | | Method Description || | ||
* Navigates to a given goal. | * Navigates to a given goal. | ||
* The goal can be either local goal or global goal. | * The goal can be either local goal or global goal. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
− | |||
|- | |- | ||
| Possible Errors (HamsterError) || | | Possible Errors (HamsterError) || | ||
Line 381: | Line 352: | ||
− | + | == void navigateTo(float distance, float angle) == | |
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! void navigateTo(float distance, float angle) | !Method Name !! void navigateTo(float distance, float angle) | ||
− | |||
|- | |- | ||
| Method Description || | | Method Description || | ||
Navigates to a given distance and angle. This is simillar to giving a local goal with distance and angle calculated to X and Y. | Navigates to a given distance and angle. This is simillar to giving a local goal with distance and angle calculated to X and Y. | ||
− | |||
|- | |- | ||
| Return values || | | Return values || | ||
Line 399: | Line 366: | ||
|} | |} | ||
− | + | == void setInitialPose(const Pose & pose) == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
void setInitialPose(const Pose & pose) | void setInitialPose(const Pose & pose) | ||
− | |||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
* Sets the initial position of the agent on the global map. | * Sets the initial position of the agent on the global map. | ||
* This is useful for a starting 0,0 position for mapping or if an agent needs to reposition to a starting position. | * This is useful for a starting 0,0 position for mapping or if an agent needs to reposition to a starting position. | ||
− | |||
|- | |- | ||
|Return values || | |Return values || | ||
Line 418: | Line 382: | ||
|} | |} | ||
+ | |||
+ | == void stopNavigation() == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 431: | Line 397: | ||
− | + | == AgentID getAgentID()const == | |
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name | + | !Method Name !! AgentID getAgentID()const |
|- | |- | ||
| Method Description || Getter for the current Agent ID. | | Method Description || Getter for the current Agent ID. | ||
|- | |- | ||
| Return values || AgentID | | Return values || AgentID | ||
− | |||
|- | |- | ||
|Possible Errors || (HamsterError) | |Possible Errors || (HamsterError) | ||
|} | |} | ||
+ | |||
+ | == float getLidarResolution()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 453: | Line 418: | ||
|Method Description | |Method Description | ||
Getter for the lidar resolution | Getter for the lidar resolution | ||
− | |||
|- | |- | ||
|Return values || float | |Return values || float | ||
− | |||
|- | |- | ||
− | |Possible Errors | + | |Possible Errors (HamsterError) || |
|} | |} | ||
+ | |||
+ | == bool isConnected()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name | + | !Method Name !! bool isConnected()const |
− | bool isConnected()const | ||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
* Checks whether the client is still connected to the server. | * Checks whether the client is still connected to the server. | ||
* A connection problem can arise from heartbeat failure or from FIN from the server side. | * A connection problem can arise from heartbeat failure or from FIN from the server side. | ||
− | |||
|- | |- | ||
|Return values || | |Return values || | ||
bool | bool | ||
− | |||
|- | |- | ||
− | |Possible Errors | + | |Possible Errors (HamsterError) || |
|} | |} | ||
− | + | == void cleanBuffers() == | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name | + | !Method Name !! void cleanBuffers() |
− | void cleanBuffers() | ||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
* Cleans all the buffers for all the messages (this includes the text messages). | * Cleans all the buffers for all the messages (this includes the text messages). | ||
− | |||
|- | |- | ||
|Return values || | |Return values || | ||
− | |||
|- | |- | ||
− | |Possible Errors | + | |Possible Errors (HamsterError) || |
|} | |} | ||
+ | |||
+ | == sendDataMessage == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! | + | ! Method Name !! |
* void sendDataMessage(const AgentID & target_agent_id, const std::string & message) | * void sendDataMessage(const AgentID & target_agent_id, const std::string & message) | ||
− | * void sendDataMessage(const DataMessage & message) | + | * void sendDataMessage(const DataMessage & message) |
|- | |- | ||
− | |Method Description | + | |Method Description || |
Sends a data message to another hamster. This will be published on the network with the current agent id and the target agent id. If the target is in the network, it will receive it. The following API can be used for messages: | Sends a data message to another hamster. This will be published on the network with the current agent id and the target agent id. If the target is in the network, it will receive it. The following API can be used for messages: | ||
* hasDataMessages(). | * hasDataMessages(). | ||
Line 512: | Line 471: | ||
* setDataMessageBufferSize(Amount). | * setDataMessageBufferSize(Amount). | ||
* getDataMessageBufferSize(). | * getDataMessageBufferSize(). | ||
− | * sendDataMessage(Agent, DataMessage). | + | * sendDataMessage(Agent, DataMessage). |
− | + | * sendBroadcastDataMessage(DataMessage). | |
|- | |- | ||
|Return values || | |Return values || | ||
|- | |- | ||
− | |Possible Errors | + | |Possible Errors (HamsterError) || |
* Connection Issue. | * Connection Issue. | ||
− | | | + | |} |
+ | |||
+ | |||
+ | == sendBroadcastDataMessage == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
* void sendBroadcastDataMessage(const DataMessage & message) | * void sendBroadcastDataMessage(const DataMessage & message) | ||
− | * void sendBroadcastDataMessage(const std::string & message) | + | * void sendBroadcastDataMessage(const std::string & message) |
− | |||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
Line 539: | Line 499: | ||
* sendDataMessage(Agent, DataMessage). | * sendDataMessage(Agent, DataMessage). | ||
* sendBroadcastDataMessage(DataMessage) | * sendBroadcastDataMessage(DataMessage) | ||
− | |||
|- | |- | ||
|Return values || | |Return values || | ||
|- | |- | ||
− | |Possible Errors | + | |Possible Errors (HamsterError) || |
* Connection Issue. | * Connection Issue. | ||
|} | |} | ||
+ | == DataMessage getLatestDataMessage() == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
− | * DataMessage getLatestDataMessage()const std::vector<DataMessage> getLatestDataMessages(uint32_t amount)const | + | * DataMessage getLatestDataMessage() const std::vector<DataMessage> getLatestDataMessages(uint32_t amount)const |
* DataMessage popLatestDataMessage() std::vector<DataMessage> popLatestDataMessages(uint32_t amount) | * DataMessage popLatestDataMessage() std::vector<DataMessage> popLatestDataMessages(uint32_t amount) | ||
− | |||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
Line 568: | Line 526: | ||
* sendBroadcastDataMessage(DataMessage). | * sendBroadcastDataMessage(DataMessage). | ||
Buffer Size - Determined by setDataMessageBufferSize, Defaults to 1000. | Buffer Size - Determined by setDataMessageBufferSize, Defaults to 1000. | ||
− | |||
|- | |- | ||
|Return values || | |Return values || | ||
DataMessage, std::vector<DataMessage> | DataMessage, std::vector<DataMessage> | ||
− | |||
|- | |- | ||
− | |Possible Errors | + | |Possible Errors (HamsterError) || |
* Empty Buffer. | * Empty Buffer. | ||
* Connection Issue. | * Connection Issue. | ||
Line 580: | Line 536: | ||
+ | == bool hasDataMessages()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
bool hasDataMessages()const | bool hasDataMessages()const | ||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
Checks whether there are any messages. The following API can be used for messages: | Checks whether there are any messages. The following API can be used for messages: | ||
− | + | * hasDataMessages(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount). | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, DataMessage). | |
− | + | * sendBroadcastDataMessage(DataMessage). | |
|- | |- | ||
|Return values || | |Return values || | ||
Line 604: | Line 560: | ||
|} | |} | ||
+ | |||
+ | == uint32_t getDataMessagesAmount()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
uint32_t getDataMessagesAmount()const | uint32_t getDataMessagesAmount()const | ||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
Getter for the amount of data messages. The following API can be used for messages: | Getter for the amount of data messages. The following API can be used for messages: | ||
− | + | * hasDataMessages(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount). | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, DataMessage). | |
− | + | * sendBroadcastDataMessage(DataMessage)* | |
|- | |- | ||
|Return values || | |Return values || | ||
uint32_t | uint32_t | ||
− | |||
|- | |- | ||
|Possible Errors (HamsterError) || | |Possible Errors (HamsterError) || | ||
+ | |} | ||
+ | == void clearDataMessagesBuffer() == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
void clearDataMessagesBuffer() | void clearDataMessagesBuffer() | ||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
Line 645: | Line 602: | ||
* setDataMessageBufferSize(Amount). | * setDataMessageBufferSize(Amount). | ||
* getDataMessageBufferSize(). | * getDataMessageBufferSize(). | ||
− | * sendDataMessage(Agent, DataMessage). | + | * sendDataMessage(Agent, DataMessage). |
− | + | * sendBroadcastDataMessage(DataMessage) | |
|- | |- | ||
|Return values || | |Return values || | ||
− | Possible Errors (HamsterError) || | + | |- |
+ | |Possible Errors (HamsterError) || | ||
|} | |} | ||
− | |||
− | |||
+ | == void setDataMessageBufferSize(uint32_t amount) == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! | + | !Method Name !! |
− | |||
void setDataMessageBufferSize(uint32_t amount) | void setDataMessageBufferSize(uint32_t amount) | ||
− | |||
|- | |- | ||
− | |Method Description || | + | |Method Description || |
− | |||
Setter for the size of the data message buffer. | Setter for the size of the data message buffer. | ||
The following API can be used for messages: | The following API can be used for messages: | ||
Line 673: | Line 627: | ||
* setDataMessageBufferSize(Amount). | * setDataMessageBufferSize(Amount). | ||
* getDataMessageBufferSize(). | * getDataMessageBufferSize(). | ||
− | * sendDataMessage(Agent, DataMessage). | + | * sendDataMessage(Agent, DataMessage). |
− | + | * sendBroadcastDataMessage(DataMessage) | |
|- | |- | ||
|Return values || | |Return values || | ||
− | |||
|- | |- | ||
|Possible Errors (HamsterError) || | |Possible Errors (HamsterError) || | ||
Line 683: | Line 636: | ||
+ | == uint32_t getDataMessageBufferSize()const == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 698: | Line 652: | ||
* setDataMessageBufferSize(Amount). | * setDataMessageBufferSize(Amount). | ||
* getDataMessageBufferSize(). | * getDataMessageBufferSize(). | ||
− | * sendDataMessage(Agent, DataMessage). | + | * sendDataMessage(Agent, DataMessage). |
+ | * sendBroadcastDataMessage(DataMessage) | ||
|- | |- | ||
|Return values || | |Return values || | ||
uint32_t | uint32_t | ||
− | |||
|- | |- | ||
|Possible Errors (HamsterError) || | |Possible Errors (HamsterError) || | ||
Line 708: | Line 662: | ||
− | + | == void reconnect() == | |
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
void reconnect() | void reconnect() | ||
− | |||
|- | |- | ||
|Method Description || | |Method Description || | ||
Tries to reconnect to the server. | Tries to reconnect to the server. | ||
− | |||
|- | |- | ||
|Return values || | |Return values || | ||
− | |||
|- | |- | ||
|Possible Errors (HamsterError) || | |Possible Errors (HamsterError) || | ||
Line 729: | Line 678: | ||
+ | == void disconnect() == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 740: | Line 690: | ||
|Possible Errors (HamsterError) || | |Possible Errors (HamsterError) || | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 10:33, 28 February 2017
Contents
- 1 HamsterAPI Class Documentation
- 2 Constructor: Hamster(const AgentID & agent_id, HamsterClientParameters params = HamsterClientParameters())
- 3 Image getCameraImage() const
- 4 Pose getPose()const
- 5 IMU getIMU()const
- 6 GPS getGPS()const
- 7 LidarScan getLidarScan()const
- 8 ColoredScan getColoredScan()const
- 9 Speed getSpeed()const
- 10 HamsterMode getHamsterMode()const
- 11 OccupancyGrid getSLAMMap()const
- 12 HamsterConnections getConnectedHamsters()const
- 13 BatteryState getBatteryState()const
- 14 NetworkState getNetworkState()const
- 15 NavigationState getNavigationState()const
- 16 void sendSpeed(float velocity, float wheels_angle)
- 17 void sendOccupancyGrid(const OccupancyGrid & grid)
- 18 void switchMode(const HamsterMode & mode)
- 19 void navigateTo(const Goal & goal)
- 20 void navigateTo(float distance, float angle)
- 21 void setInitialPose(const Pose & pose)
- 22 void stopNavigation()
- 23 AgentID getAgentID()const
- 24 float getLidarResolution()const
- 25 bool isConnected()const
- 26 void cleanBuffers()
- 27 sendDataMessage
- 28 sendBroadcastDataMessage
- 29 DataMessage getLatestDataMessage()
- 30 bool hasDataMessages()const
- 31 uint32_t getDataMessagesAmount()const
- 32 void clearDataMessagesBuffer()
- 33 void setDataMessageBufferSize(uint32_t amount)
- 34 uint32_t getDataMessageBufferSize()const
- 35 void reconnect()
- 36 void disconnect()
HamsterAPI Class Documentation
Hamster class File Description All methods below belong to the namespace HamsterAPI:: and are a part of the Hamster class HamsterAPIClientCPP/Hamster.h The hamster class is the main interface to the Hamster robot.
Constructor: Hamster(const AgentID & agent_id, HamsterClientParameters params = HamsterClientParameters())
Method Name | Constructor: Hamster(const AgentID & agent_id, HamsterClientParameters params = HamsterClientParameters()) |
---|---|
Method Description |
The client parameters contain the following:
- if the address is 127.0.0 then the connection will always go to loopback - Otherwise it will go to base_adress.agent_id - For example : base_address = 10.0.2 agent_id = 1 so it will connect to 10.0.2.1:port
|
Return values | Possible Errors (HamsterError) |
Image getCameraImage() const
Method Name | Image getCameraImage() const |
---|---|
Method Description |
|
Return values | Image |
Possible Errors (HamsterError) |
|
Pose getPose()const
Method Name | Pose getPose()const |
---|---|
Method Description |
|
Return values |
|
Possible Errors (HamsterError) |
|
IMU getIMU()const
Method Name | IMU getIMU()const |
---|---|
Method Description |
|
Return values | IMU |
Possible Errors (HamsterError) |
|
GPS getGPS()const
Method Name | GPS getGPS()const |
---|---|
Method Description |
|
Return values | GPS |
Possible Errors (HamsterError) |
|
LidarScan getLidarScan()const
Method Name | LidarScan getLidarScan()const |
---|---|
Method Description |
Retrieves the 360 degree lidar scan from the hamster. Buffer Size - 1. |
Return values |
LidarScan |
Possible Errors (HamsterError) |
|
ColoredScan getColoredScan()const
Method Name |
ColoredScan getColoredScan()const |
---|---|
Method Description |
Retrieves a ColoredScan. ColoredScan is a combination of the hamster lidar and camera synchronized. It contains the raw lidar scan and the associated pixels RGB color of the image. Buffer Size - 1 |
Return values |
ColoredScan |
Possible Errors (HamsterError) |
|
Speed getSpeed()const
Method Name | Speed getSpeed()const |
---|---|
Method Description |
Retrieves the current speed of the hamster. The is usually the speed given by the latest speed command or from the wandering / navigation. Buffer Size - 1. |
Return values |
Speed |
Possible Errors (HamsterError) |
|
HamsterMode getHamsterMode()const
Method Name |
HamsterMode getHamsterMode()const |
---|---|
Method Description |
Retrieves the current mode of the hamster. The available modes are:
Buffer Size - 1. |
Return values |
HamsterMode |
Possible Errors (HamsterError) |
|
OccupancyGrid getSLAMMap()const
Method Name |
OccupancyGrid getSLAMMap()const |
---|---|
Method Description |
Retrieves the current SLAM map that was loaded or created by the hamster as an occupancy grid. Buffer Size - 1. |
Return values |
OccupancyGrid |
Possible Errors (HamsterError) |
|
HamsterConnections getConnectedHamsters()const
Method Name |
HamsterConnections getConnectedHamsters()const |
---|---|
Method Description |
Retrieves the currently living hamsters on the network. Meaning that for example there are 3 hamsters on the same network {agent1, agent2, agent3}. If the current hamster got an heartbeat from all the others, there will be 3 connections on the list. Buffer Size - 1. |
Return values |
HamsterConnections |
Possible Errors (HamsterError) |
|
BatteryState getBatteryState()const
Method Name |
BatteryState getBatteryState()const |
---|---|
Method Description |
Retrieves the current battery state of the hamster. Buffer Size - 1. |
Return values |
BatteryState |
Possible Errors (HamsterError) |
|
NetworkState getNetworkState()const
Method Name |
NetworkState getNetworkState()const |
---|---|
Method Description |
Retrieves the current network state of the hamster with the network. Buffer Size - 1. |
Return values |
NetworkState |
Possible Errors (HamsterError) |
|
Method Name |
NavigationState getNavigationState()const |
---|---|
Method Description |
Retrieves the navigation state of the hamster. The navigation state depends whether there was a goal request or not. There are four types of states:
Buffer Size - 1. |
Return values |
NavigationState |
Possible Errors (HamsterError) |
|
void sendSpeed(float velocity, float wheels_angle)
Method Name |
void sendSpeed(float velocity, float wheels_angle) |
---|---|
Method Description |
* This method is based on ackermann speed. |
Return values | |
Possible Errors (HamsterError) |
|
void sendOccupancyGrid(const OccupancyGrid & grid)
Method Name |
void sendOccupancyGrid(const OccupancyGrid & grid) |
---|---|
Method Description |
Sends an Occupancy Grid to the server to be published. Can be viewed via RViz. |
Return values | |
Possible Errors (HamsterError) |
|
void switchMode(const HamsterMode & mode)
Method Name |
void switchMode(const HamsterMode & mode) |
---|---|
Method Description |
Switches hamster mode to one of the following:
|
Return values | |
Possible Errors (HamsterError) |
|
Method Name | void navigateTo(const Goal & goal) |
---|---|
Method Description |
|
Return values | |
Possible Errors (HamsterError) |
|
Method Name | void navigateTo(float distance, float angle) |
---|---|
Method Description |
Navigates to a given distance and angle. This is simillar to giving a local goal with distance and angle calculated to X and Y. |
Return values | |
Possible Errors (HamsterError) |
|
void setInitialPose(const Pose & pose)
Method Name |
void setInitialPose(const Pose & pose) |
---|---|
Method Description |
|
Return values | |
Possible Errors (HamsterError) |
|
Method Name | void stopNavigation() |
---|---|
Method Description | Stops the navigation if there is an active goal. |
Return values | |
Possible Errors (HamsterError) |
|
AgentID getAgentID()const
Method Name | AgentID getAgentID()const |
---|---|
Method Description | Getter for the current Agent ID. |
Return values | AgentID |
Possible Errors | (HamsterError) |
float getLidarResolution()const
Method Name |
float getLidarResolution()const |
---|---|
Method Description
Getter for the lidar resolution | |
Return values | float |
Possible Errors (HamsterError) |
bool isConnected()const
Method Name | bool isConnected()const |
---|---|
Method Description |
|
Return values |
bool |
Possible Errors (HamsterError) |
void cleanBuffers()
Method Name | void cleanBuffers() |
---|---|
Method Description |
|
Return values | |
Possible Errors (HamsterError) |
sendDataMessage
Method Name |
|
---|---|
Method Description |
Sends a data message to another hamster. This will be published on the network with the current agent id and the target agent id. If the target is in the network, it will receive it. The following API can be used for messages:
|
Return values | |
Possible Errors (HamsterError) |
|
sendBroadcastDataMessage
Method Name |
|
---|---|
Method Description |
Sends a data message to all the hamsters on the network. Every hamster that see's the message will pick it up. The following API can be used for messages:
|
Return values | |
Possible Errors (HamsterError) |
|
DataMessage getLatestDataMessage()
Method Name |
|
---|---|
Method Description |
Gets/Pops the data messages that were received from the other agents. Will try to get the max possible messages untill the given amount. The following API can be used for messages:
Buffer Size - Determined by setDataMessageBufferSize, Defaults to 1000. |
Return values |
DataMessage, std::vector<DataMessage> |
Possible Errors (HamsterError) |
|
bool hasDataMessages()const
Method Name |
bool hasDataMessages()const |
---|---|
Method Description |
Checks whether there are any messages. The following API can be used for messages:
|
Return values |
bool |
Possible Errors |
uint32_t getDataMessagesAmount()const
Method Name |
uint32_t getDataMessagesAmount()const |
---|---|
Method Description |
Getter for the amount of data messages. The following API can be used for messages:
|
Return values |
uint32_t |
Possible Errors (HamsterError) |
void clearDataMessagesBuffer()
Method Name |
void clearDataMessagesBuffer() |
---|---|
Method Description |
Cleans the data message buffer completely. The following API can be used for messages:
|
Return values | |
Possible Errors (HamsterError) |
void setDataMessageBufferSize(uint32_t amount)
Method Name |
void setDataMessageBufferSize(uint32_t amount) |
---|---|
Method Description |
Setter for the size of the data message buffer. The following API can be used for messages:
|
Return values | |
Possible Errors (HamsterError) |
uint32_t getDataMessageBufferSize()const
Method Name |
uint32_t getDataMessageBufferSize()const |
---|---|
Method Description |
Getter for the size of the data message buffer.The following API can be used for messages:
|
Return values |
uint32_t |
Possible Errors (HamsterError) |
void reconnect()
Method Name |
void reconnect() |
---|---|
Method Description |
Tries to reconnect to the server. |
Return values | |
Possible Errors (HamsterError) |
|
void disconnect()
Method Name | void disconnect() |
---|---|
Method Description | Disconnects from the server. |
Return values | |
Possible Errors (HamsterError) |