Difference between revisions of "HamsterAPICPP"
Line 18: | Line 18: | ||
* base_address: | * base_address: | ||
* The network base address to work with | * The network base address to work with | ||
− | + | - 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 | |
* port - The port to connect on | * port - The port to connect on | ||
|- | |- |
Revision as of 18:45, 27 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 Retrieves the global pose of the hamster. The global pose is associated with the SLAM part of the hamster. Buffer Size - 1.
Return values Global Pose Possible Errors (HamsterError) -Empty Buffer. -Connection Issue.
Method Name IMU getIMU()const
Method Description Retrieves the IMU information from the hamster if an IMU exists. Buffer Size - 1.
Return values
IMU
Possible Errors (HamsterError) -Empty Buffer. -Connection Issue.
Method Name
GPS getGPS()const
Method Description Retrieves the GPS information from the hamster is a GPS exists. Buffer Size - 1.
Return values GPS
Possible Errors (HamsterError) -Empty Buffer. -Connection Issue.
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) -Empty Buffer. -Connection Issue.
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) -Empty Buffer. -Connection Issue.
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) -Empty Buffer. -Connection Issue.
Method Name
HamsterMode getHamsterMode()const
Method Description Retrieves the current mode of the hamster. The available modes are: - Localization. - Mapping. Buffer Size - 1.
Return values HamsterMode
Possible Errors (HamsterError) -Empty Buffer. -Connection Issue.
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) -Empty Buffer. -Connection Issue.
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) -Empty Buffer. -Connection Issue.
Method Name
BatteryState getBatteryState()const
Method Description Retrieves the current battery state of the hamster. Buffer Size - 1.
Return values BatteryState
Possible Errors (HamsterError) -Empty Buffer. -Connection Issue.
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) -Empty Buffer. -Connection Issue.
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: - Offline. - In Progress. - Reached Goal. - Failure. Buffer Size - 1.
Return values NavigationState
Possible Errors (HamsterError) - Empty Buffer. - Connection Issue.
Method Name
void sendSpeed(float velocity, float wheels_angle)
Method Description Sends a speed request to the hamster. 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.
Return values
Possible Errors (HamsterError)
- Connection Issue.
- Running Goal.
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
Method Name void switchMode(const HamsterMode & mode)
Method Description Switches hamster mode to one of the following: - Mapping. - Localization.
Return values Possible Errors (HamsterError) - Connection Issue.
Method Name
void navigateTo(const Goal & goal) Method Description Navigates to a given goal. The goal can be either local goal or global goal.
Return values Possible Errors (HamsterError) - Connection Issue.
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) - Connection Issue.
Method Name 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.
Method Name
void stopNavigation()
Method Description Stops the navigation if there is an active goal.
Return values Possible Errors (HamsterError) - Connection Issue.
Method Name
AgentID getAgentID()const
Method Description
Getter for the current Agent ID.
Return values AgentID
Possible Errors (HamsterError)
Method Name
float getLidarResolution()const
Method Description
Getter for the lidar resolution
Return values float
Possible Errors (HamsterError)
Method Name
bool isConnected()const
Method Description 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 bool
Possible Errors (HamsterError)
Method Name
void cleanBuffers()
Method Description Cleans all the buffers for all the messages (this includes the text messages).
Return values Possible Errors (HamsterError)
Method Name
● -void sendDataMessage(const AgentID & target_agent_id, const std::string & message)
● -void sendDataMessage(const DataMessage & message); 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: - hasDataMessages(). - getLatestDataMessage(). - getLatestDataMessages(Amount) - getDataMessagesAmount(). - clearDataMessagesBuffer(). - setDataMessageBufferSize(Amount). - getDataMessageBufferSize(). - sendDataMessage(Agent, DataMessage). -sendBroadcastDataMessage(DataMessage).
Return values Possible Errors (HamsterError) - Connection Issue.
Method Name
-void sendBroadcastDataMessage(const DataMessage & message)
-void sendBroadcastDataMessage(const std::string & message);
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:
- hasDataMessages().
- getLatestDataMessage().
- getLatestDataMessages(Amount).
- getDataMessagesAmount().
- clearDataMessagesBuffer().
- setDataMessageBufferSize(Amount).
- getDataMessageBufferSize().
- sendDataMessage(Agent, DataMessage).
sendBroadcastDataMessage(DataMessage)
Return values Possible Errors (HamsterError) - Connection Issue.
Method Name DataMessage getLatestDataMessage()const
std::vector<DataMessage> getLatestDataMessages(uint32_t amount)const
DataMessage popLatestDataMessage()
std::vector<DataMessage> popLatestDataMessages(uint32_t amount)
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:
- hasDataMessages().
- getLatestDataMessage().
- getLatestDataMessages(Amount).
- getDataMessagesAmount().
- clearDataMessagesBuffer().
- setDataMessageBufferSize(Amount).
- getDataMessageBufferSize().
- sendDataMessage(Agent, DataMessage).
- sendBroadcastDataMessage(DataMessage).
Buffer Size - Determined by setDataMessageBufferSize, Defaults to 1000.
Return values DataMessage, std::vector<DataMessage>
Possible Errors (HamsterError) -Empty Buffer. -Connection Issue.
Method Name bool hasDataMessages()const Method Description 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 bool Possible Errors
Method Name uint32_t getDataMessagesAmount()const
Method Description 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 uint32_t
Possible Errors (HamsterError)
Method Name
void clearDataMessagesBuffer()
Method Description Cleans the data message buffer completely. 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)
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: - hasDataMessages(). - getLatestDataMessage(). - getLatestDataMessages(Amount). - getDataMessagesAmount(). - clearDataMessagesBuffer(). - setDataMessageBufferSize(Amount). - getDataMessageBufferSize(). - sendDataMessage(Agent, DataMessage). - sendBroadcastDataMessage(DataMessage)
Return values
Possible Errors (HamsterError)
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:
- hasDataMessages().
- getLatestDataMessage().
- getLatestDataMessages(Amount).
- getDataMessagesAmount().
- clearDataMessagesBuffer().
- setDataMessageBufferSize(Amount).
- getDataMessageBufferSize().
- sendDataMessage(Agent, DataMessage). - sendBroadcastDataMessage(DataMessage)
Return values
uint32_t
Possible Errors (HamsterError)
Method Name
void reconnect()
Method Description Tries to reconnect to the server.
Return values Possible Errors (HamsterError) - Connection Issue.
Method Name void disconnect()
Method Description Disconnects from the server. Return values Possible Errors (HamsterError)