github地址
https://github.com/chvmp/champ
翻译版本:
http://www.gitpp.com/robotlee/champ
CHAMP 四足控制器的 ROS 软件包。
CHAMP 是一个开源开发框架,用于构建新的四足机器人和开发新的控制算法。该控制框架基于“利用模式调制和阻抗控制的高动态运动分层控制器:在麻省理工学院猎豹机器人上的实现”。
核心特点:
- 完全自主(使用 ROS 导航堆栈)。
- 设置助手用于配置新建的机器人。
- 预配置URDF的集合,例如 Anymal、MIT Mini Cheetah、Boston Dynamic's Spot 和 LittleDog。
- Gazebo模拟环境。
- 与SpotMicroAI和OpenQuadruped等 DIY 四足项目兼容。
- TOWR和鸡头稳定等演示应用程序。
- 轻量级 C++ 仅头文件库,可在 SBC 和微控制器上运行。
测试于:
- Ubuntu 16.04(ROS 动力学)
- Ubuntu 18.04(ROS Melodic)
1. 安装
1.1 克隆并安装所有依赖项:
sudo apt install -y python-rosdep
cd <your_ws>/src
git clone --recursive https://github.com/chvmp/champ
git clone https://github.com/chvmp/champ_teleop
cd ..
rosdep install --from-paths src --ignore-src -r -y
如果您想使用任何预先配置的机器人,例如 Anymal、Mini Cheetah 或 Spot,请按照此处的说明进行操作。
1.2 构建你的工作空间:
cd <your_ws>
catkin_make
source <your_ws>/devel/setup.bash
2. 快速入门
您不需要物理机器人来运行以下演示。如果您正在构建物理机器人,您可以在步骤 3 中了解如何配置和运行新机器人的更多信息。
2.1 RVIZ 步行演示:
2.1.1 运行基础驱动程序:
roslaunch champ_config bringup.launch rviz:=true
2.1.2 运行teleop节点:
roslaunch champ_teleop teleop.launch
如果您想使用操纵杆,请添加 Joy:=true 作为参数。
2.2 SLAM演示:
2.2.1 运行Gazebo环境:
roslaunch champ_config gazebo.launch
2.2.2 运行gmapping包和move_base:
roslaunch champ_config slam.launch rviz:=true
开始映射:
- 单击“二维导航目标”。
- 单击并拖动您希望机器人移动的位置。
- 通过运行以下命令保存地图:
roscd champ_config/mapsrosrun map_server map_saver
2.3 自主导航:
2.3.1 运行Gazebo环境:
roslaunch champ_config gazebo.launch
2.3.2 运行amcl和move_base:
roslaunch champ_config navigate.launch rviz:=true
导航:
- 单击“二维导航目标”。
- 单击并拖动您希望机器人移动的位置。
3. 运行自己的机器人:
在真实机器人上运行 CHAMP 有两种方法:
Linux机器
- 使用此 ROS 包计算关节角度并将其发送到硬件接口来控制执行器。您可以遵循这些指南来创建执行器的界面。
轻量版
- 在 Teensy 系列微控制器上运行 CHAMP 的轻量级版本,并用它直接控制您的执行器。
3.1 生成机器人配置
- 首先使用champ_setup_assistant生成配置包。按照自述文件中的说明配置您自己的机器人。生成的包包含:作为参考,您可以在此处查看已预先配置的机器人集合。列表中包括一些流行的四足机器人,例如 Anymal、MIT Mini Cheetah、Boston Dynamic 的 LittleDog 和 SpotMicroAI。请随意下载catkin工作区'src'目录中的配置包来尝试。- 机器人的 URDF 路径。- 关节和链接图可帮助控制器了解机器人的语义。- 步态参数。- 硬件驱动程序。- 导航参数(move_base、amcl 和 gmapping)。- 用于步态和轻型机器人描述的微控制器头文件。这仅适用于使用微控制器运行四足控制器的机器人构建。
- 接下来,构建您的工作区,以便可以找到新生成的包:
cd <your_ws>catkin_make
3.2 基本驱动器:
这将运行四足控制器和所有传感器/硬件驱动程序:
roslaunch <myrobot_config> bringup.launch
可用参数:
- rviz - 与 RVIZ 一起启动。默认值:假
- lite - 如果您使用微控制器来运行算法,请始终将其设置为 true。默认为 false。
用法示例:
查看您新配置的机器人:
roslaunch <myrobot_config> bringup.launch rviz:true
使用微控制器运行真实的机器人:
roslaunch <myrobot_config> bringup.launch lite:=true
3.3 创建地图:
必须运行 3.2 中描述的基本驱动程序才能运行 gmapping 和 move_base。
运行 gmapping 包和 move_base:
roslaunch <myrobot_config> slam.launch
要打开 RVIZ 并查看地图:
roscd champ_navigation/rviz
rviz -d navigate.rviz
开始映射:
- 单击“二维导航目标”。
- 单击并拖动您希望机器人移动的位置。
- 通过运行以下命令保存地图:
roscd <myrobot_config>/mapsrosrun map_server map_saver
3.4 自主导航:
必须运行 3.2 中描述的基本驱动程序才能运行 amcl 和 move_base。
运行 amcl 和 move_base:
roslaunch <myrobot_config> navigate.launch
要打开 RVIZ 并查看地图:
roscd champ_navigation/rviz
rviz -d navigate.rviz
导航:
- 单击“二维导航目标”。
- 单击并拖动您希望机器人移动的位置。
3.5 在 Gazebo 中运行机器人
在模拟模式下运行 Gazebo 和基本驱动程序:
roslaunch <myrobot_config> gazebo.launch
- 请注意,为了使其工作,URDF 必须与 Gazebo 兼容并具有ros_control功能。控制器已设置完毕,因此您只需添加执行器的传输即可。您还需要获得正确的物理参数,例如质量、惯性和脚部摩擦力。有关正确设置这些参数的一些有用资源:- 惯性计算 - https://github.com/tu-darmstadt-ros-pkg/hector_models/blob/indigo-devel/hector_xacro_tools/urdf/inertia_tensors.urdf.xacro- 转动惯量列表 - https://en.wikipedia.org/wiki/List_of_moments_of_inertia- Gazebo 惯性参数 - http://gazebosim.org/tutorials?tut=inertia&cat=build_robot#Overview
您还可以查看此拉取请求作为示例。
3.6 在 Gazebo 中生成多个机器人
运行 Gazebo 和默认模拟世界:
roslaunch champ_gazebo spawn_world.launch
您还可以通过将世界路径传递给“gazebo_world”参数来加载您自己的世界文件:
roslaunch champ_gazebo spawn_world.launch gazebo_world:=<path_to_world_file>
生成机器人:
roslaunch champ_config spawn_robot.launch robot_name:=<unique_robot_name> world_init_x:=<x_position> world_init_y:=<y_position>
- 生成的机器人的每个实例都必须有一个唯一的机器人名称,以防止主题和变换发生冲突。
4. 调整步态参数
机器人的步态配置可以在 <my_robot_config>/gait/gait.yaml 中找到。
- 膝盖方向- 膝盖应如何弯曲。您可以将机器人配置为遵循以下方向 .>> .>< .<< .<> 其中点是机器人的前侧。
- 最大线速度 X(米/秒)- 机器人的最大前进/后退速度。
- 最大线速度 Y(米/秒)- 机器人侧向移动时的最大速度。
- 最大角速度 Z(弧度/秒)- 机器人的最大旋转速度。
- 站立持续时间(秒)- 行走时每条腿应在地面上停留多长时间。如果您不确定,可以将其设置为默认值 (0.25)。站立持续时间越长,位移距参考点越远。
- 腿部摆动高度(米)- 摆动阶段的轨迹高度。
- 腿部站立高度(米)- 站立阶段的轨迹深度。
- 机器人行走高度(米)- 行走时臀部到地面的距离。请注意,将此参数设置得太高可能会使您的机器人不稳定。
- CoM X 平移(米)- 您可以使用此参数在 X 轴上移动参考点。如果质心不在机器人的中间(从前臀部到后臀部),当您想要补偿重量时,这非常有用。例如,如果您发现机器人后面较重,您将设置一个负值以将参考点移动到后面。
- 里程计缩放器- 您可以使用此参数作为航位推算计算速度的乘数。这对于补偿开环系统上的里程计误差很有用。通常该值的范围是 1.0 到 1.20。
开源四足机器人在当前技术发展和应用探索中,表现出了广泛的使用场景和潜在的应用价值。具体来说,这些使用场景包括但不限于以下几个方面:
教育和研究:作为教学和科研的工具,开源四足机器人能够提供一种成本效益高且便于操作的平台,供学生和科研人员学习和实践机器人技术、控制理论、人工智能等领域。
探测与监测:四足机器人能够适应复杂地形,因此它们可以被用于地质勘探、灾害救援、环境监测等场合,进行地形勘测、数据采集或搜索与营救任务。
军事应用:在军事领域,四足机器人可以执行侦察、物资运输、战场环境监测等任务,提高军事行动的效率和安全性。
工业维护与检测:在工业环境中,四足机器人可用于设备维护、质量检测、生产流程监控等,特别是在那些对人类工人来说危险或不便进入的区域。
农业服务:在农业上,四足机器人能够协助进行作物监测、病虫害检测、施肥等工作,提升农业生产的自动化水平。
家庭服务与娱乐:随着技术的成熟,四足机器人未来可能在家庭环境中提供陪伴、教育、清洁等服务,甚至成为家庭的一员。
商业展示与促销:在商业活动中,四足机器人可以作为吸引眼球的展示工具,用于科技展览、产品促销等场合。
医疗辅助:在医疗领域,四足机器人可能用于辅助手术、照顾病人、药物配送等,减轻医护人员的负担。
科研探索:在科学研究中,例如考古发掘、生物多样性调查等领域,四足机器人能够进入人类难以到达的地区,协助科研人员开展工作。
通过开源模式,四足机器人的研发成本得以降低,这使得更多的研究者和爱好者能够参与到这一领域中来,进一步推动了技术的创新和应用的拓展。未来,随着技术的不断进步和成熟,四足机器人的应用场景将会更加广泛。
原文链接:
MIT开源四足机器人!猎豹
版权归原作者 旅之灵夫 所有, 如有侵权,请联系我们删除。