ROS中功能包Python版本和默认版本不符

工作记录
python功能包编写于python3.6版本,ROS melodic自带python2.7。

Ubuntu系统工具

在这里插入图片描述
使用update-alternatives 修改默认版本,需安装update-alternatives后登记系统中的Python版本,安装后按上图可随时修改系统默认python指向版本,修改默认版本至py3.6后按正常操作pip install 所需功能包后需将版本切回py2.7供roscore使用。

Python脚本解释器指向

#!/usr/bin/env python
#coding=utf-8

python脚本解释器指向默认python。

#!/usr/bin/env python3
#coding=utf-8

将其直接改为python3后,运行python时可以自动使用python3解释器运行脚本,相关功能包也将直接使用python3中的资源。

sudo apt install python3-pip

python3 路径下pip安装

pip3 install catkin-tools
pip3 install rospkg

python3环境下安装ROS相关功能包

pip3 install scipy
pip3 install angles

ik依赖项

ROS 2 (Robot Operating System) 创建一个Python并实现Talker和Listener功能通常涉及以下几个步骤: 1. **初始化工作空间**: 首先,你需要在一个新的目录下初始化一个新的ROS 2工作空间 (`ros2 init <your_package_name>`),这将创建一个含所有依赖和源文件结构的标准结构。 2. **创建**: 创建一个名为`<your_package_name>/src`的目录,并在此处创建两个文件夹,分别用于Talker和Listener:`msg`(存放消息定义)和`python`(存放Python代码)。 - `msg` 文件夹:如果你的消息类型还没有定义,需要编写`.msg`文件(如`std_msgs/msg/String`),描述你要交换的信息。如果没有自定义消息,可以保留默认的。 - `python` 文件夹:在这里,你可以创建`talker.py` 和 `listener.py` 文件。 3. **编写Talker**: - 在`talker.py` ,导入需要的消息类型,创建`Node`实例,然后监听一个话题并发送消息。使用`rclpy`库的`Publisher`类来发布消息,如: ```python from rclpy.node import Node from your_package_name.msg import YourMessageType import rclpy class Talker(Node): def __init__(self): super().__init__('talker') self.publisher_ = self.create_publisher(YourMessageType, 'your_topic', 10) timer_period = 0.5 # 发送消息频率 self.timer = self.create_timer(timer_period, self.send_message) def send_message(self): msg = YourMessageType(data='Hello from Talker!') self.publisher_.publish(msg) ``` 4. **编写Listener**: - 在`listener.py`,做类似的事情,但是创建一个`Subscriber`来接收消息。例子如下: ```python from rclpy.node import Node from your_package_name.msg import YourMessageType import rclpy class Listener(Node): def __init__(self): super().__init__('listener') self.subscription = self.create_subscription( YourMessageType, 'your_topic', self.listener_callback, 10) self.subscription # 确保回调函数被注册 def listener_callback(self, msg): self.get_logger().info('Received message: %s' % msg.data) ``` 5. **构建和运行**: - 通过命令行进入工作空间目录,然后执行`colcon build`来构建,生成二进制文件。 - 接下来,运行Talker和Listener,例如: ``` ros2 run your_package_name talker ros2 run your_package_name listener ``` 6. **调试和测试**: 使用`ros2 topic echo` 来确认消息是否正常传递。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值