第2章 搭建开发环境
工欲善其事,必先利其器。做机器人建模,环境配不对,后面全是泪。这一章咱们就把 ROS Noetic、工作空间、URDF 工具链一口气装好。我自己的经验是,环境搭得越干净,后面调试越省心。
2.1 安装 ROS Noetic
ROS Noetic 是 ROS1 的最后一个长期支持版,搭配 Ubuntu 20.04 非常稳。我个人习惯用「完整桌面版」安装,因为里面包含了 rviz、gazebo 等常用工具,省得后面再一个个补。
sudo apt update && sudo apt upgrade -y
# 设置 sources.list
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
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# 安装完整桌面版
sudo apt update
sudo apt install ros-noetic-desktop-full -y
装完之后,别忘了配置环境变量。我习惯把它写到 ~/.bashrc 里,这样每次开终端自动生效。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证一下:roscore 能正常启动,就说明 ROS 核心装好了。嗯,我第一次装的时候忘了 source,折腾了十分钟才发现……
2.2 创建 ROS 工作空间
工作空间就是你的代码大本营。所有 URDF 文件、launch 文件、自定义包都放在里面。我一般用 catkin_ws 这个名字,简单好记。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
编译完成后,你会看到 devel 和 build 两个文件夹。这时候再 source 一下工作空间的环境变量:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
echo $ROS_PACKAGE_PATH,如果能看到你的工作空间路径,就说明一切正常。
我曾经遇到过 catkin_make 报错说找不到 Python 包,后来发现是没装 python3-catkin-pkg。所以这里提前装好:
sudo apt install python3-catkin-pkg python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y
2.3 安装 URDF 相关工具链
URDF 建模离不开几个关键工具:urdfdom、liburdfdom-tools、joint_state_publisher、robot_state_publisher。说白了,这些工具帮你把 URDF 文件解析、发布 tf、驱动关节。
| 工具包 | 作用 | 安装命令 |
|---|---|---|
| urdfdom / liburdfdom-tools | URDF 解析与检查 | sudo apt install liburdfdom-tools |
| joint_state_publisher | 发布关节状态 | sudo apt install ros-noetic-joint-state-publisher |
| robot_state_publisher | 发布 tf 树 | sudo apt install ros-noetic-robot-state-publisher |
| rviz | 可视化调试 | 已包含在 desktop-full 中 |
我个人习惯再装一个 check_urdf 工具,它可以直接告诉你 URDF 文件哪里写错了。曾经有一次我漏了一个闭合标签,check_urdf 秒秒钟揪出来。
sudo apt install ros-noetic-urdfdom-py
# 检查 URDF 示例
check_urdf my_robot.urdf
2.4 验证环境是否就绪
装完别急着写代码,先跑一个小测试。我通常用 urdf_to_graphiz 把一个简单的 URDF 转成关系图,看看工具链是否正常。
# 下载一个官方示例 URDF
roscore &
rosparam set robot_description "`cat /opt/ros/noetic/share/urdf_tutorial/urdf/01-myfirst.urdf`"
rosrun robot_state_publisher robot_state_publisher
# 新终端
rosrun joint_state_publisher joint_state_publisher
# 再开一个终端
rosrun rviz rviz
如果你看到机器人模型在 rviz 里动起来,恭喜你,环境完全 OK。我当年第一次看到模型动的时候,还挺有成就感的。
2.5 本章小结
到这一步,你的电脑已经武装好了:ROS Noetic 就绪,工作空间创建完毕,URDF 工具链也装齐了。接下来就可以动手写第一个 URDF 文件了。记住,环境越干净,后面越顺手。