1.Antipodal Robotic Grasping using Generative Residual Convolutional Neural Network这篇文章是改进于ggcnn。效果远超ggcnn。
2、下面是我复现过程中遇到的问题以及解决方案
在复现ggcnn和Antipodal Robotic Grasping using Generative Residual Convolutional Neural Network这两篇论文时,因为用的ROS来订阅图像(kinect/realsense),其基于python2的代码。但是网络是python3的代码。会造成版本冲突。
2.1 尝试过的解决方法 尝试了多种解决方案,比如重新编译cv_bridge(成功过一次,后来就把系统搞崩了,不可取,网上这个解决方案是真坑,崩掉后ros啥的就得重新安装配置)。
2.2 有博客中提到anaconda 中安装ROS改变python路径等。反正麻烦,而且我没有成功。
3、我的解决方案
socket可以有效解决版本冲突,甚至可以跨版本,跨平台。历时两个月终于彻底解决!不需要重新编译cv_bridge,也不要改变python或者ros的路径等 通过ros socket,将位姿发布!以及接收发布的位姿代码等完整代码(感兴趣私聊:QQ:3220165630)
部分代码如下:
class DetectNode: def init(self): self.args = parse_args() self.device = get_device(self.args.force_cpu) self.camera = CameraData(include_depth=self.args.use_depth, include_rgb=self.args.use_rgb) if self.args.force_cpu: self.net = torch.load(self.args.network, map_location=‘cpu’) else: self.net = torch.load(self.args.network) self.fig = plt.figure(figsize=(10, 10))
self.run_flag = True
self.pub = rospy.Publisher("object_pose", Float64MultiArray, queue_size=1)
# 创建tcp服务器,用于接收图像数据
self.socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket_server.bind(("127.0.0.1", 9999))
print("wait for message transport client...")
完整代码(感兴趣私聊:QQ:3220165630)
|