{"id":656,"date":"2017-02-14T17:01:04","date_gmt":"2017-02-14T08:01:04","guid":{"rendered":"https:\/\/www.kdel.org\/wp\/?p=656"},"modified":"2017-02-14T17:57:39","modified_gmt":"2017-02-14T08:57:39","slug":"fawkes-robotino-2016%e3%81%aefvfountain%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6","status":"publish","type":"post","link":"https:\/\/www.kdel.org\/wp\/?p=656","title":{"rendered":"fawkes-robotino.2016\u306efvfountain\u306b\u3064\u3044\u3066"},"content":{"rendered":"<p><a href=\"https:\/\/www.kdel.org\/wp\/?p=622\">fawkes-robotino.2016\u306e\u4f7f\u3044\u65b9<\/a>\u3067\u306f\uff0c<br \/>\ngazebo\u3068\uff0crobotino3\u3067\u306e\u52d5\u4f5c\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u304c\uff0c<br \/>\nlaptop\u4e0a\u3067\u52d5\u304b\u3059\u3068\uff0c\u4ee5\u4e0b\u306e\u30a8\u30e9\u30fc\u304c\u51fa\u307e\u3059\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nwataru@fedoraMini:~\/fawkes-robotino\/bin$ .\/fawkes -p m-fv\r\n16:56:57.298104 PluginManager: Loading plugins fvbase,fvfountain for meta plugin m-fv\r\n16:56:57.685347 stderr: =================================================== BEGIN OF EXCEPTION =====\r\n16:56:57.685386 stderr: Invalid socket address family, wrong constructor called?\r\n16:56:57.685401 stderr: =================================================== END OF EXCEPTION =======\r\n16:56:57.685466 FawkesMainThread: Failed to load plugins m-fv, exception follows\r\n16:56:57.685485 FawkesMainThread: &#x5B;EXCEPTION] Plugin &gt;&gt;&gt; fvfountain &lt;&lt;&lt; could not be initialized, unloading\r\n16:56:57.685485 FawkesMainThread: &#x5B;EXCEPTION] Could not initialize thread 'FountainThread'\r\n16:56:57.685485 FawkesMainThread: &#x5B;EXCEPTION] Invalid socket address family, wrong constructor called?\r\n16:56:57.685485 FawkesMainThread: &#x5B;EXCEPTION] Could not initialize meta plugin m-fv, aborting loading.\r\n16:56:57.685555 FawkesMainThread: Fawkes 1.0.0 startup complete\r\n<\/pre>\n<p>fvfountain\u306e\u8aad\u307f\u8fbc\u307f\u6642\u306b\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u30bd\u30b1\u30c3\u30c8\u306e\u90e8\u5206\u3067\u5931\u6557\u3057\u3066\u3044\u308b\u3063\u307d\u3044\u306e\u3067\u3059\u304c\uff0c<br \/>\nfvfountain\u306e\u30bd\u30fc\u30b9\u3082\uff0c\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3082\uff0c\u7279\u306b\u5909\u66f4\u3057\u3066\u3044\u306a\u3044\u3093\u3067\u3059\u3088\u306d\u3047\uff0e<\/p>\n<p>IP\u30a2\u30c9\u30ec\u30b9\u306e\u6307\u5b9a\u306e\u90e8\u5206\u304c\u304a\u304b\u3057\u3044\u3063\u307d\u3044\u306e\u3067\uff0c\u3082\u3046\u5c11\u3057\u8abf\u3079\u3066\u307f\u307e\u3059\uff0e<\/p>\n<p>\u25a0\u8abf\u3079\u4e2d\u25a0<br \/>\n\u30a8\u30e9\u30fc\u3092\u51fa\u3057\u3066\u3044\u308b\u306e\u306f\uff0c~\/fawkes-robotino\/fawkes\/src\/plugins\/perception\/fountain\/fountain_thread.cpp \u306e\u4ee5\u4e0b\u306e\u90e8\u5206\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nvoid\r\nFountainThread::init()\r\n{\r\n  \/\/ Start FUSE server\r\n  unsigned int port = 0;\r\n  try {\r\n    port = config-&gt;get_uint(&quot;\/firevision\/fountain\/tcp_port&quot;);\r\n    if ( port &gt; 0xFFFF ) {\r\n      throw OutOfBoundsException(&quot;Network port out of bounds&quot;, port, 0, 0xFFFF);\r\n    }\r\n    __fuse_server = new FuseServer(port, thread_collector);\r\n    thread_collector-&gt;add(__fuse_server);\r\n  } catch (Exception &amp;e) {\r\n    e.print_trace();\r\n    throw;\r\n  }\r\n<\/pre>\n<p>\u4e0a\u8a18\u306enew FuseServer(port, thread_collector) \u306e\u90e8\u5206\u3067socket address family\u306b\u5bfe\u3057\u3066\u6012\u3089\u308c\u3066\u3044\u307e\u3059\uff0e<\/p>\n<p>thread_collector \u306f\uff0c<br \/>\n~\/fawkes-robotino\/fawkes\/src\/libs\/fvutils\/net\/fuse_server.cpp \u306e\u4ee5\u4e0b\u306e\u90e8\u5206\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nFuseServer::FuseServer(unsigned short int port, ThreadCollector *collector)\r\n  : Thread(&quot;FuseServer&quot;, Thread::OPMODE_WAITFORWAKEUP)\r\n{\r\n  __thread_collector = collector;\r\n\r\n  __acceptor_thread = new NetworkAcceptorThread(this, port, &quot;FuseNetworkAcceptorThread&quot;);\r\n  if (__thread_collector) {\r\n    __thread_collector-&gt;add(__acceptor_thread);\r\n  } else {\r\n    __acceptor_thread-&gt;start();\r\n  }\r\n}\r\n<\/pre>\n<p>\u4e0a\u8a18\u306e\uff0cnew NetworkAcceptorThread(this, port, &#8220;FuseNetworkAcceptorThread&#8221;); \u3067\u5931\u6557\u3057\u3066\u3044\u308b\u3063\u307d\u3044\u3067\u3059\uff0e<br \/>\nNetworkAcceptorThread \u306f\uff0c~\/fawkes-robotino\/fawkes\/src\/libs\/netcomm\/utils\/acceptor_thread.cpp \u306e\u3088\u3046\u3067\u3059\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nNetworkAcceptorThread::NetworkAcceptorThread(NetworkIncomingConnectionHandler *handler,\r\n                                             unsigned short int port,\r\n                                             const char *thread_name)\r\n  : Thread(thread_name)\r\n{\r\n  __handler = handler;\r\n  __port    = port;\r\n\r\n  set_prepfin_conc_loop(true);\r\n\r\n  try {\r\n    __socket = new StreamSocket();\r\n    __socket-&gt;bind(__port);\r\n    __socket-&gt;listen();\r\n  } catch (SocketException &amp;e) {\r\n    throw;\r\n  }\r\n}\r\n<\/pre>\n<p>\u4e0a\u8a18\u306e __socket->bind(__port); \u3067\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e<br \/>\nStreamSockst \u306f\uff0c~\/fawkes-robotino\/fawkes\/src\/libs\/netcomm\/socket\/stread.cpp \u306e\u3088\u3046\u3067\u3059\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nvoid\r\nSocket::create()\r\n{\r\n        if (sock_fd != -1)  return;\r\n        if (socket_addr_family_ == -1) {\r\n                throw UnknownTypeException(&quot;Invalid socket address family, wrong constructor called?&quot;);\r\n        }\r\n...\r\n}\r\n<\/pre>\n<p>\u30a8\u30e9\u30fc\u3092\u306f\u304d\u51fa\u3057\u3066\u3044\u308b\u306e\u306f\uff0c\u4e0a\u8a18\u306e\u3068\u3053\u308d\u3067\u3059\uff0e<br \/>\n\u8a00\u3046\u307e\u3067\u3082\u7121\u304f\uff0csocket_addr_family_ \u304c -1\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u3089\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0e<br \/>\n\u3067\uff0c\u305d\u3044\u3064\u306f\uff0cSocket::Socket(Socket &#038;socket) \u306b\u3066\uff0c\u521d\u671f\u5316\u6642\u306b\u4ee3\u5165\u3057\u3066\u3044\u307e\u3059\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nSocket::Socket(Socket &amp;socket)\r\n{\r\n...\r\n  timeout = socket.timeout;\r\n  sock_fd = socket.sock_fd;\r\n  socket_addr_family_ = socket.socket_addr_family_;\r\n  socket_type_ = socket.socket_type_;\r\n  socket_protocol_ = socket.socket_protocol_;\r\n}\r\n<\/pre>\n<p>\u3063\u3066\uff0c\u3053\u306e\u4ee3\u5165\u90e8\u5206\u3092\u5b9f\u884c\u3057\u3066\u3044\u306a\u3044\u3088\u3046\u306a\u2026\uff0e<\/p>\n<p>\u6628\u5e74\u306efawkes-robotino (2015) \u3068\u6bd4\u8f03\u3057\u3066\u307f\u308b\u3068\uff0c\u3069\u3046\u3084\u3089IPv6\u3078\u3082\u5bfe\u5fdc\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u307f\u305f\u3044\u3067\u3059\uff0e<br \/>\n\u305f\u3060\uff0c\u305d\u308c\u3086\u3048\uff0cV6\u306e\u8a2d\u5b9a\u304c\u3067\u304d\u3066\u3044\u306a\u3044\u306e\u306bv6\u3092\u4f7f\u304a\u3046\u3068\u3057\u3066\u30a8\u30e9\u30fc\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u304b\u306a\u3041\u3068\u3044\u3046\u611f\u3058\u304c\u3057\u307e\u3059\uff0e<\/p>\n<p>\u3068\u3044\u3046\u308f\u3051\u3067\uff0c\u5f37\u5f15\u306bIPv4\u3067\u9032\u3081\u3061\u3083\u3046\u3088\u3046\u306b\u5909\u66f4\uff0e<br \/>\n2\u3064\u4e0a\u306eSocket::creat() \u306e\u3068\u3053\u308d\u306e\u30a8\u30e9\u30fc\u306e\u90e8\u5206\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\uff0c\u8a2d\u5b9a\u3092\u4e0a\u66f8\u304d\u3057\u3061\u3083\u3044\u307e\u3057\u305f\uff0e<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nvoid\r\nSocket::create()\r\n{\r\n        if (sock_fd != -1)  return;\r\n        if (socket_addr_family_ == -1) {\r\n                socket_addr_family_ = AF_INET;\r\n                addr_type = IPv4;\r\n\/\/              throw UnknownTypeException(&quot;Invalid socket address family, wrong constructor called?&quot;);\r\n        }\r\n...\r\n<\/pre>\n<p>\u3082\u3057\uff0cIPv6\u74b0\u5883\u4e0b\u3067\u5b9f\u884c\u3059\u308b\u306e\u3067\u3042\u308c\u3070\uff0c\u4e0a\u8a18\u3092AF_INET6\u3068\uff0cIPv6\u306b\u66f8\u304d\u63db\u3048\u3066\u4e0b\u3055\u3044\uff0e<\/p>\n<p>\u8cac\u4efb\u6301\u3061\u307e\u305b\u3093\u304c\uff0c\u3068\u308a\u3042\u3048\u305a\u52d5\u3044\u305f\u304b\u3089\u826f\u3068\u3057\u3088\u3046(\u00b4-\u03c9-`)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>fawkes-robotino.2016\u306e\u4f7f\u3044\u65b9\u3067\u306f\uff0c gazebo\u3068\uff0crobo &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/www.kdel.org\/wp\/?p=656\"> <span class=\"screen-reader-text\">fawkes-robotino.2016\u306efvfountain\u306b\u3064\u3044\u3066<\/span> \u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[10,3,2,9,4],"tags":[],"class_list":["post-656","post","type-post","status-publish","format-standard","hentry","category-fawkes","category-logistics-league","category-robocup","category-robotino-3","category-winter-school-2015"],"_links":{"self":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=656"}],"version-history":[{"count":9,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions"}],"predecessor-version":[{"id":665,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/656\/revisions\/665"}],"wp:attachment":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}