semin ahn / Mbed OS zeta_stm_kinetic

Dependencies:   BufferedSerial

Committer:
_seminahn
Date:
Tue Nov 30 08:13:05 2021 +0000
Revision:
3:a4677501ae87
Parent:
2:0de4854743f7
v1.2.5, change imu freq

Who changed what in which revision?

UserRevisionLine numberNew contents of line
_seminahn 0:4ff8aeb3e4d1 1 #ifndef ZETA_STM_KINETIC_INSTANCEHEADER_H_
_seminahn 0:4ff8aeb3e4d1 2 #define ZETA_STM_KINETIC_INSTANCEHEADER_H_
_seminahn 0:4ff8aeb3e4d1 3 #include "mbed.h"
_seminahn 3:a4677501ae87 4 #include "src/rosHeader.hpp"
_seminahn 3:a4677501ae87 5 #include "src/moduleHeader.hpp"
_seminahn 3:a4677501ae87 6 #include "src/callbackHeader.hpp"
_seminahn 0:4ff8aeb3e4d1 7 #include "defineHeader.h"
_seminahn 3:a4677501ae87 8 #include "configurations/robotConfig.h"
_seminahn 0:4ff8aeb3e4d1 9 /* COM variables ------------------------------------------------------------ */
_seminahn 3:a4677501ae87 10 #if (NO_ROS)
_seminahn 0:4ff8aeb3e4d1 11 extern mbed::Serial pc;
_seminahn 3:a4677501ae87 12 #else
_seminahn 0:4ff8aeb3e4d1 13 extern ros::NodeHandle nh;
_seminahn 3:a4677501ae87 14 #endif
_seminahn 0:4ff8aeb3e4d1 15 extern mbed::Serial bt;
_seminahn 0:4ff8aeb3e4d1 16
_seminahn 0:4ff8aeb3e4d1 17 /* ROS variables ------------------------------------------------------------ */
_seminahn 0:4ff8aeb3e4d1 18 // Publisher
_seminahn 3:a4677501ae87 19 //zetabot_main::SonarArray US_msg;
_seminahn 3:a4677501ae87 20 //ros::Publisher US_publisher("sonar", &US_msg);
_seminahn 3:a4677501ae87 21 std_msgs::String version_msg;
_seminahn 3:a4677501ae87 22 ros::Publisher version_publisher("stm_version", &version_msg);
_seminahn 3:a4677501ae87 23
_seminahn 3:a4677501ae87 24 std_msgs::Float32MultiArray US_msg;
_seminahn 3:a4677501ae87 25 ros::Publisher US_publisher("sonar", &US_msg);
_seminahn 3:a4677501ae87 26
_seminahn 3:a4677501ae87 27 std_msgs::String Bluetooth_msg;
_seminahn 3:a4677501ae87 28 ros::Publisher Bluetooth_publisher("autocharge_state_INO", &Bluetooth_msg);
_seminahn 3:a4677501ae87 29
_seminahn 3:a4677501ae87 30 #if (ROBOT_TYPE == MODEL_D)
_seminahn 3:a4677501ae87 31 //std_msgs::UInt8 water_level_msg;
_seminahn 3:a4677501ae87 32 //ros::Publisher water_level_publisher("water_level", &water_level_msg);
_seminahn 3:a4677501ae87 33 std_msgs::Bool water_level_msg;
_seminahn 3:a4677501ae87 34 ros::Publisher water_level_publisher("water_level", &water_level_msg);
_seminahn 3:a4677501ae87 35 #endif
_seminahn 3:a4677501ae87 36
_seminahn 3:a4677501ae87 37 #if (ROBOT_TYPE == MODEL_I)
_seminahn 3:a4677501ae87 38 std_msgs::Bool lidar_dusty_msg;
_seminahn 3:a4677501ae87 39 ros::Publisher LidarDusty_publisher("LidarDusty", &lidar_dusty_msg);
_seminahn 3:a4677501ae87 40
_seminahn 3:a4677501ae87 41 std_msgs::UInt8 emergency_stop_msg;
_seminahn 3:a4677501ae87 42 ros::Publisher EmergencyStop_publisher("EmergencyStop", &emergency_stop_msg);
_seminahn 3:a4677501ae87 43 #endif
_seminahn 3:a4677501ae87 44
_seminahn 0:4ff8aeb3e4d1 45 sensor_msgs::Imu imu_msg;
_seminahn 0:4ff8aeb3e4d1 46 ros::Publisher IMU_publisher("imu", &imu_msg);
_seminahn 0:4ff8aeb3e4d1 47
_seminahn 0:4ff8aeb3e4d1 48 std_msgs::Bool EStop_msg;
_seminahn 0:4ff8aeb3e4d1 49 ros::Publisher EStop_publisher("estop", &EStop_msg);
_seminahn 3:a4677501ae87 50
_seminahn 0:4ff8aeb3e4d1 51 std_msgs::Bool Bumper_msg;
_seminahn 0:4ff8aeb3e4d1 52 ros::Publisher Bumper_publisher("bumper", &Bumper_msg);
_seminahn 0:4ff8aeb3e4d1 53
_seminahn 0:4ff8aeb3e4d1 54
_seminahn 0:4ff8aeb3e4d1 55 // Subscriber
_seminahn 0:4ff8aeb3e4d1 56 void BluetoothCB(const std_msgs::UInt8& msg);
_seminahn 0:4ff8aeb3e4d1 57 ros::Subscriber<std_msgs::UInt8> Bluetooth_subscriber("autocharge_state_NUC", &BluetoothCB);
_seminahn 0:4ff8aeb3e4d1 58
_seminahn 3:a4677501ae87 59 void SsrTestCB(const std_msgs::Bool& msg);
_seminahn 3:a4677501ae87 60 ros::Subscriber<std_msgs::Bool> SsrTest_subscriber("SsrControlTest", &SsrTestCB);
_seminahn 0:4ff8aeb3e4d1 61
_seminahn 3:a4677501ae87 62 #if (ROBOT_TYPE == MODEL_I)
_seminahn 3:a4677501ae87 63 void WarningFieldSelectCB(const std_msgs::UInt8& msg);
_seminahn 3:a4677501ae87 64 ros::Subscriber<std_msgs::UInt8> WarningFieldSelect_subscriber("WarningFieldSelect", &WarningFieldSelectCB);
_seminahn 3:a4677501ae87 65
_seminahn 3:a4677501ae87 66 void IgnoreWarningFieldCB(const std_msgs::UInt8&);
_seminahn 3:a4677501ae87 67 ros::Subscriber<std_msgs::UInt8> IgnoreWarningField_subscriber("IgnoreWarningField", &IgnoreWarningFieldCB);
_seminahn 3:a4677501ae87 68
_seminahn 3:a4677501ae87 69 void ScrubberControlCB(const std_msgs::Bool& msg);
_seminahn 3:a4677501ae87 70 ros::Subscriber<std_msgs::Bool> ScrubberControl_subscriber("ScrubberControl", &ScrubberControlCB);
_seminahn 3:a4677501ae87 71 #endif
_seminahn 0:4ff8aeb3e4d1 72 /* Threads and Timers ------------------------------------------------------- */
_seminahn 0:4ff8aeb3e4d1 73 Thread gThread[NUM_THREAD];
_seminahn 0:4ff8aeb3e4d1 74
_seminahn 0:4ff8aeb3e4d1 75 Timer waitTmr;
_seminahn 0:4ff8aeb3e4d1 76
_seminahn 0:4ff8aeb3e4d1 77
_seminahn 0:4ff8aeb3e4d1 78 /* Modules ------------------------------------------------------------------ */
_seminahn 0:4ff8aeb3e4d1 79 MPU9250_SPI mpu(IMU_MOSI, IMU_MISO, IMU_SCK, IMU_NCS, IMU_INT);
_seminahn 0:4ff8aeb3e4d1 80
_seminahn 3:a4677501ae87 81 #if ((ROBOT_TYPE == MODEL_C) || (ROBOT_TYPE == MODEL_D))
_seminahn 3:a4677501ae87 82 ChargingControl charging_control(CHARGE_RELAYP, CHARGE_RELAYN);
_seminahn 3:a4677501ae87 83 DigitalIn estop(EMERGENCY_STOP);
_seminahn 3:a4677501ae87 84 PinName echo[NUM_SONAR] = {RS_ECH01, RS_ECH02, RS_ECH03, RS_ECH04, RS_ECH05, RS_ECH06, RS_ECH07, RU_ECH01, RU_ECH02, RU_ECH03};
_seminahn 3:a4677501ae87 85 SONAR_MANAGER<NUM_SONAR> sonar_manager(echo, TRIG);
_seminahn 3:a4677501ae87 86 #elif (ROBOT_TYPE == MODEL_I)
_seminahn 3:a4677501ae87 87 PinName echo[NUM_SONAR] = {SONAR_LEFT, SONAR_RIGHT};
_seminahn 3:a4677501ae87 88 SONAR_MANAGER<NUM_SONAR> sonar_manager(echo, SONAR_TRIG);
_seminahn 3:a4677501ae87 89 #endif
_seminahn 0:4ff8aeb3e4d1 90
_seminahn 3:a4677501ae87 91 #if (ROBOT_TYPE == MODEL_D)
_seminahn 3:a4677501ae87 92 //DigitalIn level_blue(LEVEL_SENSE1);
_seminahn 3:a4677501ae87 93 //DigitalIn level_yellow(LEVEL_SENSE2);
_seminahn 3:a4677501ae87 94 DigitalIn level_sensor(LEVEL_SENSE);
_seminahn 3:a4677501ae87 95 #endif
_seminahn 3:a4677501ae87 96
_seminahn 3:a4677501ae87 97 #if (ROBOT_TYPE == MODEL_I)
_seminahn 3:a4677501ae87 98 DigitalOut ChargingSsr(SSR_CTRL, 0);
_seminahn 3:a4677501ae87 99 DigitalOut ScrubberControl(SCRUBBER_CTRL, 0);
_seminahn 3:a4677501ae87 100 DigitalOut WaringFieldSelectPin1(LIDAR_WARNING1, 1);
_seminahn 3:a4677501ae87 101 DigitalOut WaringFieldSelectPin2(LIDAR_WARNING2, 1);
_seminahn 3:a4677501ae87 102 DigitalOut IgnoreWarningFieldPin1(IGNORE_WARNING1, 0);
_seminahn 3:a4677501ae87 103 DigitalOut IgnoreWarningFieldPin2(IGNORE_WARNING2, 0);
_seminahn 3:a4677501ae87 104 DigitalIn LidarDustSensingPin(LIDAR_DUSTSENSING);
_seminahn 3:a4677501ae87 105 DigitalIn EmergencyStopPin(EMERGENCY_STOP);
_seminahn 3:a4677501ae87 106 DigitalIn LidarStopPin(LIDAR_DETECT_OBSTACLE);
_seminahn 3:a4677501ae87 107 #endif
_seminahn 3:a4677501ae87 108
_seminahn 3:a4677501ae87 109 //EStop estop(EMERGENCY);
_seminahn 0:4ff8aeb3e4d1 110
_seminahn 0:4ff8aeb3e4d1 111 /* For test ----------------------------------------------------------------- */
_seminahn 0:4ff8aeb3e4d1 112
_seminahn 2:0de4854743f7 113 #endif