BUSINESS ¿¬±¸ ÀÚ·á
  • ·Îº¿À±¸® ÀÌ·Ð
  • ·Îº¿À±¸®¿øÄ¢
  • ·Îº¿À±¸® üũ¸®½ºÆ®
    • AMA ¼Ò½ºÄÚµå
  • Soar
  • ROS
  • HRI
  • Âü°í¹®Çå
  • AMA °ü·Ã »ç·ÊºÐ¼®
  • main_banner02.png

    AMA °úÁ¦ ¼Ò°³
    ÀΰøÀ±¸® ¿¡ÀÌÀüÆ® °³¹ß

    Àΰ£°ú ·Îº¿ÀÌ ¼­·Î ÁøÁ¤ÇÑ ¼ÒÅëÀ» Çϱâ À§Çؼ­´Â ÀΰøÁö´É¿¡ µµ´öÀûÀÎ ¿ä¼ÒµéÀÌ ÇÔ²² Á¢¸ñµÇ¾î °³¹ßµÇ¾î¾ß ÇÑ´Ù. 

  • main_banner02.png

    AMA ¼Ò½ºÄÚµå
    AMA¸ÞŸÆÐÅ°Áö ´Ù¿î·Îµå

    OP¿ë AMA ¹öÀü1.0 ¸ÞŸÆÐÅ°Áö¸¦ ´Ù¿î¹ÞÀ¸¼¼¿ä. 

¼ÒÇü ÈÞ¸Ó³ëÀÌµå ·Îº¿ÀÎ ROBOTIS-OP2(ÀÌÇÏ OP)¿¡ ±¸ÇöÇÑ AMA ¹öÀü1.0 ¸ÞŸÆÐÅ°Áö´Â ·Îº¿À±¸®ÀÇ ÇÙ½É ±â´ÉÀÎ Objection to Immoral Directive¿¡ ÇØ´çµÇ´Â ±âÃÊÀû HRI ŽºÅ©¸¦ ¼öÇàÇÑ´Ù.

Àüü ½Ã³ª¸®¿À¸¦ ¼³¸íÇϸé, »ç¶÷ÀÌ"Go"¶ó°í ¸í·ÉÇؼ­ OP°¡ °É¾î°¡°í ÀÖÀ» ¶§ Çã¿ëµÇÁö ¾Ê´Â(¿¹¸¦ µé¾î OP°¡ ŹÀÚ ³¡À¸·Î ´Ù°¡°¡°í ÀÖ´Â À§ÇèÇÑ) »óȲÀÓÀ» ³ªÅ¸³»´Â 'X'°¡ ±×·ÁÁø Á¾À̸¦ OPÀÇ ¾ó±¼ ¾Õ¿¡ º¸¿©ÁÖ¸é OP´Â ÀÌ ½Éº¼À» Ä«¸Þ¶ó·Î ÀνÄÇؼ­ Á¦ÀÚ¸®¿¡ ¼­°í, ±× ´ÙÀ½ºÎÅÍ´Â "Go" ¸í·É¿¡ ´ëÇؼ­´Â ¹ÝÀÀÇÏÁö ¾Ê´Â´Ù(¹Ý¸é¿¡ Á¦ÀÚ¸®¿¡¼­ ÇÏ´Â µ¿ÀÛÀº Çã¿ëµÇ¹Ç·Î ¸í·É´ë·Î ¼öÇàÇÑ´Ù). ±× ÈÄ¿¡ OP¿¡°Ô'O'°¡ ±×·ÁÁø Á¾À̸¦ ¾ó±¼ ¾Õ¿¡ º¸¿©ÁÖ¸é Immoral ¸ðµå°¡ ÇØÁ¦µÇ¾î"Go" ¸í·ÉÀ» ³»¸®¸é ¾ÕÀ¸·Î °É¾î°£´Ù. À̸¦ °¢ ´Ü°èº°·Î ¼³¸íÇÏ¸é ´ÙÀ½°ú °°´Ù.

* ·Îº¿Àº"Stand","Down","Yes","No","Go","Stop"ÀÇ ¿©¼¸ °¡Áö ±âº»ÀûÀÎ À½¼º ¸í·ÉÀ» ÀνÄÇÒ ¼ö ÀÖ´Ù.

* ·Îº¿Àº Á¾ÀÌ¿¡ ±×·ÁÁø'O','X',''ÀÇ ¼¼ °¡Áö »ó¡À» ÀνÄÇÒ ¼ö ÀÖ´Ù.

* Ãʱâ ÀÚ¼¼¿¡¼­ "Stand" ¸í·ÉÀ¸·Î ·Îº¿ÀÌ ÀϾ°Ô ÇÑ ÈÄ, "Go"¶ó°í ¸í·ÉÇÏ¸é ¾ÕÀ¸·Î °É¾î°£´Ù.

* ¸¸¾à ·Îº¿ÀÌ Å×ÀÌºí ³¡¿¡ ¼­ÀÖ´Â À§ÇèÇÑ »óȲ¿¡ óÇϰųª »ç¶÷À¸·ÎºÎÅÍ ºñµµ´öÀû ¸í·É(immoral imperative)ÀÌ ÁÖ¾îÁø °ÍÀ» ÀǹÌÇÏ´Â'X'¸¦ º¸¸é ±× ÀÚ¸®¿¡ ¸ØÃß°í, ±× ´ÙÀ½ºÎÅÍ´Â"Go"¶ó°í ¸í·ÉÇصµ ¹ÝÀÀÇÏÁö ¾Ê´Â´Ù. ¶ÇÇÑ ·Îº¿ÀÌ "Sorry, I cannot walk."¶ó°í ´ë´äÇÔÀ¸·Î½á ºÎÀûÀýÇÑ ¸í·É¿¡ ´ëÇØ °ÅºÎÇÏ°í ÀÖÀ½À» »ç¶÷¿¡°Ô Ç¥ÇöÇÑ´Ù.

* ÀÌ·¯ÇÑ »óȲ¿¡¼­µµ Á¦ÀÚ¸®¿¡¼­ ÇÏ´Â µ¿ÀÛ("Stand","Down","Yes","No")Àº Çã¿ëµÇ¹Ç·Î Á¤»óÀûÀ¸·Î ¸í·ÉÀ» µû¸¥´Ù.

* ÀÌ·¯ÇÑ ºñÁ¤»óÀûÀÎ »óÅ°¡ Á¾·áµÇ¾úÀ½À» ÀǹÌÇÏ´Â'O'°¡ ±×·ÁÁø Á¾À̸¦ ·Îº¿¿¡°Ô º¸¿©ÁÖ¸é ±× ´ÙÀ½ºÎÅÍ´Â "Go"¸¦ Æ÷ÇÔÇÑ ¸ðµç ¸í·É´ë·Î ¼öÇàÇÑ´Ù.

OP¿ë AMA ¹öÀü1.0 ¸ÞŸÆÐÅ°Áö´Â ´ÙÀ½°ú °°Àº ÆÐÅ°Áö ¹× Æú´õ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

* SoarSuite950 : SoarÀÇ ¶óÀ̺귯¸®µéÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç 9.5.0 ¹öÀüÀÓ

* soarwrapper: Soar main Äڵ带 Æ÷ÇÔÇÏ°í ÀÖÀ½

* robotis_op_camera: OP Ä«¸Þ¶ó ÆÐÅ°Áö
  - github : https://github.com/ROBOTIS-OP/robotis_op_camera

* robotis_op_common: OP ¼³¸í ÆÐÅ°Áö
  - github : https://github.com/ROBOTIS-OP/robotis_op_common

* robotis_op_framework: OP ÇÁ·¹ÀÓ¿öÅ© ÆÐÅ°Áö
  - github : https://github.com/ROBOTIS-OP/robotis_op_framework

*robotis_op_launch: ROSÀÇ ·ÐÄ¡(launch) ÆÐÅ°Áö
  - github : https://github.com/ROBOTIS-OP/robotis_op_launch

*robotis_op_ros_control: ROSÀÇ OP Á¦¾î ÆÐÅ°Áö
  - github : https://github.com/ROBOTIS-OP/robotis_op_ros_control

* find-object: SIFT, SURF, FAST, BRIEF µîÀÇ detector¿Í descriptor¸¦ OpenCV¿¡¼­ ±¸ÇöÇϱâ À§ÇÑ °£´ÜÇÑ Qt ÀÎÅÍÆäÀ̽º.
   ROS¿¡¼­ ½ÇÇàµÉ ¶§ robotis_op_camera ÆÐÅ°Áö¿¡ ÅäÇÈÀ» ±¸µ¶ÇÔ
  - ȨÆäÀÌÁö : https://introlab.github.io/find-object/
  - github : https://github.com/introlab/find-object

* pocketsphinx: CMU Sphinx¿¡¼­ Á¦°øÇÏ´Â À½¼ºÀÎ½Ä ROS ÆÐÅ°Áö·Î¼­ ÆÐÅ°Áö ³»ºÎÀÇ »çÀü (dictionary) ÆÄÀÏ¿¡ ÀúÀåµÈ ´Ü¾îµé¸¸ ÀÎ½Ä °¡´ÉÇÔ.
   ROS¿¡¼­ ½ÇÇàµÉ ¶§ À½¼º ÅäÇÈ ¹ßÇà
  - ȨÆäÀÌÁö : http://cmusphinx.sourceforge.net/
  - github : https://github.com/mikeferguson/pocketsphinx
  - wiki : http://wiki.ros.org/pocketsphinx

*sound_play: festival(C++ ±â¹ÝÀ¸·Î ¸¸µé¾îÁø À½¼ºÇÕ¼º ½Ã½ºÅÛ)À» ÀÌ¿ëÇÑ À½¼ºÇÕ¼º°ú WAV/OGG ÆÄÀÏ Àç»ý ±â´É Á¦°ø.
   C++°ú Python ±â¹ÝÀ¸·Î µÑ ´Ù »ç¿ë °¡´ÉÇÔ.
  - ȨÆäÀÌÁö : http://wiki.ros.org/sound_play
  - github : https://github.com/ros-drivers/audio_commonwiki

AMA ¸ÞŸÆÐÅ°Áö¸¦ OP¿¡ ³»ÀåµÇ¾î ÀÖ´Â PC¿¡¼­ ½ÇÇàÇϱâ À§Çؼ­´Â ROS Hydro ¹öÀüÀ» ¼³Ä¡ÇØ¾ß Çϴµ¥, À̸¦ À§ÇØ ¾Æ·¡ÀÇ À¥»çÀÌÆ®¿¡ Á¢¼ÓÇؼ­ Ubuntu Linux¸¦ ¼³Ä¡ÇÏ´Â °úÁ¤À» µû¸¥´Ù.
http://wiki.ros.org/hydro/Installation/Ubuntu

±×¸®°í ¾Æ·¡ À¥»çÀÌÆ®¿¡ µé¾î°¡¼­ Linux OS¿¡¼­ Soar¸¦ ¼³Ä¡ÇÏ´Â ¹ýÀ» ¹è¿î´Ù.
http://soar.eecs.umich.edu/articles/articles/building-soar/81-building-on-linux

´ÙÀ½ÀÇ ¾È³»¸¦ µû¶ó AMA ÆÐÅ°Áö¸¦ À§ÇÑ ROS¿ë workspace(ÀÛ¾÷°ø°£)¸¦ »ý¼ºÇÏ°í, Àüü ÆÐÅ°Áö¸¦ ½ÇÇàÇϱâ À§ÇØ ´Ü°èº°·Î µû¶ó Çϱ⠹ٶõ´Ù.
(ÁÖÀÇ: ¿©·¯ºÐÀÌ ÀÌ¹Ì catkinÀ» ¼³Ä¡Çß°í °³¹ßȯ°æÀ» sourcing Çß´Ù°í °¡Á¤ÇÔ)

1) ROSÀÇ workspace·Î¼­ "home/robotis/ama_op2_v1/src" µð·ºÅ丮¸¦ ¾Æ·¡¿Í °°ÀÌ »ý¼ºÇÑ´Ù.

- catkin workspace »ý¼º

$ mkdir -p ~/ama_op2_v1/src
$ cd ~/ama_op2_v1/src
$ catkin_init_workspace

- workspace ºôµå

$ cd ~/ama_op2_v1/
$ catkin_make

- °è¼ÓÇϱâ Àü¿¡ »õ·Î¿î setup.bash ÆÄÀÏ ¼Ò½Ì

$ source devel/setup.bash

2) ÀÌ ÆäÀÌÁöÀÇ ¸ÇÀ§¿¡ ÀÖ´Â AMA ÆÐÅ°Áö¸¦ ÀÓÀÇÀÇ Æú´õ¿¡ ´Ù¿î·ÎµåÇÑ´Ù.

3) ¾Õ¿¡¼­ ¸¸µç "ama_op2_v1/src" µð·ºÅ丮¿¡ ´Ù¿î·Îµå ¹ÞÀº AMA ÆÐÅ°ÁöÀÇ ama/src µð·ºÅ丮¿¡ ÀÖ´Â ¸ðµç ÆÄÀϵé°ú ÇÏÀ§ Æú´õµéÀ» º¹»çÇÑ´Ù.


4) »õ Å͹̳ÎÀ» ¿­°í ´ÙÀ½ ¸í·ÉÀ¸·Î AMA ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÑ´Ù. ¿¡·¯ ¸Þ½ÃÁö°¡ ¾øÀ¸¸é ÀÌ ÆÐÅ°Áö´Â ½ÇÇà Áغñ »óÅ°¡ µÈ °ÍÀÌ´Ù.

$ cd ~/ama_op2_v1/
$ catkin_make

5) ´ÙÀ½°ú °°ÀÌ chmod ¸í·ÉÀ¸·Î ÆÄÀÏ°ú µð·ºÅ丮ÀÇ ±ÇÇÑÀ» ¼öÁ¤ÇÔÀ¸·Î½á ÆÄÀÏÀÌ ½ÇÇà°¡´ÉÇÑ »óÅ°¡ µÈ´Ù.

$ chmod +x /home/robotis/ama_op2_v1/src/robotis_op_camera/config/robotis_op_camera.cfg
$ chmod +x /home/robotis/ama_op2_v1/src/robotis_op_ros_control/config/robotis_op_ros_control.cfg
$ chmod +x /home/robotis/ama_op2_v1/src/soarwrapper/src/soar7.py
$ chmod +x /home/robotis/ama_op2_v1/src/soarwrapper/src/soarvoicekey_talker.py

6) ¸ðµç ÆÐÅ°ÁöµéÀÌ ´Ù ¼³Ä¡µÇ¾ú´Ù¸é »õ Å͹̳ÎÀ» ¿­°í ´ÙÀ½°ú °°ÀÌ roscore¸¦ ½ÇÇàÇÑ´Ù.

$ roscore

7) ´Ù¸¥ Å͹̳ÎÀ» »õ·Î ¿­°í ´ÙÀ½°ú °°ÀÌ find_object_2d¸¦ ½ÇÇàÇÑ´Ù.

$ rosrun find_object_2d find_object_2d image:=robotis_op/camera/image_raw

±× °á°ú Find-Object ÀÎÅÍÆäÀ̽º âÀÌ ¶ß¸é File-Load ¸Þ´º¿¡¼­ Load sessionÀ» ¼±ÅÃÇÑ´Ù.
robotis/ama/src/find-object/objects µð·ºÅ丮¸¦ ã¾Æ°¡¼­"lesson_2.bin"À» ºÒ·¯¿À¸é ·Îº¿ÀÌ ÇнÀÇÑ'O','X',''À̹ÌÁöµéÀ» ´ÙÀ½°ú °°ÀÌ º¼ ¼ö ÀÖ´Ù.

8) launch ÆÄÀÏ¿¡¼­ OP ½ÇÇà

»õ Å͹̳ÎÀ» ¿­°í ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇϸé OP°¡ À½¼ºÀνÄÀ» ½ÃÀÛÇϸç HRI ŽºÅ©¸¦ ½ÇÇàÇÒ Áغñ¸¦ ÇÑ´Ù. À̶§ ·Îº¿ÀÇ ÆļÕÀ» ¹æÁöÇϱâ À§ÇØ ÁغñÀÚ¼¼·Î¼­ OP°¡ ¹«¸­À» °¡Áö·±È÷ ±ÁÈ÷°í ¾É¾ÆÀÖµµ·Ï Á¶Á¤ÇÑ´Ù.

$ roslaunch robotis_op_onboard_launch robotis_op_whole_robot.launch

¸¸¾à "Controller Spawner couldn't find the expected controller_manager ROS interface."¶ó´Â ¿¡·¯ ¸Þ½ÃÁö°¡ ¶ß¸é OPÀÇ ¸®¼Â ¹öÆ°À» ´Ù½Ã ´©¸£°í À§ ¸í·ÉÀ» ´Ù½Ã ½ÇÇàÇÑ´Ù.
¾Æ·¡¿Í °°Àº ¸Þ½ÃÁö°¡ Ãâ·ÂµÉ ¶§±îÁö ±â´Ù¸°´Ù.
"Controller Spawner: Loaded controllers: j_shoulder_r_position_controller, ...,j_tilt_position_controller."

9) »õ Å͹̳ÎÀ» ¿­°í ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÏ¿© soar7.py ÆÄÀÏÀÌ ½ÇÇà°¡´ÉÇÏ°Ô ¸¸µç´Ù.

$ chmod +x ~/ama_op2_v1/src/soarwrapper/src/soar7.py

´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù. ¿©¼¸ °¡Áö À½¼º ¸í·É("Stand","Down", "Yes", "No","Go","Stop") Áß "Stand" ¸í·ÉÀ¸·Î OP¸¦ ÀÏÀ¸ÄÑ ¼¼¿î ÈÄ ³ª¸ÓÁö ¸í·ÉÀ» ¸»Çϸé OP°¡ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù.

$ rosrun soarwrapper soar7.py

 

´ÙÀ½Àº AMA ¸ÞŸÆÐÅ°ÁöÀÇ ±¸Á¶¿Í ROS ³ëµå ±¸Á¶¸¦ ³ªÅ¸³½´Ù.

´ÙÀ½Àº OP¿¡¼­ AMA ¹öÀü1.0À» ½ÇÇàÇßÀ» ¶§ÀÇ ½ºÅ©¸° ¼¦µé°ú YouTube µ¿¿µ»óÀÌ´Ù.