在这个课程中,你将会学习Mini Pupper结合Rivz和Gazebo的实例应用。你将使用Rviz可视化机器人模型,并在Gazebo仿真环境中实现Mini Pupper的键盘移动控制,然后带着Mini Pupper在你搭建的虚拟世界中散步。
按照规划,本课程需要花费大约2小时来完成,目标受众为四足机器人开发爱好者。
note
本课程是基于Mangdang的Mini Pupper系列产品搭建的。
在这个课程中,你将会学到:
本课程将使用以下组件:
在开始这个课程前,你需要具备以下知识:
在开始这个课程前,你需要准备好以下材料:
四足机器人仿真可以快速、低成本、高安全性地验证四足机器人的结构设计、运动控制等工作的原理有效性。通过仿真结果与实际测试结果的对比,可以帮助机器人开发者更好地完善机器人。
在本课程中,仿真意味着你无需理会Mini Pupper实际硬件的组装和调试,就能快速上手四足机器人并在仿真环境中找到如同遥控玩具车一样简单的乐趣。
Rviz是ROS中非常受欢迎的数据可视化工具,通过将机器人模型导入Rviz,并发布机器人控制信息,你将能通过键盘控制Rviz中的Mini Pupper运动。
Ubuntu22.04和ROS2 Humble的环境是搭建mini pupper仿真环境的前提,请先检查你是否完成了课程的准备材料。
uname -a
printenv ROS_DISTRO
rviz2
Rviz支持许多常见的传感器的数据,比如激光雷达、相机等。
通过Rviz插件,甚至可以将特定的冷门传感器数据可视化。
你可以通过这些按键调整视角:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/mangdangroboticsclub/mini_pupper_ros.git -b ros2
vcs import < mini_pupper_ros/.minipupper.repos --recursive
note
如果你未安装vcstool,请先安装vcstool。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install python3-vcstool
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y # solve the dependency of ros package
sudo apt-get install ros-humble-teleop-twist-keyboard # keyboard package
colcon build --symlink-install # build
note
如果你遇到rosdep相关问题,请查看背景信息和资源
cd ~/.gazebo/
git clone https://github.com/osrf/gazebo_models.git models
Unified Robot Description Format(URDF)是统一机器人描述格式,它是一种用于表示机器人模型的 XML 格式,能对机器人进行描述。
cd ~/ros2_ws/src/mini_pupper_ros/mini_pupper_description/urdf
sudo apt install gedit
sudo gedit mini_pupper_description.urdf
cd ~/ros2_ws/src/mini_pupper_ros/mini_pupper_description/urdf
urdf_to_graphviz mini_pupper_description.urdf # translate urdf to tree graph
xdg-open mini-pupper.pdf # open graph pdf
note
如果你希望深入了解URDF和Xacro,请查看背景信息和资源
在Rviz中,机器人模型可作为Displays的对象,Displays将以正确的位姿显示机器人可视化模型,并且这个模型受当前的TF transforms定义。
. ~/ros2_ws/install/setup.bash # setup.zsh if you use zsh instead of bash
ros2 launch mini_pupper_bringup bringup.launch.py joint_hardware_connected:=false rviz:=true
2. 查看/robot_description话题
经过此前启动文件的配置,robot_state_publisher节点将发布机器人的描述信息,Rviz将接收robot_description话题信息并更新机器人模型。
ros2 topic info -v /robot_description
note
如果你希望深入了解TF2,请查看背景信息和资源
gnome-terminal --title "keyboard" -- ros2 run teleop_twist_keyboard teleop_twist_keyboard
gnome-terminal -- bash -c "ros2 topic info -v /cmd_vel; exec bash"
gnome-terminal -- bash -c "ros2 topic echo /cmd_vel; exec bash"
note
如果你希望深入了解ROS话题机制,请查看背景信息和资源
通过键盘终端输入移动指令,观察Rviz中Mini Pupper的运动。
Gazebo是强大的3D仿真工具,它能配合ROS组成一个强大的机器人仿真测试环境。
通过自己构建一个Gazebo虚拟世界并配合机器人模型,你将能通过键盘控制Gazebo虚拟世界中的Mini Pupper运动。
gazebo
note
在打开gazebo前,请务必先按照第三步:部署四足机器人数据可视化与仿真环境下载好模型。
在Gazebo中,你可以通过这些按键调整视角:
在Gazebo的上方工具栏中,你可以使用这几个按钮来平移、旋转调整模型。
如下是将一个实体模型旋转朝向,按住Shift可以帮助你更精确地调整。
除了能放置简单的几何物体,通过左侧栏目的Insert选项添加模型,你甚至能放置复杂的公共汽车,这得益于你此前预下载的模型库。
你可以为Mini Pupper构建一个你喜欢的仿真环境。
通过使用简单的几何模型、预下载的复杂模型、旋转与平移,你能获取一个良好的仿真环境。
下图为使用了salon、suv、school、tablemarble的简单世界。
~/ros2_ws/src/mini_pupper_ros/mini_pupper_gazebo/world
将自拟的世界文件playground.world替换原有的世界文件playground.world
现在,你可以带着Mini Pupper在你自拟的虚拟世界中散步了!
. ~/ros2_ws/install/setup.bash # setup.zsh if you use zsh instead of bash
ros2 launch mini_pupper_gazebo gazebo.launch.py rviz:=true
ros2 run teleop_twist_keyboard teleop_twist_keyboard
经过本课程的学习,你应该能达到以下水平:
知识点 | 内容 | 了解 | 熟悉 | 掌握 |
---|---|---|---|---|
Rviz | 使用可视化工具Rviz来观察机器人模型 | ✔ | ||
Gazebo | 搭建世界 | ✔ | ||
Gazebo | 使用仿真工具Gazebo在虚拟环境中控制机器人 | ✔ | ||
ROS | 使用并监视一个ROS节点 | ✔ |
Reference : ROS2 Humble rosdep
Reference : setup.bash for configuring environment
Reference : Rviz in ROS Wiki
Reference : URDF
Reference : Xacro
Reference : vcstool
Reference : TF2
Reference : ROS Topic
版权信息:教材尚未完善,此处预留版权信息处理方式
mini pupper相关内容可访问:https://github.com/mangdangroboticsclub