自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 小车区域内遍历规划测试

在ROS中实现小车在一块区域内的遍历规划,可以使用覆盖路径规划(Coverage Path Planning, CPP)算法。以下是一个简单的实现步骤,使用经典的基于栅格地图的覆盖路径规划方法。创建一个新的节点,用于实现覆盖路径规划。可以使用经典的分层蛇形覆盖算法(Boustrophedon Path Planning)来覆盖整个区域。确保有一张环境的栅格地图(Occupancy Grid),并且已经加载到ROS中。确保你已经有一个ROS工作空间,并且已经安装了必要的包。3. 编写覆盖路径规划节点。

2024-07-16 20:09:17 380

原创 Cmake更正

# 如果使用了类似 find_package(catkin REQUIRED COMPONENTS xyz) 的 COMPONENTS 列表,还需要查找其他 catkin 包。## 使用 C++11 编译,ROS Kinetic 及更新版本支持。## 在 'action' 文件夹中生成 .action 文件。## 生成消息和服务,并包含任何列出的依赖项。## 你的包位置应列在其他位置之前。## 查找 catkin 宏和库。## 声明 catkin 包。## 指定头文件的其他位置。

2024-07-12 14:17:26 178

原创 Cmake

# 如果使用了类似 find_package(catkin REQUIRED COMPONENTS xyz) 的 COMPONENTS 列表,还需要查找其他 catkin 包。## 使用 C++11 编译,ROS Kinetic 及更新版本支持。## 在 'action' 文件夹中生成 .action 文件。## 生成消息和服务,并包含任何列出的依赖项。## 你的包位置应列在其他位置之前。## 查找 catkin 宏和库。## 声明 catkin 包。## 指定头文件的其他位置。

2024-07-12 10:53:44 204 1

原创 Action文件

使用你喜欢的文本编辑器(如 `nano`, `gedit`, `vim` 等)编辑 `MoveArm.action` 文件。该文件包含三个部分:目标(goal)、反馈(feedback)和结果(result),每个部分之间用 `---` 分隔。在 `action` 目录中创建一个新的 `.action` 文件。在你的ROS包的 `CMakeLists.txt` 文件中,添加生成 `.action` 文件所需的配置。首先,确保你在你的ROS包中有一个目录来存放 `.action` 文件。

2024-07-12 10:21:16 393 1

原创 .action文件生成

首先,在你的ROS包中创建一个 `action` 目录(如果还没有的话)。然后,在该目录中创建一个 `.action` 文件。在你的包的 `CMakeLists.txt` 文件中,添加生成 `.action` 文件所需的配置。通过这些步骤,你可以成功生成并使用 `.action` 文件,定义动作通信接口来控制你的机械臂。这样,`.action` 文件会被编译为相应的ROS消息类型,你可以在代码中使用它们。### 3. 修改 `package.xml`### 1. 创建 `.action` 文件。

2024-07-12 09:58:34 238 1

原创 action话题控制机械臂

确保所有节点正常运行,Action Client能够发送目标给Action Server,并且服务器能够控制机械臂移动到指定位置。首先,你需要定义一个`.action`文件来描述客户端和服务器之间的消息格式。你需要一个Action Server来控制机械臂的动作。3. **编写Action Client(发送控制命令)**2. **编写Action Server(控制机械臂)**### 3. 编写Action Server(控制机械臂)1. **定义Action文件**### 1. 定义Action文件。

2024-07-12 09:56:11 257

原创 机械臂拾取放置

rospy.loginfo("放置成功")rospy.logerr("放置失败")rospy.logerr("无法到达放置点")rospy.loginfo("到达放置点")rospy.loginfo("抓取成功")rospy.logerr("抓取失败")rospy.logerr("无法到达抓取点")rospy.loginfo("到达抓取点")# 执行放置动作(打开抓夹)# 初始化MoveGroupCommander。# 执行抓取动作(闭合抓夹)# 初始化ROS节点。

2024-07-10 15:03:54 365

原创 检测aruco码并发布位姿

pose_msg.header.frame_id = "camera_frame" # 替换为您的相机坐标系。# 使用ApproximateTimeSynchronizer来同步RGB和深度图像。# 显示3D坐标信息。# 将ROS图像消息转换为OpenCV图像。# 在图像上绘制Aruco标记边界框和ID。# 提取Aruco码的四个角的坐标。# 检查中心点坐标是否在图像范围内。# 获取中心点的深度信息。# 判断深度信息是否有效。# 计算Aruco码中心点坐标。# 订阅RGB图像和深度图像。

2024-06-28 20:15:30 681 3

原创 ROS识别Aruco码

使用ApproximateTimeSynchronizer来同步RGB和深度图像。# 将ROS图像消息转换为OpenCV图像。# 在图像上绘制Aruco标记边界框和ID。# 发布坐标信息到ROS topic。# 提取Aruco码的四个角的坐标。# 检查中心点坐标是否在图像范围内。# 计算Aruco码中心点坐标。# 订阅RGB图像和深度图像。# 获取中心点的深度信息。# 判断深度信息是否有效。# 检测Aruco标记。# 使用预定义的字典。# 显示3D坐标信息。

2024-06-28 15:14:55 270

原创 红色物体检测及坐标显示

self.intrinsics = np.array(data.K).reshape((3, 3)) # 3x3相机内参矩阵。# 初始化CvBridge,用于ROS图像消息和OpenCV图像之间的转换。# 将图像坐标转换为相机坐标。# 在结果图像上绘制坐标。# 将深度图像ROS消息转换为OpenCV图像。# 将彩色图像ROS消息转换为OpenCV图像。# 订阅彩色图像、深度图像和相机信息主题。# 绘制质心在结果图像上。# 初始化深度图像和相机内参的存储变量。# 显示原始图像、掩膜和结果图像。

2024-06-10 09:57:46 501

原创 计算深度信息脚本

self.intrinsics = np.array(data.K).reshape((3, 3)) # 3x3相机内参矩阵。# 初始化CvBridge,用于ROS图像消息和OpenCV图像之间的转换。# 将图像坐标转换为相机坐标。# 将深度图像ROS消息转换为OpenCV图像。# 将彩色图像ROS消息转换为OpenCV图像。# 定义一个发布者,用于发布红色物体的三维坐标。# 订阅彩色图像、深度图像和相机信息主题。# 初始化深度图像和相机内参的存储变量。# 显示原始图像、掩膜和结果图像。

2024-06-10 09:30:07 332 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除