# kuavo_opensource **Repository Path**: leju-robot-tech-team/kuavo_opensource ## Basic Information - **Project Name**: kuavo_opensource - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-15 - **Last Updated**: 2024-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基本使用 ## 使用示例代码 ### 获取代码 1. Clone 代码:git clone https://www.lejuhub.com/highlydynamic/kuavo_opensource.git (需要到 www.lejuhub.com 注册然后,然后联系 hzc@lejurobot.com 由他将账号添加到项目中,才能或者访问权限) ### 编译代码 1. cd kuavo_opensource (如果使用了 git clone https://www.lejuhub.com/highlydynamic/kuavo_opensource.git new_dir, 那么这里 cd 应该 cd 到 new_dir) 2. mkdir build 创建 cmake 需要的目录 3. cmake .. 使用 cmake 生成编译文件用的 Makefiles 4. make -j$(nproc) 这里是使用当前系统的 cpu 数,作为 make 编译并发的最大线程数 5. 如果编译错误,请使用 git status 查看是否改动过代码或者相关的第三方库 6. 如果编译成功,会在 ./src/biped_v2/biped_v2_drake_walk_velik 产生一个执行文件 ### 使用实例 #### 校正机器人的电机位置 1. 将机器人拉离地面,并将所有的关节掰动的起始的位置,给机器人 NUC 和电机上电 2. 执行 sudo ./src/biped_v2/biped_v2_drake_walk_velik --real --cali ,此时等待 EtherCat 通信自检。如果自检通过,机器人的电机会执行到起始的位置。如果观察到起始的位置不正确,只需要关闭电机总开关,调整每个电机的位置,再上电,保持 NUC 开机。再执行一遍 sudo ./src/biped_v2/biped_v2_drake_walk_velik --real --cali 。 3. 持续以上的循环,直到机器人在启动校正程序之后初始位置运动到正常的位置。 4. 校正完成之后机器人的电机会记住当前校正的位置,用户在电机关机之前都可以反复运行控制程序,不需要再次进行校正。 #### 使用示例程序 1. 执行 sudo ./src/biped_v2/biped_v2_drake_walk_velik --real 2. 机器人进入按键控制模式,按键控制模式的源文件在 src/opensource/biped_v2/drake_walk_velik.cc, 的 keyboard_thread_func 函数 以下是操作方法 2.1 将机器人吊里地面,机器人垂直伸展之后脚底离地面 2CM 以上 2.2 选中第二项菜单,按下回车。此时机器人会控制所有电机运动到准备状态。机器人的腿会缩起。 2.3 放下机器人,让机器人缩起之后的校正在距离地面 2CM 左右的地方 2.4 一人配合戴手套,拉住机器人的躯干,另一人按下 o 键,机器人会进入站立状态。站立的时候机器人会有一个向后倒的趋势,拉住机器人的人稍微用力,帮助机器人保持平衡。机器人平衡之后松手即可。 2.5 机器人站立之后,按下 r 键,机器人会进入基于速度的步态模式,进入步态之后默认各个方向速度为0, 使用 a(左)d (右) w(前) d(后) 来改变在 x,y 轴上的速度,来控制机器人前后左右移动。机器人移动的时候吊起机器人的吊架需要同步移动,不能拉扯到机器人。 2.6 退出步态模式为按下 c 键,此时机器人会重置移动速度,并退出步态模式,回复站立。(注意!此时不能直接使用 Ctrl+C 退出程序,否则机器人所有关节突然解除控制会产生比较大的惯性拉坏吊架的钢丝,导致机器人跌倒损坏) 2.7 结束调试,按下 p 键,机器人会缩起双腿,使用吊架放下机器人,直到机器人缩起之后的脚底距离地面 2 CM 左右。 按下 Ctrl+C 退出程序。 ### 仿真环境 仿真环境和实物环境类似,请参考以下步骤 1. drake-visualizer 启动 drake 的前端环境 2. ./src/biped_v2/biped_v2_drake_walk_velik --dt=5e-4 ## 重装相关的环境 机器出厂时会安装好相应的开发和运行环境。如果在使用过程中损坏了主机的运行环境有以下两种方法来恢复。注意:请定期,及时保存自己的代码,当环境损坏之后可能之前编辑的代码会丢失。 1. 使用官方的 Clonezilla 镜像,直接恢复系统到出厂的状态 2. 使用以下重装环境的方法,重新安装环境 ### 安装依赖的相关环境 1. 安装第三方依赖库 sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev , 如果出现网络问题,可以使用 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 清华大学的加速源进行替换。注意在选择加速源的时候根据自己系统的版本选择,添加了源之后需要使用 sudo apt-get update 更新一下 apt 的缓存 ![清华大学 apt 加速, ubuntu 20.04](./docs/imgs/scr_readme_20231031114201.png) 2. drake https://drake.mit.edu/apt.html ,根据我们发布的软件版本,选择 1.19.0 的 drake 3. 安装 mpc 依赖 cassie_alip_mpc 参考https://github.com/UMich-BipedLab/cassie_alip_mpc 中的Build Install Casadi by Source and Install 章节安装 3.1 clone: git clone https://github.com/UMich-BipedLab/cassie_alip_mpc.git 3.2 执行以下命令 ```bash cd external_packages/casadi sudo apt-get install gcc g++ gfortran git cmake liblapack-dev pkg-config --install-recommends mkdir build cd build cmake .. sudo make install ``` # 代码说明 ## drake 相关 src/biped_v2/drake_walk_velik.h 是运动控制主要的头文件,其中 HighlyDynamicRobot 这个类主要是用来做运动控制相关的实现。 以下为和 drake 有关的成员变量,里面包含两个模型,一个是带手臂一个是不带手臂。 ``` cpp drake::multibody::MultibodyPlant *g_plant; drake::multibody::MultibodyPlant *g_plant_with_arm; drake::systems::Context *g_plant_context; drake::systems::Context *g_plant_context_with_arm; drake::systems::Simulator *g_simulator; systems::DiagramBuilder builder; systems::lcm::LcmInterfaceSystem *lcm; geometry::SceneGraph *scene_graph; ```