57 #include "rnr/rnrconfig.h" 59 #include "rnr/units.h" 98 typedef std::vector<sensor::vl6180::LaeVL6180Mux*> VecToFSensors;
225 int move(
double fVelLinear,
double fVelAngular);
361 virtual int getImu(
double accel[],
379 std::string &strRadiationType,
393 virtual int getRange(
const std::string &strKey,
double &fRange);
404 virtual int getRange(std::vector<std::string> &vecNames,
405 std::vector<double> &vecRanges);
415 virtual int getAmbientLight(
const std::string &strKey,
double &fAmbient);
427 std::vector<double> &vecAmbient);
525 void getVersion(
int &nVerMajor,
int &nVerMinor,
int &nRevision);
724 const int nBaudRate);
772 #endif // _LAE_ROBOT_H LaeRobot(bool bNoExec=false)
Default initialization constructor.
int getAsyncJobRc()
Get the last asynchronous job exit return code.
double m_fGovernor
speed limit governor setting
std::map< std::string, double > LaeMapDutyCycle
Duty cycle trajectory type.
int startCoreThreads()
Create and start all real-time persistent core threads.
Laelaps thread base class interface.
bool m_bIsEStopped
robot is [not] emergency stopped
std::string getFullProdBrief()
Get the <b><i>Laelaps</i></b> full brief descirption.
Laelaps kinodynamics thread class interface.
Laelaps tuning data class.
std::string getProdName()
Convenience function to get this <b><i>Laelaps</i></b> description's base product name...
int setAuxPower(const std::string &strName, LaeTriState eState)
Set top deck auxilliary power out enable state.
Trajectory classes interfaces.
Laelaps robotic mobile platform full description class.
int resetEStop()
Reset (clears) emergency stop condition.
LaeThreadImu m_threadImu
IMU thread.
bool isEStopped()
Test if robot is current emergency stopped.
LaeThreadAsync m_threadAsync
asynchronous action thread
int connect()
Connect to <b><i>Laelaps</i></b>.
int connSensors()
Connect to the <b><i>Laelaps</i></b> built-in sensors.
sensor::imu::LaeImuCleanFlight m_imu
inertia measurement unit
virtual int readDigitalPin(uint_t pin, uint_t &val)
Read the value of a digital pin on the watchdog subprocessor.
Laelaps kinematics class.
virtual int getRangeSensorProps(const std::string &strKey, std::string &strRadiationType, double &fFoV, double &fBeamDir, double &fMin, double &fMax)
Get range sensor properties.
LaeRobotMode
<b><i>Laelaps</i></b> mode of operation.
void cancelAsyncJob()
Cancel any asynchronous job.
LaePowertrain * getPowertrain(const std::string &strName)
Get the robotic joint in kinematic chain.
LaeWd m_watchdog
watchdog sub-processor
LaeRobotMode getRobotMode()
Get robot's operational mode.
RoboClaw motor controller class interface.
int startThread(LaeThread *pThread, int nPriority, double fHz)
Create and start a thread at the given priority and hertz.
bool canMove()
Test if robot is safe to operate, given the current robot and alarm state.
Laelaps WatchDog software class interface.
Laelaps PCA9548A I2C multiplexer switch interface.
double setGovernor(double fGovernor)
Set speed limit governor value.
int getRobotStatus(LaeRptRobotStatus &rptBotStatus)
Get the robot current status.
LaeDesc m_descLaelaps
<b><i>Laelaps</i></b> description
bool isDescribed()
Test if robot is fully described via configuration XML.
static const double GovernorDft
speed limit governor start-up default
virtual int configDigitalPin(uint_t pin, uint_t dir)
Configure a digital pin on the the watchdog subprocessor.
LaeThreadKin m_threadKin
kinodynamics thread
LaeDesc & getLaelapsDesc()
Get the <b><i>Laelaps</i></b> product description.
Laelaps I2C class interface.
int configForOperation()
Configure <b><i>Laelaps</i></b> for normal operation.
Simple path feedback class.
virtual int getRange(const std::string &strKey, double &fRange)
Get a range measurement.
LaeTunes m_tunes
tuning parameters
Laelaps Odroid General Purpose I/O class interfaces.
Laelaps Time-of-Flight sensors. The ToFs are used as a virtual bumper for close-in obstacle detection...
int disconnect()
Disconnect from <b><i>Laelaps</i></b>.
int reload()
Reload <b><i>Laelaps</i></b>'s reloadable configuration and reset operational parameters.
int estop()
Emergency stop.
The <b><i>Laelaps</i></b> namespace encapsulates all <b><i>Laelaps</i></b> related constructs...
Interfaces of Laelaps requested and/or published report classes.
Laelaps robotic base mobile platform description class interface.
bool m_bIsConnected
critical hardware [not] connected
double getGovernor()
Get current speed limit governor setting.
int connMotorControllers(const std::string &strDevMotorCtlrs, const int nBaudRate)
Connect to the <b><i>Laelaps</i></b> motor controllers.
LaeAsyncJob::JobState getAsyncJobState()
Get the current asynchronous job state.
void syncDb()
Synchronize real-time database with current robot state.
double incrementGovernor(double fDelta)
Increment/decrement speed limit governor value.
Laelaps common utilities.
sensor::vl6180::LaeRangeSensorGroup m_range
range sensor group.
Laelaps built-in Inertial Measurement Unit class interface.
Simple path feedback class.
std::string getVersionString()
Get the <b><i>Laelaps</i></b> robotic arm hardware version string.
bool isAlarmed()
Test if robot is alarmed.
LaeI2C m_i2cBus
I2C sensor bus.
The Laelaps kinematics and dynamics class interface.
Laelaps powertrain class interfaces.
int freeze()
Freeze robot and accessories at current position.
Asynchronous job base class.
virtual int getImu(double accel[], double gyro[], double rpy[], sensor::imu::Quaternion &q)
Get the last read and converted inertia data.
int getProdId()
Convenience function to get this <b><i>Laelaps</i></b> description's base product id...
LaeThreadRange m_threadRange
ToF range sensors thread.
virtual int getAmbientLight(const std::string &strKey, double &fAmbient)
Get an ambient light illuminance measurement.
int getDynamics(LaeRptDynamics &rptDynamics)
Get the robot full dynamic state.
int getNavigationState(LaeSimplePathFeedback &pathFeedback)
Get simple navigation feedback.
bool m_bNoExec
do [not] execute physical movements
Laelaps built-in Arduino sub-processor.
Laelaps range sensors thread class interface.
virtual ~LaeRobot()
Destructor.
int connWatchDog()
Connect to the watchdog subprocessor.
bool isInMotion()
Test if any joint in any of the kinematic chains is moving.
Laelaps asynchronouse thread class interface.
Laelaps motors, encoder, and controllers hardware abstraction interfaces.
Laelaps watchdog thread class interface.
bool areMotorsPowered()
Test if robot motor are currently being driven (powered).
bool m_bAlarmState
robot is [not] alarmed
int clearAlarms()
Attempt to clear all alarms.
Robot global status report.
int setDutyCycles(const LaeMapDutyCycle &duty)
Set powertrain motor duty cycles.
void setRobotMode(LaeRobotMode eRobotMode)
Set robot's operational mode.
void getVersion(int &nVerMajor, int &nVerMinor, int &nRevision)
Get the <b><i>Laelaps</i></b> hardware version number.
int move(const LaeMapVelocity &velocity)
Move by setting powertrain angular wheel velocities.
Laelaps IMU thread class interface.
LaeKinematics m_kin
robot base dynamics and kinematics
Laelaps supported cameras.
int release()
Release robot and accessories.
LaeAsyncJob * m_pAsyncJob
asynchronous job
std::map< std::string, double > LaeMapVelocity
Velocity trajectory type.
int stop()
Stop robot with full dynamic braking.
virtual int readAnalogPin(uint_t pin, uint_t &val)
Read the value of an analog pin on the watchdog subprocessor.
LaeTriState
<b><i>Laelaps</i></b> tri-state type.
bool isConnected()
Test if connected to <b><i>Laelaps</i></b> hardware.
int runAsyncJob()
Run asynchronous job.
LaeThreadWd m_threadWatchDog
watchdog thread
Laelaps robotic manipulator plus accesories class.
Range sensor group class.
Top-level package include file.
LaeRobotMode m_eRobotMode
robot operating mode
virtual int writeDigitalPin(uint_t pin, uint_t val)
Write a value to a digital pin on the watchdog subprocessor.