引言
ROS(Robot Operating System,机器人操作系统)是一个用于构建机器人应用的框架。树莓派因其低功耗和高性价比,成为机器人爱好者和开发者喜爱的硬件平台。本文将详细介绍如何在树莓派上安装ROS,并带你进行一些基础的实战操作。
安装前的准备
1. 硬件需求
- 树莓派(至少树莓派2B或更高版本)
- Micro SD卡(至少8GB)
- Micro USB电源
- 显示屏和键盘(可选)
2. 软件需求
- Raspberry Pi OS(推荐使用最新版本)
- 一台可以连接到互联网的电脑
ROS安装步骤
1. 初始化SD卡
将Micro SD卡插入电脑,使用Raspberry Pi Imager工具将Raspberry Pi OS安装到SD卡上。
2. 格式化SD卡
在Raspberry Pi OS中,使用以下命令格式化SD卡:
sudo raspi-config
选择“A”选项,然后按“Enter”键,选择“YES”来格式化SD卡。
3. 设置网络
连接树莓派到互联网,并设置网络。在Raspberry Pi OS中,使用以下命令配置网络:
sudo nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8
替换上述命令中的IP地址和网关地址为你的网络设置。
4. 安装ROS
在树莓派上,使用以下命令安装ROS:
sudo apt-get update
sudo apt-get install -y ros-noetic-desktop-full
等待安装完成。
5. 设置环境变量
在树莓派上,使用以下命令设置环境变量:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
ROS实战
1. 创建一个新项目
使用以下命令创建一个新项目:
cd ~
catkin_make
2. 编写一个简单的节点
创建一个名为talker的文件夹,并在其中创建一个名为talker.cpp的文件,内容如下:
#include <ros/ros.h>
#include <std_msgs/String.h>
void talkerCallback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "talker");
ros::NodeHandle n;
ros::Subscriber sub = n.subscribe("chatter", 1000, talkerCallback);
ros::Publisher pub = n.advertise<std_msgs::String>("chatter", 1000);
std_msgs::String msg;
while (ros::ok())
{
msg.data = "hello world";
pub.publish(msg);
ros::Rate(10).sleep();
}
return 0;
}
编译并运行该节点:
cd ~/talker
g++ talker.cpp -o talker
sudo ./talker
3. 创建一个订阅者节点
创建一个名为listener的文件夹,并在其中创建一个名为listener.cpp的文件,内容如下:
#include <ros/ros.h>
#include <std_msgs/String.h>
void callback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "listener");
ros::NodeHandle n;
ros::Subscriber sub = n.subscribe("chatter", 1000, callback);
ros::Rate loop_rate(10);
while (ros::ok())
{
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}
编译并运行该节点:
cd ~/listener
g++ listener.cpp -o listener
sudo ./listener
此时,你应该能在终端中看到talker节点和listener节点的输出信息。
结语
通过本文,你已成功在树莓派上安装ROS并进行了实战操作。希望本文能帮助你快速上手ROS,为你的机器人项目打下坚实的基础。