欧拉派Ubuntu/openEuler安装ROS2 foxy
一、系统准备
1、获取镜像(ubuntu、openEuler)
开发前准备,开发板(购买链接:https://www.ebaina.com/ai/58 ) 及其连接如图所示:
1)方式一:从SDK中拿到ubuntu、openEuler和系统镜像,下载镜像后可以解压得到如下文件:
2)方式二:直接使用openEuler-ROS镜像
该方法可以直接下载带ROS的openEuler镜像,具体参考:海鸥派镜像获取 — openEuler Embedded在线文档 24.03 documentation
需要下载的镜像内容包括以下四个文件:
boot_image_[MEM_SIZE].bin
u-boot镜像,其中MEM_SIZE是开发板的内存大小boot_env_[MEM_SIZE].bin
u-boot环境变量分区kernel-pi
Linux内核openeuler-image-hieulerpi1-[时间戳].rootfs.ext4
根文件系统
注:(openEuler ros系统烧录到手里的海鸥派开发板后,会在系统启动过程中国一直报USB打开错误的error,不能正常使用。初步判断是手里的欧拉派和镜像不匹配。最终没有使用该方式安装ROS)。
3)方式二:自行编译镜像(没有需要修改的内容不推荐该方式,比较费时间)
Ubuntu、Linux和openEuler参考:海鸥派 Euler Pi SDK编译开发指南.pdf
openEuler在线文档可参考:海鸥派镜像构建与使用 — openEuler Embedded在线文档 24.03 documentation
2、烧录镜像
SD卡烧录参考:海鸥派 Euler Pi 固件烧写及升级.pdf
没有SD卡推荐使用Platform Tool工具。目前Platform Tool烧录有个机制导致烧录镜像时很慢,会把文件系统拆开为每32Mb一份固件烧录。烧录时的分区表如下:
二、网络配置
除了openEuler支持wifi,其他系统都不支持WIIF,所以这里讲解如何配置开发板以太网,让开发板可以正常访问公网。本节开始前需要做如下准备:
欧拉派已烧录ubuntu/openEuler无ros的系统
准备一根网线,由开发板eth0接入电脑以太网口
- 准备一根USB-Type数据线,由欧拉派Debug口接到电脑
- 准备DP电源/12V外接电源给开发板供电
1、PC共享网络
1)设置电脑wifi网卡共享到开发板以太网口
2)设置开发板以太网口的IP为【使用以下配置】
3)开发板配置eth0的IP、网关地址、DNS服务地址
# 开发板IP,与wifi在同一局域网段即可,不能重复
ifconfig eth0 192.168.137.2
# 网关地址
route add default gw 192.168.137.1
# 添加DNS服务地址
vi /etc/resolv.conf
nameserver 192.168.10.1 #需要与PC端wifi属性中的DNS服务器一致
查看wifi网卡的DNS:
2、连接路由器
开发板网口连接到路由器时,只需要配置开发板eth0的IP、网关地址、DNS服务地址即可。
3、使用ssh登录
网络配置完成后,可以使用ssh访问开发板,以PuTTY为例,登录配置如下:
三、安装ROS2
下面以ubuntu为例介绍ROS2安装过程,openEuler可参考安装指令(bash指令不是apt是yum)。目前ubuntu是20.04,对应ROS foxy版本,安装步骤如下:
0.安装python3.8.10和curl
#进入系统后默认登陆信息user_name:root pwd: ebaina
apt install python3.9
apt install curl
1.设置源:
apt update && apt install curl gnupg2 lsb-release
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
2.添加ROS2的源并更新:
sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
更新ROS2包:
apt update
3.安装ROS2
可以选择基础包,(因为没有桌面系统,不包括ROS2 Dashing Diademata包):
apt install ros-foxy-ros-base python3-argcomplete
桌面全量版本,包含ROS2 Dashing Diademata包
sudo apt install ros-foxy-desktop python3-argcomplete
4.环境设置:
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc
5.安装arg完全工具和其他依赖项:
apt install -y python3-argcomplete python3-colcon-common-extensions python3-rosdep python3-vcstool
apt install ros-dev-tools
6.初始化rosdep:
rosdep init
rosdep update
以上步骤将安装ROS2 版本。如果需要安装其他版本的ROS,请替换步骤4中的包名称为对应的版本,例如ros-foxy-desktop
安装Foxy Fitzroy的桌面版。
四、运行foxy ROS2
1、基础版本验证
#在终端输入如下指令即可
ros2 launch --hlep
#输出如下:
2、桌面版本案例验证
桌面版本有默认案例可以验证,一个发布者taker向一个监听者listener发布“hello World!”的消息,终端执行
#一个终端执行
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
#另一个终端执行
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener
效果如下图:
也可以使用python自己实现一个案例,在两个不同的终端中运行这两个脚本,首先是talker.py,然后是listener.py。你会看到listener.py终端打印出talker发送的消息。参考如下
''' talker.py '''
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class Talker(Node):
def __init__(self):
super().__init__('talker')
self.publisher_ = self.create_publisher(String, 'topic', 10)
self.timer = self.create_timer(0.5, self.timer_callback)
self.i = 0
def timer_callback(self):
msg = String()
msg.data = 'Hello World! %d' % self.i
self.publisher_.publish(msg)
self.get_logger().info('Published: "%s"' % msg.data)
self.i += 1
def main(args=None):
rclpy.init(args=args)
talker = Talker()
rclpy.spin(talker)
talker.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
'''listener.py'''
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class Listener(Node):
def __init__(self):
super().__init__('listener')
self.subscription = self.create_subscription(
String,
'topic',
self.callback,
10)
def callback(self, msg):
self.get_logger().info('I heard: "%s"' % msg.data)
def main(args=None):
rclpy.init(args=args)
listener = Listener()
rclpy.spin(listener)
listener.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
- 分享
- 举报
-
DarrenPig 2025-01-16 15:27:40回复 举报牛🐂
-
浏览量:2290次2024-01-07 22:19:19
-
浏览量:758次2023-04-17 15:49:51
-
浏览量:29次2025-01-16 21:26:58
-
浏览量:1719次2024-03-29 11:19:21
-
浏览量:1221次2024-04-04 22:59:26
-
2024-01-04 15:43:20
-
浏览量:1299次2024-03-11 15:42:33
-
浏览量:862次2024-07-15 18:31:13
-
浏览量:982次2024-02-28 10:42:48
-
浏览量:936次2024-07-31 19:46:13
-
浏览量:1109次2024-07-12 08:58:25
-
浏览量:1061次2024-01-10 17:34:04
-
浏览量:952次2023-04-14 11:24:16
-
浏览量:3949次2021-09-23 13:43:22
-
浏览量:6052次2021-09-26 13:36:07
-
浏览量:957次2024-01-10 17:23:08
-
浏览量:1393次2024-03-14 17:20:56
-
浏览量:1037次2023-12-29 14:41:17
-
浏览量:2924次2020-04-28 16:24:10
- HiEuler-Pico-OpenEuler Yolov8模型训练和转换——yolov8训练(三)
- openEuler操作系统安装在服务器的方法介绍(三):安装指导
- 关于SS928评估板学习(三):接口介绍
- 易百纳与成都鼎桥达成战略合作,共创海鸥派生态新篇章
- Meetup会议:易百纳携手南邮共建AI视觉及机器人联合实验室,分享欧拉派实战应用
- 易百纳邀您一起来围观 —— 操作系统大会&openEuler Summit 2023 !
- 易百纳荣获“2024年度openEuler领先商业实践”
- 基于SS928的算法开发环境搭建教程
- 易百纳受邀参加2024年南京邮电大学创新创业冬令营启动仪式,并公布为深化产教融合,开设了首届机器视觉实战就业班!
- 关于SS928评估板学习(八):Demo应用(Audio)
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
hellokun
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明