ROS2 ImportError: 无法从‘rosidl_generator_py‘导入名称‘generate_py‘ 解决

在ROS2进行colcon build编译过程中,进行到80%时总是报如下错误:

 ImportError: cannot import name 'generate_py' from 'rosidl_generator_py' (/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/__init__.py)

看到有博主说可以注释掉.bashrc文件里的conda部分,但是我的.bashrc文件里没有conda,并且是只读状态,此方法不可行。

于是我就想,把创建的虚拟conda环境给退出是不是一样的。

使用了命令$ conda deactivate 以及$ conda update conda(用来更新conda),理论上应该只需要第一句命令就可以。因为我忘了把build文件夹给删除了,所以多操作了几步。果然编译成功了。

 

总结:1)$ conda deactivate 停用conda环境,

           2)删除build里原来的东西,

           3)$ colcon build 重新编译成功

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在ROS中设计和开发一个自己的路径规划器,通常需要遵循以下步骤: 1. 确定路径规划算法:选择适合特定应用程序的路径规划算法。ROS中提供了许多开源算法,如A*、Dijkstra和RRT等,也可以自己编写算法。 2. 创建ROS包:使用catkin_create_pkg命令创建ROS包,包括必要的依赖项、消息和服务。 3. 实现路径规划器:在ROS包中创建节点,编写路径规划器代码,并将其与ROS消息系统集成。 4. 测试和调试:使用RViz或Gazebo等仿真环境测试和调试路径规划器。 5. 集成到机器人系统中:将路径规划器集成到机器人系统中,例如与传感器数据和控制器进行交互。 下面是一个简单的示例,展示如何创建一个基于A*算法的路径规划器: 1. 确定算法:选择使用A*算法进行路径规划。 2. 创建ROS包:使用catkin_create_pkg命令创建ROS包,包括依赖项、消息和服务: ``` catkin_create_pkg my_planner rospy nav_msgs ``` 3. 实现路径规划器:在ROS包中创建一个名为my_planner.py的节点,并编写代码实现路径规划器。在本例中,我们使用Python编写代码,使用nav_msgs/OccupancyGrid消息来表示地图和geometry_msgs/PoseStamped消息来表示起点和终点。 ```python #!/usr/bin/env python import rospy from nav_msgs.msg import OccupancyGrid from geometry_msgs.msg import PoseStamped from heapq import heappush, heappop import numpy as np class AStarPlanner: def __init__(self): rospy.init_node('my_planner') # Subscribers rospy.Subscriber('/map', OccupancyGrid, self.map_callback) rospy.Subscriber('/start', PoseStamped, self.start_callback) rospy.Subscriber('/goal', PoseStamped, self.goal_callback) # Publishers self.plan_pub = rospy.Publisher('/plan', OccupancyGrid, queue_size=1) rospy.spin() def map_callback(self, msg): # TODO: Store the map data def start_callback(self, msg): # TODO: Store the start pose def goal_callback(self, msg): # TODO: Perform A* search and publish the plan def astar(self, start, goal): # TODO: Implement A* algorithm if __name__ == '__main__': planner = AStarPlanner() ``` 4. 测试和调试:使用RViz或Gazebo等仿真环境测试和调试路径规划器。 5. 集成到机器人系统中:将路径规划器集成到机器人系统中,例如与传感器数据和控制器进行交互。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值