forked from xiaozhi/xiaozhi-esp32
otto新增动作和AI自定义编程动作MCP工具 (#1365)
* otto v1.4.0 MCP 1.使用MCP协议控制机器人 2.gif继承lcdDisplay,避免修改lcdDisplay * otto v1.4.1 gif as components gif as components * electronBot v1.1.0 mcp 1.增加electronBot支持 2.mcp协议 3.gif 作为组件 4.display子类 * 规范代码 1.规范代码 2.修复切换主题死机bug * fix(ota): 修复 ottoRobot和electronBot OTA 升级崩溃问题 bug * 1.增加robot舵机初始位置校准 2.fix(mcp_sever) 超出范围异常捕获类型 bug * refactor: Update Electron and Otto emoji display implementations - Removed GIF selection from Kconfig for Electron and Otto boards. - Updated Electron and Otto bot versions to 2.0.4 in their respective config files. - Refactored emoji display classes to utilize EmojiCollection for managing emojis. - Enhanced chat label setup and status display functionality in both classes. - Cleaned up unused code and improved initialization logging for emoji displays. * Rename OTTO_ICON_FONT.c to otto_icon_font.c * Rename OTTO_ICON_FONT.c to otto_icon_font.c * refactor: Update Otto emoji display configurations and functionalities - Changed chat label text mode to circular scrolling for both Otto and Electron emoji displays. - Bumped Otto robot version to 2.0.5 in the configuration file. - Added new actions for Otto robot including Sit, WhirlwindLeg, Fitness, Greeting, Shy, RadioCalisthenics, MagicCircle, and Showcase. - Enhanced servo sequence handling and added support for executing custom servo sequences. - Improved logging and error handling for servo sequence execution. * refactor: Update chat label long mode for Electron and Otto emoji displays - Changed chat label text mode from wrap to circular scrolling for both Electron and Otto emoji displays. - Improved consistency in chat label setup across both implementations. * Update Otto robot README with new actions and parameters
This commit is contained in:
@@ -51,6 +51,8 @@ public:
|
||||
void MoveSingle(int position, int servo_number);
|
||||
void OscillateServos(int amplitude[SERVO_COUNT], int offset[SERVO_COUNT], int period,
|
||||
double phase_diff[SERVO_COUNT], float cycle);
|
||||
void Execute2(int amplitude[SERVO_COUNT], int center_angle[SERVO_COUNT], int period,
|
||||
double phase_diff[SERVO_COUNT], float steps);
|
||||
|
||||
//-- HOME = Otto at rest position
|
||||
void Home(bool hands_down = true);
|
||||
@@ -64,6 +66,7 @@ public:
|
||||
void Turn(float steps = 4, int period = 2000, int dir = LEFT, int amount = 0);
|
||||
void Bend(int steps = 1, int period = 1400, int dir = LEFT);
|
||||
void ShakeLeg(int steps = 1, int period = 2000, int dir = RIGHT);
|
||||
void Sit(); // 坐下
|
||||
|
||||
void UpDown(float steps = 1, int period = 1000, int height = 20);
|
||||
void Swing(float steps = 1, int period = 1000, int height = 20);
|
||||
@@ -74,12 +77,20 @@ public:
|
||||
void Moonwalker(float steps = 1, int period = 900, int height = 20, int dir = LEFT);
|
||||
void Crusaito(float steps = 1, int period = 900, int height = 20, int dir = FORWARD);
|
||||
void Flapping(float steps = 1, int period = 1000, int height = 20, int dir = FORWARD);
|
||||
void WhirlwindLeg(float steps = 1, int period = 300, int amplitude = 30);
|
||||
|
||||
// -- 手部动作
|
||||
void HandsUp(int period = 1000, int dir = 0); // 双手举起
|
||||
void HandsDown(int period = 1000, int dir = 0); // 双手放下
|
||||
void HandWave(int period = 1000, int dir = LEFT); // 挥手
|
||||
void HandWaveBoth(int period = 1000); // 双手同时挥手
|
||||
void HandWave(int dir = LEFT); // 挥手
|
||||
void Windmill(float steps = 10, int period = 500, int amplitude = 90); // 大风车
|
||||
void Takeoff(float steps = 5, int period = 300, int amplitude = 40); // 起飞
|
||||
void Fitness(float steps = 5, int period = 1000, int amplitude = 25); // 健身
|
||||
void Greeting(int dir = LEFT, float steps = 5); // 打招呼
|
||||
void Shy(int dir = LEFT, float steps = 5); // 害羞
|
||||
void RadioCalisthenics(); // 广播体操
|
||||
void MagicCircle(); // 爱的魔力转圈圈
|
||||
void Showcase(); // 展示动作(串联多个动作)
|
||||
|
||||
// -- Servo limiter
|
||||
void EnableServoLimit(int speed_limit_degree_per_sec = SERVO_LIMIT_DEFAULT);
|
||||
@@ -100,6 +111,7 @@ private:
|
||||
|
||||
void Execute(int amplitude[SERVO_COUNT], int offset[SERVO_COUNT], int period,
|
||||
double phase_diff[SERVO_COUNT], float steps);
|
||||
|
||||
};
|
||||
|
||||
#endif // __OTTO_MOVEMENTS_H__
|
||||
Reference in New Issue
Block a user