Viam C++ SDK current
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Friends | List of all members
viam::sdk::Base Class Referenceabstract

A Base is the platform that the other parts of a mobile robot attach to. More...

#include "components/base.hpp"

+ Inheritance diagram for viam::sdk::Base:

Classes

struct  properties
 Information about the physical base. More...
 

Public Member Functions

void move_straight (int64_t distance_mm, double mm_per_sec)
 Move a robot's base in a straight line by a given distance. This method blocks until completed or cancelled.
 
virtual void move_straight (int64_t distance_mm, double mm_per_sec, const ProtoStruct &extra)=0
 Move a robot's base in a straight line by a given distance. This method blocks until completed or cancelled.
 
void spin (double angle_deg, double degs_per_sec)
 Spins a robot's base by an given angle, expressed in degrees. This method blocks until completed or cancelled.
 
virtual void spin (double angle_deg, double degs_per_sec, const ProtoStruct &extra)=0
 Spins a robot's base by an given angle, expressed in degrees. This method blocks until completed or cancelled.
 
void set_power (const Vector3 &linear, const Vector3 &angular)
 Sets the linear and angular power of a base -1 -> 1 in terms of power for each direction.
 
virtual void set_power (const Vector3 &linear, const Vector3 &angular, const ProtoStruct &extra)=0
 Sets the linear and angular power of a base -1 -> 1 in terms of power for each direction.
 
void set_velocity (const Vector3 &linear, const Vector3 &angular)
 Set the linear and angular velocity of a base.
 
virtual void set_velocity (const Vector3 &linear, const Vector3 &angular, const ProtoStruct &extra)=0
 Set the linear and angular velocity of a base.
 
virtual bool is_moving ()=0
 Reports if the base is in motion.
 
properties get_properties ()
 Returns physical properties of the base (width, turning radius, wheel circumference)
 
virtual properties get_properties (const ProtoStruct &extra)=0
 Returns physical properties of the base (width, turning radius, wheel circumference)
 
virtual ProtoStruct do_command (const ProtoStruct &command)=0
 Send/receive arbitrary commands to the resource.
 
std::vector< GeometryConfigget_geometries ()
 Returns GeometryConfigs associated with the calling base.
 
virtual std::vector< GeometryConfigget_geometries (const ProtoStruct &extra)=0
 Returns GeometryConfigs associated with the calling base.
 
API api () const override
 Returns the API associated with a particular resource.
 
- Public Member Functions inherited from viam::sdk::Component
Name get_resource_name () const override
 Returns the Name for a particular resource.
 
- Public Member Functions inherited from viam::sdk::Resource
 Resource (std::string name)
 
virtual std::string name () const
 Return the resource's name.
 
- Public Member Functions inherited from viam::sdk::Stoppable
virtual void stop (const ProtoStruct &extra)=0
 Stops a resource from running.
 
void stop ()
 Stops a resource from running.
 

Protected Member Functions

 Base (std::string name)
 
- Protected Member Functions inherited from viam::sdk::Component
 Component (std::string name)
 
- Protected Member Functions inherited from viam::sdk::Resource
Name get_resource_name (const std::string &type) const
 

Friends

std::ostream & operator<< (std::ostream &os, const properties &v)
 
bool operator== (const properties &lhs, const properties &rhs)
 

Additional Inherited Members

- Static Public Member Functions inherited from viam::sdk::Stoppable
static void stop_if_stoppable (const std::shared_ptr< Resource > &resource, const ProtoStruct &extra)
 Stops a Resource if it is Stoppable.
 
static void stop_if_stoppable (const std::shared_ptr< Resource > &resource)
 Stops a Resource if it is Stoppable.
 

Detailed Description

A Base is the platform that the other parts of a mobile robot attach to.

This acts as an abstract parent class to be inherited from by any drivers representing specific base implementations. This class cannot be used on its own.

Member Function Documentation

◆ api()

API viam::sdk::Base::api ( ) const
overridevirtual

Returns the API associated with a particular resource.

Implements viam::sdk::Resource.

◆ do_command()

virtual ProtoStruct viam::sdk::Base::do_command ( const ProtoStruct & command)
pure virtual

Send/receive arbitrary commands to the resource.

Parameters
Commandthe command to execute.
Returns
The result of the executed command.

Implemented in MyBase, and viam::sdk::impl::BaseClient.

◆ get_geometries() [1/2]

std::vector< GeometryConfig > viam::sdk::Base::get_geometries ( )
inline

Returns GeometryConfigs associated with the calling base.

Returns
The requested GeometryConfigs associated with the component.

◆ get_geometries() [2/2]

virtual std::vector< GeometryConfig > viam::sdk::Base::get_geometries ( const ProtoStruct & extra)
pure virtual

Returns GeometryConfigs associated with the calling base.

Parameters
extraAny additional arguments to the method.
Returns
The requested GeometryConfigs associated with the component.

Implemented in MyBase, viam::sdk::impl::BaseClient, and viam::sdk::impl::BaseClient.

◆ get_properties()

virtual properties viam::sdk::Base::get_properties ( const ProtoStruct & extra)
pure virtual

Returns physical properties of the base (width, turning radius, wheel circumference)

Parameters
extraAny additional arguments to the method

Implemented in MyBase, viam::sdk::impl::BaseClient, and viam::sdk::impl::BaseClient.

◆ is_moving()

virtual bool viam::sdk::Base::is_moving ( )
pure virtual

Reports if the base is in motion.

Implemented in MyBase, and viam::sdk::impl::BaseClient.

◆ move_straight() [1/2]

void viam::sdk::Base::move_straight ( int64_t distance_mm,
double mm_per_sec )
inline

Move a robot's base in a straight line by a given distance. This method blocks until completed or cancelled.

Parameters
distance_mmDesired travel distance in millimeters
mm_per_secDesired travel velocity in millimeters/second

◆ move_straight() [2/2]

virtual void viam::sdk::Base::move_straight ( int64_t distance_mm,
double mm_per_sec,
const ProtoStruct & extra )
pure virtual

Move a robot's base in a straight line by a given distance. This method blocks until completed or cancelled.

Parameters
distance_mmDesired travel distance in millimeters
mm_per_secDesired travel velocity in millimeters/second
extraAny additional arguments to the method

Implemented in MyBase, viam::sdk::impl::BaseClient, and viam::sdk::impl::BaseClient.

◆ set_power() [1/2]

void viam::sdk::Base::set_power ( const Vector3 & linear,
const Vector3 & angular )
inline

Sets the linear and angular power of a base -1 -> 1 in terms of power for each direction.

Parameters
linearDesired linear power percentage (-1 <= % <= 1) for each direction
angularDesired angular power percentage (-1 <= % <= 1) for each direction

◆ set_power() [2/2]

virtual void viam::sdk::Base::set_power ( const Vector3 & linear,
const Vector3 & angular,
const ProtoStruct & extra )
pure virtual

Sets the linear and angular power of a base -1 -> 1 in terms of power for each direction.

Parameters
linearDesired linear power percentage (-1 <= % <= 1) for each direction
angularDesired angular power percentage (-1 <= % <= 1) for each direction
extraAny additional arguments to the method

Implemented in MyBase, viam::sdk::impl::BaseClient, and viam::sdk::impl::BaseClient.

◆ set_velocity() [1/2]

void viam::sdk::Base::set_velocity ( const Vector3 & linear,
const Vector3 & angular )
inline

Set the linear and angular velocity of a base.

Parameters
linearDesired linear velocity in mm per second for each direction
angularDesired angular velocity in degrees per second for each direction

◆ set_velocity() [2/2]

virtual void viam::sdk::Base::set_velocity ( const Vector3 & linear,
const Vector3 & angular,
const ProtoStruct & extra )
pure virtual

Set the linear and angular velocity of a base.

Parameters
linearDesired linear velocity in mm per second for each direction
angularDesired angular velocity in degrees per second for each direction
extraAny additional arguments to the method

Implemented in MyBase, viam::sdk::impl::BaseClient, and viam::sdk::impl::BaseClient.

◆ spin() [1/2]

void viam::sdk::Base::spin ( double angle_deg,
double degs_per_sec )
inline

Spins a robot's base by an given angle, expressed in degrees. This method blocks until completed or cancelled.

Parameters
angle_degDesired angle
degs_per_secDesired angular velocity

◆ spin() [2/2]

virtual void viam::sdk::Base::spin ( double angle_deg,
double degs_per_sec,
const ProtoStruct & extra )
pure virtual

Spins a robot's base by an given angle, expressed in degrees. This method blocks until completed or cancelled.

Parameters
angle_degDesired angle
degs_per_secDesired angular velocity
extraAny additional arguments to the method

Implemented in MyBase, viam::sdk::impl::BaseClient, and viam::sdk::impl::BaseClient.


The documentation for this class was generated from the following file: