Difference between revisions of "HamsterAPICPP"
Line 64: | Line 64: | ||
! Method Name !! IMU getIMU()const | ! Method Name !! IMU getIMU()const | ||
|- | |- | ||
− | | Method Description | + | | Method Description || |
* Retrieves the IMU information from the hamster if an IMU exists. | * Retrieves the IMU information from the hamster if an IMU exists. | ||
* Buffer Size - 1. | * Buffer Size - 1. | ||
Line 366: | Line 366: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! | + | !Method Name !! void navigateTo(const Goal & goal) || |
− | + | |- | |
− | 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) || | ||
+ | * Connection Issue. | ||
+ | |} | ||
Line 384: | Line 386: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! | + | !Method Name !! void navigateTo(float distance, float angle) |
− | 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 | + | |- |
− | Possible Errors (HamsterError) | + | | Return values || |
− | + | |- | |
+ | | Possible Errors (HamsterError) || | ||
+ | * Connection Issue. | ||
+ | |} | ||
− | + | {| class="wikitable" | |
− | Method Name | + | |- |
+ | !Method Name !! | ||
void setInitialPose(const Pose & pose) | void setInitialPose(const Pose & pose) | ||
− | |||
− | |||
− | |||
− | + | |- | |
− | + | |Method Description || | |
− | + | * 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. | ||
+ | |- | ||
+ | |Return values || | ||
+ | |- | ||
+ | | Possible Errors (HamsterError) || | ||
+ | * Connection Issue. | ||
+ | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name | + | !Method Name !! void stopNavigation() |
− | void stopNavigation() | + | |- |
− | + | | Method Description || Stops the navigation if there is an active goal. | |
− | Method Description | + | |- |
− | Stops the navigation if there is an active goal. | + | |Return values || |
− | + | |- | |
− | Return values | + | | Possible Errors (HamsterError) || |
− | Possible Errors (HamsterError) | + | * Connection Issue. |
− | + | |} | |
− | |||
Line 427: | Line 436: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name !! | + | !Method Name !! AgentID getAgentID()const |
− | AgentID getAgentID()const | + | |- |
− | Method Description | + | | Method Description || Getter for the current Agent ID. |
− | Getter for the current Agent ID. | + | |- |
− | + | | Return values || AgentID | |
− | Return values | ||
− | AgentID | ||
− | |||
− | |||
+ | |- | ||
+ | |Possible Errors || (HamsterError) | ||
+ | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 442: | Line 450: | ||
!Method Name !! | !Method Name !! | ||
float getLidarResolution()const | float getLidarResolution()const | ||
− | Method Description | + | |- |
+ | |Method Description | ||
Getter for the lidar resolution | Getter for the lidar resolution | ||
− | Return values | + | |- |
− | float | + | |Return values || float |
− | |||
− | |||
+ | |- | ||
+ | |Possible Errors || (HamsterError) | ||
+ | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 456: | Line 466: | ||
bool isConnected()const | bool isConnected()const | ||
− | Method Description | + | |- |
− | Checks whether the client is still connected to the server. | + | |Method Description || |
− | A connection problem can arise from heartbeat failure or from FIN from the server side. | + | * 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. | ||
− | Return values | + | |- |
+ | |Return values || | ||
bool | bool | ||
− | Possible Errors (HamsterError) | + | |- |
− | + | |Possible Errors || (HamsterError) | |
+ | |} | ||
Line 473: | Line 486: | ||
void cleanBuffers() | void cleanBuffers() | ||
− | Method Description | + | |- |
− | Cleans all the buffers for all the messages (this includes the text messages). | + | |Method Description || |
+ | * Cleans all the buffers for all the messages (this includes the text messages). | ||
− | Return values | + | |- |
− | + | |Return values || | |
+ | |- | ||
+ | |Possible Errors || (HamsterError) | ||
+ | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
− | + | * void sendDataMessage(const AgentID & target_agent_id, const std::string & 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(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount) | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, DataMessage). -sendBroadcastDataMessage(DataMessage). | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | |- | ||
+ | |Return values || | ||
+ | |- | ||
+ | |Possible Errors || (HamsterError) | ||
+ | * Connection Issue. | ||
+ | | | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
− | + | * void sendBroadcastDataMessage(const DataMessage & message) | |
+ | * void sendBroadcastDataMessage(const std::string & message); | ||
− | |||
− | + | |- | |
− | Method Description | + | |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: | 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: | ||
− | + | * hasDataMessages(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount). | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, DataMessage). | |
− | sendBroadcastDataMessage(DataMessage) | + | * sendBroadcastDataMessage(DataMessage) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | |- | ||
+ | |Return values || | ||
+ | |- | ||
+ | |Possible Errors || (HamsterError) | ||
+ | * Connection Issue. | ||
+ | |} | ||
Line 567: | Line 551: | ||
|- | |- | ||
!Method Name !! | !Method Name !! | ||
− | DataMessage getLatestDataMessage()const | + | * DataMessage getLatestDataMessage()const std::vector<DataMessage> getLatestDataMessages(uint32_t amount)const |
+ | * DataMessage popLatestDataMessage() std::vector<DataMessage> popLatestDataMessages(uint32_t amount) | ||
− | |||
− | + | |- | |
− | + | |Method Description || | |
− | |||
− | |||
− | |||
− | 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: | 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: | ||
− | + | * hasDataMessages(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount). | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, 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 (HamsterError) | + | |- |
− | + | |Possible Errors || (HamsterError) | |
− | + | * Empty Buffer. | |
− | + | * Connection Issue. | |
+ | |} | ||
Line 602: | Line 584: | ||
!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(). | - hasDataMessages(). | ||
Line 613: | Line 597: | ||
- sendDataMessage(Agent, DataMessage). -sendBroadcastDataMessage(DataMessage). | - sendDataMessage(Agent, DataMessage). -sendBroadcastDataMessage(DataMessage). | ||
− | Return values | + | |- |
+ | |Return values || | ||
bool | bool | ||
− | Possible Errors | + | |- |
+ | |Possible Errors || | ||
+ | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 622: | Line 609: | ||
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(). | - hasDataMessages(). | ||
Line 633: | Line 621: | ||
- sendDataMessage(Agent, DataMessage). - sendBroadcastDataMessage(DataMessage) | - sendDataMessage(Agent, DataMessage). - sendBroadcastDataMessage(DataMessage) | ||
− | Return values | + | |- |
+ | |Return values || | ||
uint32_t | uint32_t | ||
− | Possible Errors (HamsterError) | + | |- |
+ | |Possible Errors (HamsterError) || | ||
Line 644: | Line 634: | ||
void clearDataMessagesBuffer() | void clearDataMessagesBuffer() | ||
− | Method Description | + | |- |
+ | |Method Description || | ||
Cleans the data message buffer completely. | Cleans the data message buffer completely. | ||
The following API can be used for 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 | + | |- |
− | Possible Errors (HamsterError) | + | |Return values || |
+ | Possible Errors (HamsterError) || | ||
+ | |} | ||
Line 668: | Line 661: | ||
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: | ||
− | + | * hasDataMessages(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount). | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, DataMessage). - sendBroadcastDataMessage(DataMessage) | |
+ | |- | ||
+ | |Return values || | ||
− | + | |- | |
− | + | |Possible Errors (HamsterError) || | |
− | + | |} | |
− | Possible Errors (HamsterError) | ||
Line 693: | Line 687: | ||
!Method Name !! | !Method Name !! | ||
uint32_t getDataMessageBufferSize()const | uint32_t getDataMessageBufferSize()const | ||
− | Method Description | + | |- |
+ | |Method Description || | ||
Getter for the size of the data message buffer.The following API can be used for | Getter for the size of the data message buffer.The following API can be used for | ||
messages: | messages: | ||
− | + | * hasDataMessages(). | |
− | + | * getLatestDataMessage(). | |
− | + | * getLatestDataMessages(Amount). | |
− | + | * getDataMessagesAmount(). | |
− | + | * clearDataMessagesBuffer(). | |
− | + | * setDataMessageBufferSize(Amount). | |
− | + | * getDataMessageBufferSize(). | |
− | + | * sendDataMessage(Agent, DataMessage). - sendBroadcastDataMessage(DataMessage) | |
+ | |- | ||
+ | |Return values || | ||
+ | uint32_t | ||
− | + | |- | |
− | + | |Possible Errors (HamsterError) || | |
− | + | |} | |
− | Possible Errors (HamsterError) | ||
Line 719: | Line 716: | ||
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) || | ||
+ | * Connection Issue. | ||
+ | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Method Name | + | !Method Name !! void disconnect() |
− | void disconnect() | ||
− | Method Description Disconnects from the server. | + | |- |
− | Return values | + | |Method Description || Disconnects from the server. |
− | Possible Errors (HamsterError) | + | |- |
+ | |Return values || | ||
+ | |- | ||
+ | |Possible Errors (HamsterError) || | ||
+ | |} | ||
Revision as of 10:05, 28 February 2017
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.
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) |
Method Name | Image getCameraImage() const |
---|---|
Method Description |
|
Return values | Image |
Possible Errors (HamsterError) |
|
Method Name | Pose getPose()const |
---|---|
Method Description |
|
Return values |
|
Possible Errors (HamsterError) |
|
Method Name | IMU getIMU()const |
---|---|
Method Description |
|
Return values | IMU |
Possible Errors (HamsterError) |
|
Method Name | GPS getGPS()const |
---|---|
Method Description |
|
Return values | GPS |
Possible Errors (HamsterError) |
|
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) |
|
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) |
|
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) |
|
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) |
|
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) |
|
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) |
|
Method Name |
BatteryState getBatteryState()const |
---|---|
Method Description |
Retrieves the current battery state of the hamster. Buffer Size - 1. |
Return values |
BatteryState |
Possible Errors (HamsterError) |
|
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) |
|
Method Name |
void sendSpeed(float velocity, float wheels_angle) |
---|---|
Method Description |
* This method is based on ackermann speed.
|
Return values | |
Possible Errors (HamsterError) |
|
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)
-Connection issue
|