Yesense.cfg 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. #!/usr/bin/env python
  2. PACKAGE = "yesense_imu"
  3. NODE_NAME = "Yesense_puber"
  4. PARAMS_NAME = "YesenseNode"
  5. from math import pi
  6. from dynamic_reconfigure.parameter_generator_catkin import *
  7. PRODUCT_INFOMATION = 0x00
  8. PARAM_SETTING = 0x01
  9. UART_BAUDRATE = 0x02
  10. OUTPUT_FREEQUENCY = 0x03
  11. OUTPUT_CONTENT = 0x04
  12. CALIBRATION_PARAM_SET = 0x05
  13. MODE_SETTING = 0x4d
  14. NEMA0183_OUTPUT_CONTENT = 0x4e
  15. PROTOCAL_ID = 0xff
  16. def gengerate_level(class_type,id):
  17. return class_type << 8 | id
  18. gen = ParameterGenerator()
  19. # Name Type Level Description Default Min Max
  20. #gen.add("time_offset", double_t, 0, "A manually calibrated offset (in seconds) to add to the timestamp before publication of a message.", 0.0, -1.0, 1.0)
  21. enum_id = gen.enum([ gen.const("ConfigStatusMemery", int_t, 0x01, "Set Param of the IMU temporary"),
  22. gen.const("ConfigStatusFlash", int_t, 0x02, "Set Param of the IMU permanent")],
  23. "An enum of ID")
  24. gen.add("id", int_t, gengerate_level(PROTOCAL_ID,0), "A size parameter which is edited via an enum", 0x01 , edit_method=enum_id)
  25. #Product Information 0x00
  26. #enum_product = gen.enum([ gen.const("ProductVersion", int_t, 0x02, "Query product version"),
  27. # gen.const("ProductInformation", int_t, 0x04, "Query product information")],
  28. # "An enum of product information")
  29. #gen.add("product", int_t, gengerate_level(PRODUCT_INFOMATION,0), "A size parameter which is edited via an enum", 0x02 , edit_method=enum_product)
  30. gen.add("param_setting", bool_t, gengerate_level(PARAM_SETTING,0), "Reset yaw to zero", False)
  31. # baudrate 0x02
  32. size_baudrate = gen.enum([ gen.const("9600_bps", int_t, 0x01, "set baudrate as 9600 bps"),
  33. gen.const("38400_bps", int_t, 0x02, "set baudrate as 38400 bps"),
  34. gen.const("115200_bps", int_t, 0x03, "set baudrate as 115200 bps"),
  35. gen.const("460800_bps", int_t, 0x04, "set baudrate as 460800 bps"),
  36. gen.const("921600_bps", int_t, 0x05, "set baudrate as 921600 bps"),
  37. gen.const("19200_bps", int_t, 0x06, "set baudrate as 19200 bps"),
  38. gen.const("57600_bps", int_t, 0x07, "set baudrate as 57600 bps"),
  39. gen.const("76800_bps", int_t, 0x08, "set baudrate as 57600 bps"),
  40. gen.const("230400_bps", int_t, 0x09, "set baudrate as 230400 bps")],
  41. "An enum to set baudrate")
  42. gen.add("baudrate", int_t, gengerate_level(UART_BAUDRATE,0), "A size parameter which is edited via an enum", 4, edit_method=size_baudrate)
  43. # output freequency 0x03
  44. size_output_freequency = gen.enum([ gen.const("1_Hz", int_t, 0x01, "set output freequency as 1 Hz"),
  45. gen.const("2_Hz", int_t, 0x02, "set output freequency as 2 Hz"),
  46. gen.const("5_Hz", int_t, 0x03, "set output freequency as 5 Hz"),
  47. gen.const("10_Hz", int_t, 0x04, "set output freequency as 10 Hz"),
  48. gen.const("20_Hz", int_t, 0x05, "set output freequency as 20 Hz"),
  49. gen.const("25_Hz", int_t, 0x06, "set output freequency as 25 Hz"),
  50. gen.const("50_Hz", int_t, 0x07, "set output freequency as 50 Hz"),
  51. gen.const("100_Hz", int_t, 0x08, "set output freequency as 100 Hz"),
  52. gen.const("200_Hz", int_t, 0x09, "set output freequency as 200 Hz"),
  53. gen.const("250_Hz", int_t, 0x0A, "set output freequency as 250 Hz"),
  54. gen.const("500_Hz", int_t, 0x0B, "set output freequency as 500 Hz"),
  55. gen.const("1000_Hz", int_t, 0x0C, "set output freequency as 1000 Hz")],
  56. "An enum to set output freequency")
  57. gen.add("freequency", int_t, gengerate_level(OUTPUT_FREEQUENCY,0), "A size parameter which is edited via an enum", 8, edit_method=size_output_freequency)
  58. # set output value 0x04
  59. gen.add("speed_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,0), "Enable imu's speed output", True)
  60. gen.add("location_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,1), "Enable imu's location output", True)
  61. gen.add("UTC_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,2), "Enable imu's UTC output", True)
  62. gen.add("quaternion_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,3), "Enable imu's quaternion output", True)
  63. gen.add("euler_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,4), "Enable imu's euler angle output", True)
  64. gen.add("magnetic_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,5), "Enable imu's magnetic output", True)
  65. gen.add("angular_velicity_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,6), "Enable imu's angular velicity output", True)
  66. gen.add("acceleration_increament_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,7), "Enable imu's acceleration increament output", True)
  67. gen.add("velicity_increament_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,8), "Enable imu's velicity increament output", True)
  68. gen.add("quaternion_increament_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,9), "Enable imu's quaternion increament output", True)
  69. gen.add("imu_temp_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,10), "Enable imu's tempature output", True)
  70. gen.add("second_imu_angle_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,11), "Enable second imu's angle velocity output", True)
  71. gen.add("second_imu_accel_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,12), "Enable second imu's accel output", True)
  72. gen.add("second_imu_temp_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,13), "Enable second imu's tempature output", True)
  73. gen.add("free_accel_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,14), "Enable free accel output", True)
  74. gen.add("timestamp_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,15), "Enable timestamp output", True)
  75. # reset value 0x05
  76. reset_param = gen.enum([gen.const("RESET_ROLL_PITCH", int_t, 0x11, "Reset Roll & Pitch"),
  77. gen.const("RESET_YAW", int_t, 0x12, "Reset Yaw")],
  78. "An enum to reset param")
  79. gen.add("reset_param", int_t, gengerate_level(CALIBRATION_PARAM_SET,0), "Reset imu's parameter", 0x11, edit_method=reset_param)
  80. #0x4d
  81. mode_set = gen.enum([ gen.const("ARHS_VRU_Handover", int_t, 0x02, "ARHS or VRU Handover"),
  82. gen.const("CUSTOMIZE_NEMA0183_Handover", int_t, 0x03, "CUSTOMIZE or NEMA0183 protocal Handover"),
  83. gen.const("HIHG_LOW_frequency_Handover", int_t, 0x04, "HIGH or LOW output freequency Handover"),
  84. gen.const("GYRO_BIAS_Initialization", int_t, 0x50, "GYRO BIAS Initialization")],
  85. "An enum of output mode")
  86. gen.add("mode_setting", int_t, gengerate_level(MODE_SETTING,0), "ARHS or VRU mode", 0x02, edit_method=mode_set)
  87. #0x4E
  88. gen.add("GPHPR_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,0), "GPHPR output switch", False)
  89. gen.add("GPVTG_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,1), "GPVTG output switch", False)
  90. gen.add("GPRMC_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,2), "GPRMC output switch", False)
  91. gen.add("GPGSV_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,3), "GPGSV output switch", False)
  92. gen.add("GPGSA_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,4), "GPGSA output switch", False)
  93. gen.add("GPGGA_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,5), "GPGGA output switch", False)
  94. exit(gen.generate(PACKAGE, NODE_NAME, PARAMS_NAME))