123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/usr/bin/env python
- PACKAGE = "yesense_imu"
- NODE_NAME = "Yesense_puber"
- PARAMS_NAME = "YesenseNode"
- from math import pi
- from dynamic_reconfigure.parameter_generator_catkin import *
- PRODUCT_INFOMATION = 0x00
- PARAM_SETTING = 0x01
- UART_BAUDRATE = 0x02
- OUTPUT_FREEQUENCY = 0x03
- OUTPUT_CONTENT = 0x04
- CALIBRATION_PARAM_SET = 0x05
- MODE_SETTING = 0x4d
- NEMA0183_OUTPUT_CONTENT = 0x4e
- PROTOCAL_ID = 0xff
- def gengerate_level(class_type,id):
- return class_type << 8 | id
- gen = ParameterGenerator()
- # Name Type Level Description Default Min Max
- #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)
- enum_id = gen.enum([ gen.const("ConfigStatusMemery", int_t, 0x01, "Set Param of the IMU temporary"),
- gen.const("ConfigStatusFlash", int_t, 0x02, "Set Param of the IMU permanent")],
- "An enum of ID")
- gen.add("id", int_t, gengerate_level(PROTOCAL_ID,0), "A size parameter which is edited via an enum", 0x01 , edit_method=enum_id)
- #Product Information 0x00
- #enum_product = gen.enum([ gen.const("ProductVersion", int_t, 0x02, "Query product version"),
- # gen.const("ProductInformation", int_t, 0x04, "Query product information")],
- # "An enum of product information")
- #gen.add("product", int_t, gengerate_level(PRODUCT_INFOMATION,0), "A size parameter which is edited via an enum", 0x02 , edit_method=enum_product)
- gen.add("param_setting", bool_t, gengerate_level(PARAM_SETTING,0), "Reset yaw to zero", False)
- # baudrate 0x02
- size_baudrate = gen.enum([ gen.const("9600_bps", int_t, 0x01, "set baudrate as 9600 bps"),
- gen.const("38400_bps", int_t, 0x02, "set baudrate as 38400 bps"),
- gen.const("115200_bps", int_t, 0x03, "set baudrate as 115200 bps"),
- gen.const("460800_bps", int_t, 0x04, "set baudrate as 460800 bps"),
- gen.const("921600_bps", int_t, 0x05, "set baudrate as 921600 bps"),
- gen.const("19200_bps", int_t, 0x06, "set baudrate as 19200 bps"),
- gen.const("57600_bps", int_t, 0x07, "set baudrate as 57600 bps"),
- gen.const("76800_bps", int_t, 0x08, "set baudrate as 57600 bps"),
- gen.const("230400_bps", int_t, 0x09, "set baudrate as 230400 bps")],
- "An enum to set baudrate")
- gen.add("baudrate", int_t, gengerate_level(UART_BAUDRATE,0), "A size parameter which is edited via an enum", 4, edit_method=size_baudrate)
- # output freequency 0x03
- size_output_freequency = gen.enum([ gen.const("1_Hz", int_t, 0x01, "set output freequency as 1 Hz"),
- gen.const("2_Hz", int_t, 0x02, "set output freequency as 2 Hz"),
- gen.const("5_Hz", int_t, 0x03, "set output freequency as 5 Hz"),
- gen.const("10_Hz", int_t, 0x04, "set output freequency as 10 Hz"),
- gen.const("20_Hz", int_t, 0x05, "set output freequency as 20 Hz"),
- gen.const("25_Hz", int_t, 0x06, "set output freequency as 25 Hz"),
- gen.const("50_Hz", int_t, 0x07, "set output freequency as 50 Hz"),
- gen.const("100_Hz", int_t, 0x08, "set output freequency as 100 Hz"),
- gen.const("200_Hz", int_t, 0x09, "set output freequency as 200 Hz"),
- gen.const("250_Hz", int_t, 0x0A, "set output freequency as 250 Hz"),
- gen.const("500_Hz", int_t, 0x0B, "set output freequency as 500 Hz"),
- gen.const("1000_Hz", int_t, 0x0C, "set output freequency as 1000 Hz")],
- "An enum to set output freequency")
- 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)
- # set output value 0x04
- gen.add("speed_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,0), "Enable imu's speed output", True)
- gen.add("location_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,1), "Enable imu's location output", True)
- gen.add("UTC_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,2), "Enable imu's UTC output", True)
- gen.add("quaternion_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,3), "Enable imu's quaternion output", True)
- gen.add("euler_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,4), "Enable imu's euler angle output", True)
- gen.add("magnetic_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,5), "Enable imu's magnetic output", True)
- gen.add("angular_velicity_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,6), "Enable imu's angular velicity output", True)
- gen.add("acceleration_increament_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,7), "Enable imu's acceleration increament output", True)
- gen.add("velicity_increament_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,8), "Enable imu's velicity increament output", True)
- gen.add("quaternion_increament_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,9), "Enable imu's quaternion increament output", True)
- gen.add("imu_temp_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,10), "Enable imu's tempature output", True)
- gen.add("second_imu_angle_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,11), "Enable second imu's angle velocity output", True)
- gen.add("second_imu_accel_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,12), "Enable second imu's accel output", True)
- gen.add("second_imu_temp_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,13), "Enable second imu's tempature output", True)
- gen.add("free_accel_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,14), "Enable free accel output", True)
- gen.add("timestamp_output_switch", bool_t, gengerate_level(OUTPUT_CONTENT,15), "Enable timestamp output", True)
- # reset value 0x05
- reset_param = gen.enum([gen.const("RESET_ROLL_PITCH", int_t, 0x11, "Reset Roll & Pitch"),
- gen.const("RESET_YAW", int_t, 0x12, "Reset Yaw")],
- "An enum to reset param")
- gen.add("reset_param", int_t, gengerate_level(CALIBRATION_PARAM_SET,0), "Reset imu's parameter", 0x11, edit_method=reset_param)
- #0x4d
- mode_set = gen.enum([ gen.const("ARHS_VRU_Handover", int_t, 0x02, "ARHS or VRU Handover"),
- gen.const("CUSTOMIZE_NEMA0183_Handover", int_t, 0x03, "CUSTOMIZE or NEMA0183 protocal Handover"),
- gen.const("HIHG_LOW_frequency_Handover", int_t, 0x04, "HIGH or LOW output freequency Handover"),
- gen.const("GYRO_BIAS_Initialization", int_t, 0x50, "GYRO BIAS Initialization")],
- "An enum of output mode")
- gen.add("mode_setting", int_t, gengerate_level(MODE_SETTING,0), "ARHS or VRU mode", 0x02, edit_method=mode_set)
- #0x4E
- gen.add("GPHPR_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,0), "GPHPR output switch", False)
- gen.add("GPVTG_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,1), "GPVTG output switch", False)
- gen.add("GPRMC_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,2), "GPRMC output switch", False)
- gen.add("GPGSV_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,3), "GPGSV output switch", False)
- gen.add("GPGSA_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,4), "GPGSA output switch", False)
- gen.add("GPGGA_output_switch", bool_t, gengerate_level(NEMA0183_OUTPUT_CONTENT,5), "GPGGA output switch", False)
- exit(gen.generate(PACKAGE, NODE_NAME, PARAMS_NAME))
|