树莓派搭建ROS及简单应用

本文介绍了如何使用树莓派通过GPIO控制电机驱动,搭建基于ROS的智能小车系统。首先明确了目标,即理解ROS框架并利用wiringPi控制GPIO。接着详细阐述了环境搭建步骤,包括小车硬件、树莓派系统配置和PC虚拟机的设置。在实现过程中,通过ROS的两个节点实现小车控制,PC端通过修改turtle_teleop_key.py文件实现键盘控制。文中还提到了C++与wiringPi库的集成问题以及跨设备通信的网络配置挑战。最后,作者强调了这个项目对深化理解ROS概念的价值,并预告了后续将通过openCV添加摄像头功能,实现人脸识别等扩展应用。

1,目的

  使用树莓派GPIO控制电机驱动,实现小车的前进后退左转右转停止运行。

   深入理解ROS框架

   使用wiringPi控制pi的GPIO

2,环境搭建

  a,小车部分:4个小电机,小车底盘和电机驱动(L298N)

   b,pi3,搭载ubuntu-mate嵌入式系统,ROS core,wiringPi,通过PC ssh 客户端访问

   c,PC,virtualBox虚拟机中使用ubuntu-mate桌面系统,完整ROS

   d,pi3和PC虚拟机(网络使用桥接)连到同一个路由器下,可以网络通讯

  ubuntu-mate系统,ROS框架,wiringPi安装办法请在相应官网查询

3,实现

   在ROS教程中beginning tutorial 建立两个node实现,pi上node subscribe 一个commands的topic,获取消息,控制小车运行。为了实现简单,msg使用UInt8,PC虚拟机上修改turtle_teleop_key.py,实现通过键盘向commands 的topic发送消息 也可以通过topic pub 方式实现控制。

   困难1:小车控制部分代码使用C++语言完成,要调用C的wiringPi库,并且实现通过catkin_make编译。好在已经有人解决了。

                 c++ - Add wiringPi lib to cmake on RaspberryPi - Stack Overflow

    困难2:  PC虚拟机上运行roscore,在虚拟机上和pi上启动node通信总是出现异常,不能识别域名。解决办法参考

### 如何在树莓派上安装ROS #### 准备工作 为了确保顺利安装,在开始之前需确认树莓派已更新至最新版本的操作系统并连接互联网。建议使用Raspberry Pi OS (32-bit),因为这是官方支持的最佳选项[^1]。 #### 更新系统包列表 打开终端窗口,输入命令刷新本地APT缓存以获取最新的软件源信息: ```bash sudo apt update && sudo apt upgrade -y ``` #### 设置ROS仓库密钥 添加ROS官方GPG密钥以便验证下载文件的真实性与完整性: ```bash sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 ``` #### 添加ROS存储库 编辑`/etc/apt/sources.list.d/ros-latest.list`文件加入适合当前Linux发行版的ROS二进制包地址。对于基于Debian Buster的Raspberry Pi OS而言应如下所示设置: ```bash echo "deb http://packages.ros.org/ros/ubuntu buster main" | sudo tee /etc/apt/sources.list.d/ros-latest.list ``` #### 安装ROS依赖项 执行以下指令来预先加载一些必要的编译工具和其他辅助组件: ```bash sudo apt-get install curl build-essential -y ``` #### 开始安装ROS Noetic Ninjemys版本 针对ARM架构优化过的Noetic版本提供了良好的兼容性和性能表现,推荐采用此版本完成整个环境搭建过程: ```bash sudo apt-get install ros-noetic-desktop-full -y ``` #### 初始化rosdep Rosdep用于解析和满足其他Python模块的需求,初始化它可以帮助解决后续可能出现的各种依赖关系问题: ```bash sudo rosdep init rosdep update ``` #### 配置环境变量 为了让Shell能够识别新安装好的ROS命令集,需要修改个人用户的`.bashrc`配置脚本: ```bash echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` #### 测试安装成果 最后一步是通过启动一个简单的发布者节点来进行最终检验,如果一切正常则说明已经成功完成了全部准备工作: ```bash roscore & rostopic echo /chatter ``` 以上就是在树莓派设备上部署ROS的具体流程介绍[^2]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值