机器人视觉抓取项目总结:精准抓取咖啡杯的技巧与代码实现 莱州网页网站推广哪家好

发布时间 - 2026-02-02 21:07:03    点击率:

我最近做了一个机器人视觉抓取项目,目的是让机器人准确地将咖啡放在桌子上,并将其交给我旁边的人。当前的实施结果是可以捕获任意放置在某个区域的纸杯。水平定位精度在20mm之内,垂直定位精度很差,并且误差为20〜35mm。原因是垂直方向对应于相机。深度方向。

以下是项目中某些代码使用情况和错误解决方案的摘要。大多数代码已经是开源解决方案,但是在使用时,总是会有各种问题,所有问题都依赖于其他人的博客和代码库的问题。已解决。

1。定位1.1参数设置

有一个特殊的ROS版本代码()。在运行代码之前,必须安装相机驱动程序并校准相机。

在启动节点之前,您必须首先设置标签。

///.yaml

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-yaml"><span class="token key atrule">tag_family</span><span class="token punctuation">:</span>  <span class="token string">&#39;tag36h11&#39;</span> <span class="token comment"># options: tagStandard52h13, tagStandard41h12, tag36h11, tag25h9, tag16h5, tagCustom48h12, tagCircle21h7, tagCircle49h12</span> <span class="token key atrule">tag_threads</span><span class="token punctuation">:</span> <span class="token number">2</span> <span class="token comment"># default: 2</span> <span class="token key atrule">tag_decimate</span><span class="token punctuation">:</span><span class="token number">1.0</span>  <span class="token comment"># default: 1.0</span> </code></pre></p>

必须注意的是,它与打印的标签是一致的,并且通常您使用36H11。

////tags.yaml

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-yaml"><span class="token key atrule">standalone_tags</span><span class="token punctuation">:</span>   <span class="token punctuation">[</span> <span class="token comment"># {id: 1, size: 0.058},#size对应标签的大小</span> <span class="token comment"># {id: 0, size: 0.048},</span> <span class="token comment"># {id: 0, size: 0.04},</span> <span class="token comment"># {id: 1, size: 0.04}, </span> <span class="token comment"># {id: 2, size: 0.04},</span> <span class="token comment"># {id: 3, size: 0.04}, </span> <span class="token comment"># {id: 4, size: 0.04}</span>   <span class="token punctuation">]</span>   <span class="token key atrule">tag_bundles</span><span class="token punctuation">:</span>   <span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> <span class="token string">&#39;my_bundle&#39;</span><span class="token punctuation">,</span> <span class="token key atrule">layout</span><span class="token punctuation">:</span>   <span class="token punctuation">[</span> <span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">-0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span>  <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">-0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">-0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span>  <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token key atrule">id</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token key atrule">size</span><span class="token punctuation">:</span> <span class="token number">0.044</span><span class="token punctuation">,</span> <span class="token key atrule">x</span><span class="token punctuation">:</span> <span class="token number">-0.0300</span><span class="token punctuation">,</span> <span class="token key atrule">y</span><span class="token punctuation">:</span> <span class="token number">0.0830</span><span class="token punctuation">,</span> <span class="token key atrule">z</span><span class="token punctuation">:</span>  <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qw</span><span class="token punctuation">:</span> <span class="token number">1.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qx</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qy</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">,</span> <span class="token key atrule">qz</span><span class="token punctuation">:</span> <span class="token number">0.0000</span><span class="token punctuation">}</span>   <span class="token punctuation">]</span> <span class="token punctuation">}</span>   <span class="token punctuation">]</span> </code></pre></p>

如果tags.yaml,则必须注意两者之间的区别。

1.2 USB摄像机启动

我在源代码中安装了驱动程序包,但是源代码没有用。我没有阅读或修改它。整个项目仅使用文件检验。

//-测试。

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>launch</span><span class="token punctuation">></span></span>   <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>node</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam<span class="token punctuation">"</span></span> <span class="token attr-name">pkg</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam_node<span class="token punctuation">"</span></span> <span class="token attr-name">output</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>screen<span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_info_url<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>string<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>file:///home/jeremy/.ros/camera_info/head_camera.yaml<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>video_device<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/dev/video2<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_width<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>640<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_height<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>480<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>pixel_format<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>yuyv<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_frame_id<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>usb_cam<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>io_method<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>mmap<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span>   <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>node</span><span class="token punctuation">></span></span>   <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>node</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_view<span class="token punctuation">"</span></span> <span class="token attr-name">pkg</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_view<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image_view<span class="token punctuation">"</span></span> <span class="token attr-name">respawn</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span> <span class="token attr-name">output</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>screen<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>remap</span> <span class="token attr-name">from</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>image<span class="token punctuation">"</span></span> <span class="token attr-name">to</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/usb_cam/image_raw<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>autosize<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>true<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>   <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>node</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>launch</span><span class="token punctuation">></span></span> </code></pre></p>

第三行代码在校准后添加了相机参数的位置。源代码不应有此句子。我在像这样写的手眼校准中看到了一个启动文件,所以我添加了它。 (实际上,我没有看到单眼相机校准的功能。如果我删除了这句话,当我观察输出图像时我不会看到任何更改。但是,为了心理舒适,我最好不要删除它,否则我的准确性将再次消失...)

也有第4行。如果您发现笔记本电脑在启动文件后具有自己的相机(突然出现并感到震惊),然后将其更改为或更改。但是不要更改它,您会说找不到它。

1.3报告错误

[WARN] [。]:of TAG ID [0],但没有找到...

此问题是因为QR代码ID在tags.yaml中未正确设置。重要的是要注意,ID必须与打印的QR码一致。还有一个标签设置,稍后设置多个设置。

启动相机后,我发现图像是黑色的

当我遇到这个问题时,我在线搜索了很长时间,并根据其他博客作者更改了文件中的参数,但它们毫无用处。最后,我被逗乐和笑了,意识到单眼相机的光圈被最小化了,当孔径增加时,它出现了。对不起,我已经反复测试了在使用时是否可以使用相机。

输出位置信息为0

尚未执行摄像机校准,并且摄像机参数未保存到.ROS/ 。

2。使用Jaka机器人API

Jaka有一个官方的API二级开发文档,该文件更详细地编写,但是我的机器人控制代码是用C ++编写的,因此我在开发过程中使用了C ++ API。通常,首先尝试一下,然后将其更改为C ++,如果它成功。

2.1二级发展

如果您在Linux平台上使用机器人API,则需要将JAKA给出的两个编译库放入与代码相同的文件夹中。在运行代码之前,您还需要将代码文件夹路径添加到环境变量,即在终端中运行以下代码行。我的代码位于抓取/路径下。

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-shell"><span class="token builtin class-name">export</span> <span class="token assign-left variable">LD_LIBRARY_PATH</span><span class="token operator">=</span>~/project/jaka/SendCoffee/src/grab/script </code></pre></p>

要注意的另一件事是,卡机器人的API使用环境为.5。如果您的Linux默认环境为2.7,则可以使用***。py命令运行代码。我的环境是3.6.9,这与3.5的官方要求不一致,但目前我没有问题。

2.2 C ++二级发展

需要编译C ++,因此设置将更加麻烦。我成功地汇编了Jaka给出的文件中的Linux示例代码。具体步骤是首先在“抓取功能”软件包中创建一个抓取/文件夹,然后放入.h,jkerr.h,.h3标头文件中。然后创建Grap/Lib文件夹,然后将其放入编译的C ++静态库中。最后,您只需要正确编写CMAKE编译文件,就可以使用命令对其进行编译。哦,顺便说一句,您必须将要遇到的C ++代码放入Grab/SRC文件夹中。

抓取/.txt

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-c"><span class="token function">cmake_minimum_required</span><span class="token punctuation">(</span>VERSION <span class="token number">3.0</span><span class="token number">.2</span><span class="token punctuation">)</span> <span class="token function">project</span><span class="token punctuation">(</span>grab<span class="token punctuation">)</span> <span class="token function">find_package</span><span class="token punctuation">(</span>catkin REQUIRED COMPONENTS roscpp   rospy   std_msgs   apriltag_ros <span class="token punctuation">)</span> <span class="token function">catkin_package</span><span class="token punctuation">(</span> <span class="token macro property"><span class="token directive-hash">#</span>  <span class="token expression">INCLUDE_DIRS include</span></span> <span class="token macro property"><span class="token directive-hash">#</span>  <span class="token expression">LIBRARIES test</span></span> <span class="token macro property"><span class="token directive-hash">#</span>  <span class="token expression">CATKIN_DEPENDS roscpp</span></span> <span class="token macro property"><span class="token directive-hash">#</span>  <span class="token expression">DEPENDS system_lib</span></span> <span class="token punctuation">)</span> <span class="token function">include_directories</span><span class="token punctuation">(</span>   $<span class="token punctuation">{</span>catkin_INCLUDE_DIRS<span class="token punctuation">}</span> <span class="token punctuation">)</span> <span class="token function">include_directories</span><span class="token punctuation">(</span> <span class="token string">"/usr/include/eigen3"</span> <span class="token punctuation">)</span> <span class="token macro property"><span class="token directive-hash">#</span> <span class="token directive keyword">include</span> <span class="token expression">头文件目录</span></span> <span class="token function">include_directories</span><span class="token punctuation">(</span>include<span class="token punctuation">)</span> <span class="token function">LINK_DIRECTORIES</span><span class="token punctuation">(</span>$<span class="token punctuation">(</span>SRC_ROOT_PATH<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token function">LINK_DIRECTORIES</span><span class="token punctuation">(</span>$<span class="token punctuation">{</span>CMAKE_CURRENT_SOURCE_DIR<span class="token punctuation">}</span><span class="token operator">/</span>lib<span class="token punctuation">)</span> <span class="token function">LINK_LIBRARIES</span><span class="token punctuation">(</span>pthread<span class="token punctuation">)</span> # 编译成可执行文件,如果编译动态库可以用:target_link_libraries <span class="token function">add_executable</span><span class="token punctuation">(</span>control_robot src<span class="token operator">/</span>control_robot<span class="token punctuation">.</span>cpp<span class="token punctuation">)</span> <span class="token function">target_link_libraries</span><span class="token punctuation">(</span>control_robot jakaAPI<span class="token punctuation">)</span> <span class="token function">target_link_libraries</span><span class="token punctuation">(</span>control_robot  $<span class="token punctuation">{</span>catkin_LIBRARIES<span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token function">find_package</span><span class="token punctuation">(</span>Threads<span class="token punctuation">)</span> <span class="token function">target_link_libraries</span> <span class="token punctuation">(</span>control_robot $<span class="token punctuation">{</span>CMAKE_THREAD_LIBS_INIT<span class="token punctuation">}</span><span class="token punctuation">)</span> </code></pre></p>

3。机器人手眼校准(眼睛在手外)

手外眼的手眼校准是为了解决相对于机器人底部的摄像机的位置。在此项目中,定位可以在相机坐标系中获得标签的位置,并且抓取目标和标签的相对位置是固定的。因此,完成手眼校准后,可以在标签坐标系统 - &gt;相机坐标系统 - &gt;机器人坐标系中抓取目标的位置转换。

在求解机器人坐标系统下的抓取目标的位置后,可以控制机器人移动到目标点并抓住。

3.1校准方法

我使用了 Ros撰写的-Calib软件包()。该代码对操作步骤进行了详细的介绍。我通过在线校准过程实施了它。 -Calib实际上与功能包的原理相同。它称为CV2。()函数以完成手眼校准。有一个更好的视觉接口,但是相应的代码也更难读取。

许多手眼校准博客都使用驱动程序机器人通过TF树获取机器人位置,但我不知道如何使用它,因此我决定直接致电Jaka SDK以获取机器人位置姿势,并通过ROS发布主题&#39; ::消息格式 /。这样,校准程序可以直接订阅机器人位置主题。以下是修改后的手眼校准文件。

-Calib /// Alib。

<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code class="prism language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>launch</span><span class="token punctuation">></span></span> <span class="token comment"></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>arg</span><span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_pose_topic<span class="token punctuation">"</span></span><span class="token attr-name">default</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/aruco_single/pose<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token comment"></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>arg</span><span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>arm_pose_topic<span class="token punctuation">"</span></span><span class="token attr-name">default</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/robot_pos<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>node</span> <span class="token attr-name">pkg</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handeye-calib<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>online_hand_to_eye_calib.py<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>online_hand_to_eye_calib<span class="token punctuation">"</span></span> <span class="token attr-name">output</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>screen<span class="token punctuation">"</span></span> <span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>arm_pose_topic<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>$(arg arm_pose_topic)<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>param</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>camera_pose_topic<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>$(arg camera_pose_topic)<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>node</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>launch</span><span class="token punctuation">></span></span> </code></pre></p>

3.2问题没有命名&#39;&#39;

将第一个句子#!/usr/bin/-calib/src // alib.py更改为,因为ROS版本仅支持它,因此代码无法使用ROS包。没有名字

通过PIP安装库。如果没有PIP,请先安装PIP,sudo apt -get -pip。如果手眼校准代码有其他库找不到的错误,则也可以尝试先使用PIP安装。此外,如果您在线搜索错误消息,您将找到许多用于安装库的教程。但是,有必要注意是否需要安装库,只需使用PIP和PIP3即可。 &#39;&#39;没有&#39;

请参阅英特尔D435手眼校准中的博客错误2。 super()。()错误:super()至少1(0给定)

删除super()。()。该句子用于继承父类的初始化功能。作者可能在这里写错了。校准结果非常差

校准过程不应大规模移动机器人,并且不同记录组之间的末端旋转角相对较大。有关提高校准精度的方法,请参阅博客的手眼校准(II):TSAI解决方案方法。在采用博客作者提到的措施之后,校准结果的准确性在10mm的范围内。最喜欢的网址


# 机器人视觉抓取项目总结:精准抓取咖啡杯的技巧与代码实现  # 机器人视觉抓取项目总结  # 精准抓取咖啡杯的技巧与代码实现  # 我在  # 将其  # 博客  # 的是  # 如果您  # 源代码  # 有一个  # 找不到  # 当我  # 要注意  # 软件包  # 您必须  # 自己的  # 的人  # 复测  # 您的  # 头文件  # 英特尔  # 使用了  # 给我  # 网站url优化作用  # 福建质量网站建设前景  # 兰州新网站seo公司  # 嘉兴网站建设开发外包  # 企业手机网站建设内容  # 兰州小商品推广招聘网站  # 散酒营销推广文案  # 网站怎样推广文案高级  # 上饶县网站优化渠道  # 基于爬虫的seo  # 顺义区礼品网站建设推广  # 福建seo的关键词排名哪家专业  # 潮州网站建设有哪些  # 怎么查淘宝品类关键词排名  # 楚雄网站建设运营哪家好  # seo排位  # 谷歌seo内容为王  # 洛阳景点推荐seo文章  # 红河营销网站建设  # 淘宝关键词上排名 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 探索咸宁SEO推广机构的奥秘,拱墅区企业网站优化推广  揭秘SEO优化背后的秘密武器,如何利用软件打造高效网站?,巢湖德阳网站建设  介绍SEO排名服务公司,助力企业抢占互联网市场制高点,广西seo优化网络推广  广州百度推广多久见效?精准解答你的疑问,美图秀秀营销推广方案  不是百度,不是谷歌  探索数字营销的奥秘,打造高效转化的自媒体平台,恩施关键词排名优化  德阳SEO排名优化公司,让您的网站在竞争激烈的市场中脱颖而出,抖音短视频营销与推广  广州百度推广创新助力企业营销升级,咸宁推广获客网站在哪里  网站长尾词怎样去做效果更突出  宁夏抖音SEO优化指南,助力品牌在短视频平台脱颖而出,大鹏seo计划  肇庆SEO网络推广价格介绍,投资与回报的平衡之路,seo和企业的区别  SEO站在未来之巅,助力网站在激烈竞争中脱颖而出,推荐网站优化欢迎咨询  SEO电话营销的艺术,如何高效沟通与转化,网站优化链接怎么弄出来  广州百度推广加盟,助力企业腾飞的优选之路,泸州营销推广哪家专业培训好  SEO应该如何提升网站流量与排名?揭秘成功的SEO策略,肺炎疫苗推广营销  江北网络SEO优化排名,介绍提升网站排名的步骤与方法,西藏seo工具哪个适用  福建百度推广怎么收费标准案例分析,抖音餐饮营销活动推广  揭秘SEO优化背后的黑科技,低成本打造高效网站,黄石网站关键词优化报价  常德SEO优化,如何让您的网站在搜索引擎中脱颖而出,简述网站建设费用明细  广州百度推广收费标准解析,天津企业网站推广哪家强  SEO优化五大步骤,助力网站提升排名,赢得流量与用户青睐,济源百度关键词搜索排名  浅谈广州百度推广样式的多样化与优化策略,网站建设可以外包  SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做  上海新款SEO上线时间揭秘,未来已来,你准备好了吗?,漳州广州网络营销推广  SEO全套秘籍:提升网站流量与排名的终极指南,荣昌手机网站建设  SEO教育:搜索引擎优化,开启成功职业之路,搜狗SEO排名接单  佳木斯文艺交通广播新闻线索征集电话公布!微信安全中心提醒防*   滨州SEO优化,投入与产出的性价比之我见,株洲网络营销推广学校  揭秘SEO秘籍,如何让内容在搜索引擎中脱颖而出?,房山外贸响应式网站建设  广州百度推广系数解析及优化策略,各大营销推广的优势  广州百度推广销售的机遇与策略,天津天猫网站推广好处  介绍过时SEO方法,如何避免陷入优化陷阱,青羊区网站优化哪家好用  广州百度推广计费方式解析,鞍山网站建设价格低  淘宝客SEO实战指南,掌握流程,轻松实现流量转化,seo实训系统标题优化  湖北SEO万词霸屏,介绍高效网络营销步骤,中山网站优化热线  第五人格:荒诞画风与悬疑剧情交织的刺激1V4手游   微信收款语音播报怎么设置?学会再也不用担心收不到钱啦   探索宝鸡SEO排名的奥秘,专业创作,引领行业潮流,云浮抖音营销推广招聘  抖音短视频超好玩!搜不到用户咋回事?临时解决办法来了   嗨格式在线录屏的功能特点及操作指南,你知道多少?   揭秘自媒体营销的黄金法则,如何让内容引爆流量与销量的秘密武器,即墨中文网站建设  惠州站外SEO价格介绍,性价比之选,助力企业网络营销,南京seo新算法  手机相册爆满删又难恢复慢?简单万无一失备份方法快来看   广州SEO软件首选乐云SEO,专业赋能,助力企业高效招商,香港seo推广优化公司  揭秘自媒体营销,如何巧妙地将品牌推向成功之路?,网站优化哪家评价高点  SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结  新手学SEO,价格与价值的完美平衡,网站优化记录表  SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台  武汉SEO排名探秘,如何让你的网站在竞争激烈的市场中脱颖而出?,江苏关键词排名怎么提高  广州百度推广名片,助力企业数字化营销的必备工具,江门营销推广哪里好