协议 API (protocol)
机器人 API (robot)
包括智能小车、机械臂、飞行器。
智能小车 API (mobile_robot)
1 车底盘 API (chassis)
chassis_t chassis_create(wheel_t* c_wheel, kinematics_t c_kinematics);
创建车底盘
rt_err_t chassis_set_velocity(chassis_t chas, struct velocity target_velocity);
设置小车底盘速度
rt_err_t chassis_set_rpm(chassis_t chas, rt_int16_t target_rpm[]);
设置小车底盘车轮速度(单位:转/分)
1.1 车轮 API (wheel)
wheel_t wheel_create(motor_t w_motor, encoder_t w_encoder, controller_t w_controller, float radius, rt_uint16_t gear_ratio);
创建车轮
rt_err_t wheel_set_speed(wheel_t whl, double speed);
设定车轮速度
rt_err_t wheel_set_rpm(wheel_t whl, rt_int16_t rpm);
设定车轮速度
1.1.1 电机 API (motor)
直流电机
dual_pwm_motor_t dual_pwm_motor_create(char *pwm1, int pwm1_channel, char *pwm2, int pwm2_channel);
创建双 PWM 驱动方式电机
single_pwm_motor_t single_pwm_motor_create(char *pwm, int channel, rt_base_t pin1, rt_base_t pin2);
创建单 PWM 驱动方式电机
舵机
servo_t servo_create(const char * pwm, int channel, float angle, rt_uint32_t pluse_min, rt_uint32_t pluse_max);
创建舵机
rt_err_t servo_set_angle(servo_t servo, float angle);
设定舵机转动角度
1.1.2 编码器 API (encoder)
获取编码器信息。
ab_phase_encoder_t ab_phase_encoder_create(rt_base_t pin_a, rt_base_t pin_b, rt_uint16_t pulse_revol);
创建AB相编码器
single_phase_encoder_t single_phase_encoder_create(rt_base_t pin, rt_uint16_t pulse_revol);
创建单相编码器
1.1.3 控制器 API (controller)
inc_pid_controller_t inc_pid_controller_create(float kp, float ki, float kd, rt_uint16_t sample_time);
创建增量式 PID 控制器
pos_pid_controller_t pos_pid_controller_create(float kp, float ki, float kd, rt_uint16_t sample_time);
创建位置式 PID 控制器
1.2 动力学模型 API (kinematics)
kinematics_t kinematics_create(enum base k_base, float length_x, float length_y, float wheel_radius);
创建动力学模型
小车速度 (x, y, w) 与各个电机转速 (rpm1, rpm2, rpm3, rpm4) 之间的相互转换。
rt_int16_t* kinematics_get_rpm(struct kinematics kin, struct velocity target_vel);
struct velocity kinematics_get_velocity(struct kinematics kin, struct rpm current_rpm);
原作者:yaojinrun