【ROS】ros-noetic和anaconda联合使用
【ROS】ros-noetic和anaconda联合使用
文章目录
- 【ROS】ros-noetic和anaconda联合使用
- 1. 安装anaconda
- 2. 创建虚拟环境
- 3. 查看python解释器路径
- 4. 在虚拟环境中使用任意的包
- 5. 创建工作空间和ros功能包进行测试
- Reference
1. 安装anaconda
在Ubuntu20.04中安装anaconda可以参考博主的这篇博客,这里就不再赘述。下面简要介绍下博主使用的环境
2. 创建虚拟环境
Anaconda基本环境管理语法如下
创建虚拟环境
conda create -n <your-virtualenv-name> python=3.8
激活虚拟环境
conda activate <your-virtualenv-name>
激活虚拟环境后使用pip install rospkg rospy catkin_tools来安装ros依赖
#in your virtual env
pip install rospkg rospy catkin_tools
3. 查看python解释器路径
笔者使用的是
ros-noetic版本,安装的anaconda3,在ros-noetic中的原生python版本为python3.8.10,如果使用的ros-melodic版本,那么原生python应该三是python2.7。
下面我们验证一下基本信息是否正确,打开一个terminal
which python3
默认的python3解释器路径是/usr/bin/python3
然后,查看anaconda虚拟环境中的python3解释器路径
conda activate <your_virtualenv_name>
which python3
比如笔者的虚拟环境名字是metaRL,查看的结果如下
4. 在虚拟环境中使用任意的包
笔者在这个环境中配置了torch-v2.0.1具体教程参考这篇博客,这个所需要的包可以是任何你想使用的包。我们验证一下是否能顺利导入
conda activate <your_virtualenv_name>
python
import rospy
print(rospy.__file__)
import torch
print(torch.__file__)
如下所示,我们顺利导入了rospy和torch并且查看了其存放路径
5. 创建工作空间和ros功能包进行测试
mkdir -p ~/test_ws/src
cd ~/test_ws/src/
catkin_init_workspace
catkin_create_pkg test_ros_python std_msgs rospy
cd ..
catkin_make
echo "source ~/test_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
然后创建一个测试脚本
roscd test_ros_python
mkdir scripts
touch test_node.py
chmod +x test_node.py
然后在test_node中编写以下内容
#! /usr/bin/env python
# coding :utf-8print('\n*****************************************\n\t[test libraries]:\n')
import rospy
import torchprint(' - rospy.__file__ = %s'%rospy.__file__)
print(' - scipy.__file__ = %s'%torch.__file__)
# check cuda is ready or not
print('cuda is {}'.format('ready' if torch.cuda.is_available() else 'not ready'))
print('\n*****************************************\n\t[finish test]\n')if __name__ == "__main__":rospy.init_node('test_node', anonymous=True)rospy.loginfo('>>>>> hello world >>>>>')
这样进行测试之后发现,并不能顺利导入我所需要的torch包,如下图所示
这个结果与我们之前在终端中的结果相违背,那么可以详细查看一下python包的搜索路径,利用sys库
#! /usr/bin/env python
# coding :utf-8print('\n*****************************************\n\t[test libraries]:\n')
import rospy
import sys
for p in sys.path:print(p)# print()
# import torchprint(' - rospy.__file__ = %s'%rospy.__file__)
# print(' - scipy.__file__ = %s'%torch.__file__)
# # check cuda is ready or not
# print('cuda is {}'.format('ready' if torch.cuda.is_available() else 'not ready'))
print('\n*****************************************\n\t[finish test]\n')if __name__ == "__main__":rospy.init_node('test_node', anonymous=True)rospy.loginfo('>>>>> hello world >>>>>')
查看的搜索路径如下
奇怪的是这里并没有我们之前在终端中得到的路径
我们可以手动将这个路径添加到python的搜索路径当中
/home/<your-user-name>/anaconda3/envs/<your-virturalenv-name>/lib/python3.8/site-packages
得到如下的脚本文件
#! /usr/bin/env python
# coding :utf-8print('\n*****************************************\n\t[test libraries]:\n')
import rospy
import sys
sys.path.append('/home/sjh/anaconda3/envs/metaRL/lib/python3.8/site-packages')
for p in sys.path:print(p)print()
import torchprint(' - rospy.__file__ = %s'%rospy.__file__)
print(' - scipy.__file__ = %s'%torch.__file__)
# check cuda is ready or not
print('cuda is {}'.format('ready' if torch.cuda.is_available() else 'not ready'))
print('\n*****************************************\n\t[finish test]\n')if __name__ == "__main__":rospy.init_node('test_node', anonymous=True)rospy.loginfo('>>>>> hello world >>>>>')
成功导入了torch
Reference
【Linux】Ubuntu20.04版本配置pytorch环境2023.09.05【教程】
【ROS】如何在ROS中使用anaconda虚拟环境?
ROS图像的Deeplab v3+实时语义分割(ROS+Pytorch)
相关文章:
【ROS】ros-noetic和anaconda联合使用
【ROS】ros-noetic和anaconda联合使用 文章目录 【ROS】ros-noetic和anaconda联合使用1. 安装anaconda2. 创建虚拟环境3. 查看python解释器路径4. 在虚拟环境中使用任意的包5. 创建工作空间和ros功能包进行测试Reference 1. 安装anaconda 在Ubuntu20.04中安装anaconda可以参考…...
【MySQL】聚合查询与分组查询
我们先重建一个test库,在test库里新建一个people表(包含序列号,姓名,工资),再往表该表里新增六条数据: mysql> drop database if exists test; Query OK, 1 row affected (0.07 sec)mysql>…...
RFID技术在锂电池生产线自动化应用
随着电动汽车和能源储存系统市场的不断扩大,锂离子电池作为其核心部件,以其高能量密度、长寿命等优点成为了主流选择。而对于锂电池智能化、高效化生产有着更高的要求,RFID技术的使用,将大幅度提高锂电池的生产产能,从…...
钢筋智能测径仪 光圆与带肋钢筋均可检测!
在一个大规模、高效、连续的工业生产中,制造业正朝着自动化方向快速优化发展,这种自动化的生产需要快速、准确地分析控制生产工艺中的参数,超差及时提示,为操作工对工厂的运行和自我调节做出快速反应,人工操作越来越不…...
docker--在Anaconda jupyter 容器中使用oracle数据源时,Oracle客户端安装配置及使用示例
配置oracle 11.2 客户端 将instantclient-basic-linux.x64-11.2.0.4.0.zip解压至/home/jupyter/oracle/将instantclient-sqlplus-linux.x64-11.2.0.4.0.zip解压/home/jupyter/oracle/【可选,提供sqlplus命令】复制【操作系统一般都有安装libaio.so】 cp /usr/lib64…...
can的波特率/比特率
can控制器只需要进行少量的设置就可以进行通信,就像RS232那样。其中较难设置的部分就是通信波特率的计算。can总线能够在一定范围内容忍总线上can节点的通信波特率的偏差,这种技能使得can总线有很强的容错性,同时也降低了对每个节点的振荡器精…...
项目经理涨薪秘籍!技巧都在这里了
好奇前辈们是如何带好团队、做出成功项目,从而升职加薪,成为高级项目经理或项目管理主管的?这是绝大多数新手PM最关注的事情。今天小编给大家揭秘! 一、刚入门如何进阶 从入门的项目管理者发展到中级的项目管理者,重…...
甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(一)
如果没有有效的时间管理工具,如工作时间日历,很难想象一个项目如何成功运转。这就是为什么我们的开发团队非常重视项目管理,并提供了多种选择来安排DHTMLX Gantt的工作时间。使用DHTMLX Gantt这个JavaScript库,您可以创建一个强大…...
健效达海豚妈妈儿保项目推介会盛大启幕,聚焦互联网+精准医疗
2023年10月12日,由上海健启星科技发展有限公司和北京安智因生物技术有限公司联合主办的“2023互联网精准医学平台助力基层医疗|海豚妈妈儿保项目推介会”在中国苏州盛大启幕。 本次项目推介会得到国内行业专家、权威学者、国内知名三甲名医教授、头部企业、学术大咖…...
使用XLua在Unity中获取lua全局变量和函数
1、Lua脚本 入口脚本 print("OK") --也会执行重定向 require("Test") 测试脚本 print("TestScript") testNum 1 testBool true testFloat 1.2 testStr "123"function testFun()print("无参无返回") endfunction te…...
springboot项目集成kafka,并创建kafka生成消息线程池
效果图: 步骤1:添加依赖 <!-- kafka依赖 --><dependency><groupId>org.apache.kafka</groupId><<...
PreScan与MATLAB联合仿真报错
一、 问题: Error:Matlab ||和&&运算符的操作数必须能够转换为逻辑标量值 二、解决办法 必须安装VS2013(我装的VS2017不行的),然后重启prescan和MATLAB,编译通过,界面如下: 三、VS…...
ros学习笔记(1)Mac本地安装虚拟机,安装Ros2环境
Ros与Linux的关系 Ros环境基于Linux系统内核 我们平时用的是Linux发行版,centos,ubuntu等等,机器人就用了ubunut 有时候我们经常会听到ubunue的版本,众多版本中,有一些是长期维护版TLS,有一些是短期维护…...
史上最强,Jmeter性能测试-性能场景设计实例(详全)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、性能测试需求 …...
【vim 学习系列文章 7-- vim vnormap nnoremap nmap map inoremap 区别】
文章目录 1.1 vim 递归映射和非递归映射1.1.1 vim 可视模式 1.2 map nmap vnormap nnoremap inoremap 区别 1.1 vim 递归映射和非递归映射 递归映射和非递归映射是 Vim 中两种不同的键盘映射方式。 递归映射(recursive map)是指在定义键盘映射时&#x…...
[ERROR] COLLATION ‘utf8_unicode_ci‘ is not valid for CHARACTER SET ‘latin1‘
[ERROR] COLLATION utf8_unicode_ci is not valid for CHARACTER SET latin1错误来源是: 跟着b站的谷粒商城项目做,前面的视频中设置了数据库的字符集编码,但是后面自己发现了MySQL容器重启报错,不停的在重启 查看log信息可以使用…...
基于rancher安装部署k8s
基础配置 systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/configvi /etc/hosts ip1 node1 ip2 node2 ip3 node3#免密登录 ssh-keygenssh-copy-id -i ~/.ssh/id_rsa.pub 普通用户ip1…...
保姆级微服务部署教程
大家好,我是鱼皮。 项目上线是每位学编程同学必须掌握的基本技能。之前我已经给大家分享过很多种上线单体项目的方法了,今天再出一期微服务项目的部署教程,用一种最简单的方法,带大家轻松部署微服务项目。 开始之前,…...
springboot 定时任务
springboot 定时任务 在Spring Boot中,你可以使用Spring的Scheduled注解来创建定时任务。以下是一个简单的示例: 首先,你需要在Spring Boot的主类上添加EnableScheduling注解以启用定时任务功能。 import org.springframework.boot.Spring…...
【大数据】HBase入门指南
原创不易,注重版权。转载请注明原作者和原文链接 文章目录 HBase特性Hadoop的限制基本概念NameSpaceTableRowKeyColumnTimeStampCell 存储结构HBase 数据访问形式架构体系HBase组件HBase读写流程读流程写流程 MemStore Flush参数说明 StoreFile Compaction参数说明触…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
